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

时间:2018-07-31 14:40:27

标签: ruby parsing treetop

我想创建一个树梢语法。我创建了规则来匹配文件中我感兴趣的部分。

grammar Sexp

  rule bodies
    body+
  end

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

如何在文件上运行此代码以提取bodies并忽略我不关心的其他部分,还是我还需要最终为这些部分编写规则?

预先感谢

1 个答案:

答案 0 :(得分:1)

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

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