代码之家  ›  专栏  ›  技术社区  ›  Sarah Vessels

在树梢语法中识别Ruby代码

  •  8
  • Sarah Vessels  · 技术社区  · 14 年前

    我想用 Treetop 解析erb文件。我需要能够处理如下行:

    <% ruby_code_here %>
    <%= other_ruby_code %>
    

    既然treetop是用ruby编写的,而您用ruby编写treetop语法,那么treetop中是否已经有了这样的方式:“嘿,在这里查找ruby代码,并给出它的分解结果”,而无需我编写单独的规则来处理ruby语言的所有部分?我正在寻找一种方法,在我的 .treetop 语法文件,具有如下内容:

    rule erb_tag
      "<%" ruby_code "%>" {
        def content
          ...
        end
      }
    end
    

    在哪里? ruby_code 由Treetop提供的一些规则处理。

    编辑: someone else 使用RubyLex解析erb,但我在尝试重现他所做的时出错。rlex程序在生成分析器类时没有生成完整的类。

    编辑: 是的,所以你们都很沮丧,但谢谢你们提供的信息。:)对于我的硕士项目,我正在编写一个测试用例生成器,它需要使用erb作为输入。幸运的是,出于我的目的,我只需要在erb代码中识别一些东西,例如 if 语句和其他条件以及循环。我想我可以想出树梢语法来匹配它,但要注意的是,它对于Ruby来说并不完整。

    4 回复  |  直到 10 年前
        1
  •  11
  •   Jörg W Mittag    14 年前

        2
  •  2
  •   DigitalRoss    14 年前


        3
  •  1
  •   vurte    14 年前

        4
  •  0
  •   cliffordheath    10 年前