加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

识别Treetop语法中的Ruby代码

发布时间:2020-12-16 19:21:44 所属栏目:百科 来源:网络整理
导读:我正在尝试使用 Treetop来解析ERB文件.我需要能够处理如下行: % ruby_code_here %%= other_ruby_code % 由于Treetop是用Ruby编写的,你用Ruby编写Treetop语法,Treetop中已经有一些现有方法可以说“嘿,在这里查找Ruby代码,并给我分解”,而不必编写单独的规则
我正在尝试使用 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使用Ruby-lex解析ERB,但是我试图重现他所做的错误.在生成解析器类时,rlex程序没有生成完整的类.

编辑:对,所以你很多都很郁闷,但感谢你的信息. :)对于我的Master的项目,我正在编写一个测试用例生成器,需要使用ERB作为输入.幸运的是,出于我的目的,我只需要识别ERB代码中的一些内容,例如if语句和其他条件以及循环.我想我可以提出Treetop语法来匹配它,但需要注意的是Ruby并不完整.

解决方法

据我所知,还没有人为Ruby创建Treetop语法. (事实上??,除了MRI和YARV附带的YACC语法之外,没有人能够为Ruby创建任何语法.)我知道Treetop的作者已经开发了几年,但这并不是一项微不足道的事情. .获得XRuby中使用的ANTLR语法大约花了5年时间,它仍然不完全符合.

Ruby的语法是疯狂的,令人难以置信的复杂.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读