Ruby树如何包含所有与语法不匹配的内容



我打算创建一个树顶语法。我已经创建了规则来匹配文件中我感兴趣的部分。

grammar Sexp
rule bodies
body+
end
rule body
commentPortString (ifdef_blocks / interface)+ (!newLine)
end
...
end

我如何在一个文件上运行它来提取bodies并忽略我不关心的其他部分,或者我最终也需要为这些部分编写规则?

提前感谢

在PEG语法中,重复匹配任何不属于规则!body的字符.是一个常见的习惯用法。类似这样的东西:

rule bodies
((!body .)* body)+ (!body .)*
end

最新更新