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

Ruby Treetop如何包含语法不匹配的所有内容,ruby,parsing,treetop,Ruby,Parsing,Treetop,我想创建一个树梢语法。我已经创建了规则来匹配文件中我感兴趣的部分 grammar Sexp rule bodies body+ end rule body commentPortString (ifdef_blocks / interface)+ (!newLine) end ... end 如何在一个文件上运行此命令,以提取出正文,并忽略我不关心的其他部分,还是需要为这些部分编写规则 提前感谢在PEG语法中,重复匹配任何不属于规则的字符是一种常见的习惯用法

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

grammar Sexp

  rule bodies
    body+
  end

  rule body
    commentPortString (ifdef_blocks / interface)+ (!newLine)
  end
...
end
如何在一个文件上运行此命令,以提取出
正文
,并忽略我不关心的其他部分,还是需要为这些部分编写规则


提前感谢

在PEG语法中,重复匹配任何不属于规则的字符
是一种常见的习惯用法!正文。大概是这样的:

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

谢谢工作。但是它会显著降低解析器的速度。如果改为执行
(!commentPortString.)*body)+(!commentPortString.)*
,或者不匹配
commentPortString
中的空格(我的意思是将其移到规则之外),可能会有助于提高性能。只是一些想法。