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
中的空格(我的意思是将其移到规则之外),可能会有助于提高性能。只是一些想法。