我打算创建一个树顶语法。我已经创建了规则来匹配文件中我感兴趣的部分。
grammar Sexp
rule bodies
body+
end
rule body
commentPortString (ifdef_blocks / interface)+ (!newLine)
end
...
end
我如何在一个文件上运行它来提取bodies
并忽略我不关心的其他部分,或者我最终也需要为这些部分编写规则?
提前感谢
在PEG语法中,重复匹配任何不属于规则!body
的字符.
是一个常见的习惯用法。类似这样的东西:
rule bodies
((!body .)* body)+ (!body .)*
end