代码之家  ›  专栏  ›  技术社区  ›  justrajdeep

Ruby Treetop如何包含所有不符合语法的内容

  •  1
  • justrajdeep  · 技术社区  · 8 年前

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

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

    如何在文件上运行此命令以提取 bodies 忽略我不关心的其他部分,或者我也需要为这些部分编写规则吗?

    提前谢谢

    1 回复  |  直到 8 年前
        1
  •  1
  •   Josh Voigts    8 年前

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

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