问题标签 [treetop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 基本树顶语法不起作用
我无法根据最基本的规则集进行 Treetop 解析。任何帮助,将不胜感激
ruby - 使用树顶定义语法节点时,如何将许多替代项关联到同一类?
我有以下简单的语法:
当我解析字符串>
时,它成功返回:
当我解析字符串=
时,它返回时没有语法错误,但不将匹配的字符串与ComparisonOperator
实例相关联,而仅与
如果我颠倒语法中字符的顺序......
那么它可以正常工作,=
但不能正常工作>
。
如果我将每个符号与ComparisonOperator
那么它对两者都适用,但我觉得这不是很直观。如果一个人有很多符号替代品,它会变得很麻烦。
有没有办法以ComparisonOperator
更简单的方式将所有替代方案关联起来?
更新: 我在此处添加了一个新的 Github 存储库,其中包含演示此问题的所有代码:https ://github.com/pmatsinopoulos/treetop_tutorial
ruby - 如何处理树顶解析树?
我使用treetop编写了一个解析器,它成功地生成了一个解析树,其中的一部分在下面复制。
现在我有了这棵树,我不知道如何过滤它,以便只处理与特定规则匹配的特定节点。
我想用一个标识符替换字符串文字,该标识符引用字符串文件中的字符串。
cool_parser.treetop
ruby-on-rails - 使用树顶解析器库的问题
我正在尝试使用树顶在 ruby 中创建一个简单的文本解析器。尽管我已按照博客中提到的所有步骤进行操作,但我无法运行该程序。它失败并显示错误消息:
我在 treetop 的网络上找不到很多资源,但很高兴能得到一些帮助。以下是代码:
-- myParser.rb --
-- node_extensions.rb --
-- sexp_extensions.rb --
-- sep_parser.treetop --
ruby - 为什么自定义 SyntaxNode 子类不能使用括号?
我有一个如下的树顶语法:
当我解析表达式时,这是有效的:
. . . 有一个"1234"
与 type匹配的语法节点ExprNumber
。但是,如果我像这样在规则中添加括号:
它与类不匹配ExprNumber
。为什么会发生这种情况?
ruby - Treetop parser : how to handle spaces?
Good morning everyone,
I'm currently trying to describe some basic Ruby grammar but I'm now stuck with parse space?
I can handle x = 1 + 1,
but can't parser x=1+1,
how can I parser space?
I have tried add enough space after every terminal.
but it can't parse,give a nil.....
How can I fix it?
Thank you very much, have a nice day.
this code works problem Solved!!!!
ruby - 如何在 Verilog 语法示例中消除左递归
我正在使用 Treetop 为 Verilog 语言创建语法,并且遇到了一些情况,其中语言规范涉及不转换为 Treetop 的左递归构造。
我已经对此进行了一些阅读,这个答案很好地总结了消除左递归的通用方法:左递归消除
但是,我无法理解这实际上是如何工作的,如果有更多知识的人可以确认我的方法是否正确,我将不胜感激......
对于这个包含左递归的原始规则(注释是它在语言规范中的编写方式):
以下内容是否真的等同于删除了左递归?
ruby - 树顶语法节点的自定义方法
我有一个匹配某些键的Treetop PEG 语法。我想在我给解析器的哈希中查找与这些键关联的值。如何使语法节点可以访问解析器中的方法或变量?
例如,这是一个简单的语法,它找到一个单词并尝试查找它的值:
这是一个使用它的测试文件:
运行这个测试,我得到输出:
如何find_variable
在方法内部进行访问value
?(在真正的解析器中,这些规则嵌套很深,需要解析值而不将实际名称返回到解析树的顶部。我不能只返回text_value
并在外面查找。)
ruby - 如何使用 ruby treetop 解析多行?
我是新手ruby
和treetop
。
我浏览了本教程并提出了以下规则。
我希望解析器提取出像下面这样的 blob。它总是以空行开头Port.
和结尾。
上面提到的规则可以在单独传递时识别文本中的所有行,但我无法提取 blob。另外我只想提取匹配的文本并忽略其余部分。
有人可以指出我正确的方向吗?
ruby - Ruby Treetop 如何包含与语法不匹配的所有内容
我想创建一个树顶语法。我创建了规则来匹配文件中我感兴趣的部分。
如何在文件上运行它以提取bodies
并忽略我不关心的其他部分,或者我是否还需要最终为这些部分编写规则?
提前致谢