问题标签 [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 - 树顶中的 SyntaxNode+[Node] 是什么意思?(红宝石)
我已经使用树顶定义了一种语法,并且大多数值都可以很好地解析,但有些看起来像
... 和 ...
SyntaxNode+[Node] 是什么意思?如何修复它以使其正常工作?因为现在,这些节点具有 SyntaxNode 类,而不是 Token 类(这使它们成为通用的并且不符合我的需要)。
据我所知,定义(token space)+
是造成这种情况的原因(不知道为什么)。
ruby - 用于解析可选内容的 PEG 语法
谁能告诉我如何在支持两者的Treetop上编写语法:
和
ruby - 如何在不回溯的情况下避免树顶的左递归?
在我正在研究的这个简单的表达式解析器中,我无法避免左递归。本质上,我想将方程“fx y”解析为两个表达式“fx”和“(fx)y”(带有隐式括号)。如何在避免左递归和回溯的同时做到这一点?是否必须有一个中间步骤?
ruby - 匹配Treetop中的复数词
有没有办法使用 Treetop 以编程方式匹配复数单词。Linguistics gem 会将一个单词复数,但是如何将它插入到解析器中。
这是我正在尝试做的一个例子:
ruby - 树顶回溯类似于正则表达式?
我读过的所有内容都表明 Treetop 会像正则表达式一样回溯,但我很难做到这一点。
假设我有以下语法:
这与字符串不匹配{abc}
。我怀疑那是因为从这封信开始.+
就消耗了一切。a
即abc}
当我只希望它消费时它正在消费abc
。
这似乎与类似的正则表达式不同。正则表达式/{.+}/
将匹配{abc}
。据我了解,这是可能的,因为正则表达式引擎在将关闭}
作为 的一部分使用后回溯.+
,然后无法匹配。
那么 Treetop 可以这样回溯吗?如果是这样,怎么做?
我知道您可以使用否定来匹配“除 a 之外的任何内容}
”。但这不是我的本意。假设我希望能够匹配字符串{ab}c}
。在这种情况下,我想要的标记是开头{
、中间字符串ab}c
和结尾}
。这是一个人为的示例,但在使用嵌套表达式(如{a b {c d}}
.
ruby - 带有负规则的树顶无限递归
我有以下树顶语法:
当我尝试解析一个表达式时,例如'hello world $test$',脚本进入一个无限循环。
问题似乎来自 not_delimiter 规则,因为当我删除它时,表达式被解析。
这个语法有什么问题?
提前致谢。
ruby - 我的 Treetop 语法有什么问题?
我有语法文件alexa_scrape.tt
:
我有一个 ruby 文件,它试图利用它:
但我没有得到预期的结果:
它正确解析空字符串(作为 , zeros 的平凡匹配document
)category_listing
,但无法解析"/x\n"
(因为文档包含一个category_listing
本身具有 zerosurl_line
的单个)。
我究竟做错了什么?
ruby - 我可以使用 Treetop 解析 IO 吗?
我有一个想用 Treetop 解析的文件。如果我想解析整个事情,我会使用
我真的不想一次将整个文件读入内存。我知道我可以将解析器设置为category_listing
一次解析一个(使用#consume_all_input = false
and #root = :category_listing
),这是问题的一半。但是,它看起来像#parse
期望通过 a String
(当我尝试通过它时它肯定会失败 a File
),这使得读取和解析的想法category_listing
听起来category_listing
像 PITA。
Treetop只能用来解析String
s吗?我一直在浏览树顶文档,但没有找到任何确定的东西。
ruby - 树顶语法无法识别“/”
我是 Treetop 的新手,并且有一个非常简单的语法,我无法正常工作。我有一些测试:
这是我的语法:
第一次测试通过,第二次测试失败。我还尝试了这些替代规则:
所有这些都失败了。
无论我尝试什么,我似乎都无法让它识别结束标签。
ruby - 解析 Latex 文档时的树顶无限循环
我正在尝试使用 treetop 编写一个解析器来将一些乳胶命令解析为 HTML 标记。通过以下内容,我在生成的代码中得到了一个死角。我已经构建了源代码tt
并逐步完成,但它并没有真正阐明根本问题是什么(它只是在_nt_paragraph中旋转)
Test input: "\emph{hey} and some more text."