gpt4 book ai didi

ruby - 识别 Treetop 语法中的 Ruby 代码

转载 作者:数据小太阳 更新时间:2023-10-29 06:52:54 24 4
gpt4 key购买 nike

我正在尝试使用 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 程序在生成解析器类时没有生成完整的类。

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

最佳答案

据我所知,还没有人为 Ruby 创建树顶语法。 (事实上​​ ,除了 MRI 和 YARV 附带的 YACC 语法之外,没有人能够为 Ruby 创建任何语法。)我知道 Treetop 的作者已经研究了几年,但这不是一件小事。获得在 XRuby 中使用的 ANTLR 语法的权利花了大约 5 年的时间,但它仍然不完全兼容。

Ruby 的语法疯狂,复杂得令人难以置信。

关于ruby - 识别 Treetop 语法中的 Ruby 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4054761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com