问题标签 [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.

0 投票
1 回答
147 浏览

ruby - 树顶中的 SyntaxNode+[Node] 是什么意思?(红宝石)

我已经使用树顶定义了一种语法,并且大多数值都可以很好地解析,但有些看起来像

... 和 ...

SyntaxNode+[Node] 是什么意思?如何修复它以使其正常工作?因为现在,这些节点具有 SyntaxNode 类,而不是 Token 类(这使它们成为通用的并且不符合我的需要)。

据我所知,定义(token space)+是造成这种情况的原因(不知道为什么)。

0 投票
1 回答
304 浏览

ruby - 用于解析可选内容的 PEG 语法

谁能告诉我如何在支持两者的Treetop上编写语法:

0 投票
1 回答
280 浏览

ruby - 如何在不回溯的情况下避免树顶的左递归?

在我正在研究的这个简单的表达式解析器中,我无法避免左递归。本质上,我想将方程“fx y”解析为两个表达式“fx”和“(fx)y”(带有隐式括号)。如何在避免左递归和回溯的同时做到这一点?是否必须有一个中间步骤?

0 投票
1 回答
162 浏览

ruby - 匹配Treetop中的复数词

有没有办法使用 Treetop 以编程方式匹配复数单词。Linguistics gem 会将一个单词复数,但是如何将它插入到解析器中。

这是我正在尝试做的一个例子:

0 投票
1 回答
123 浏览

ruby - 树顶回溯类似于正则表达式?

我读过的所有内容都表明 Treetop 会像正则表达式一样回溯,但我很难做到这一点。

假设我有以下语法:

这与字符串不匹配{abc}。我怀疑那是因为从这封信开始.+就消耗了一切。aabc}当我只希望它消费时它正在消费abc

这似乎与类似的正则表达式不同。正则表达式/{.+}/将匹配{abc}。据我了解,这是可能的,因为正则表达式引擎在将关闭}作为 的一部分使用后回溯.+,然后无法匹配。

那么 Treetop 可以这样回溯吗?如果是这样,怎么做?

我知道您可以使用否定来匹配“除 a 之外的任何内容}”。但这不是我的本意。假设我希望能够匹配字符串{ab}c}。在这种情况下,我想要的标记是开头{、中间字符串ab}c和结尾}。这是一个人为的示例,但在使用嵌套表达式(如{a b {c d}}.

0 投票
1 回答
125 浏览

ruby - 带有负规则的树顶无限递归

我有以下树顶语法:

当我尝试解析一个表达式时,例如'hello world $test$',脚本进入一个无限循环。
问题似乎来自 not_delimiter 规则,因为当我删除它时,表达式被解析。

这个语法有什么问题?

提前致谢。

0 投票
1 回答
164 浏览

ruby - 我的 Treetop 语法有什么问题?

我有语法文件alexa_scrape.tt

我有一个 ruby​​ 文件,它试图利用它:

但我没有得到预期的结果:

它正确解析空字符串(作为 , zeros 的平凡匹配documentcategory_listing,但无法解析"/x\n"(因为文档包含一个category_listing本身具有 zerosurl_line的单个)。

我究竟做错了什么?

0 投票
1 回答
112 浏览

ruby - 我可以使用 Treetop 解析 IO 吗?

我有一个想用 Treetop 解析的文件。如果我想解析整个事情,我会使用

我真的不想一次将整个文件读入内存。我知道我可以将解析器设置为category_listing一次解析一个(使用#consume_all_input = falseand #root = :category_listing),这是问题的一半。但是,它看起来像#parse期望通过 a String(当我尝试通过它时它肯定会失败 a File),这使得读取和解析的想法category_listing听起来category_listing像 PITA。

Treetop只能用来解析Strings吗?我一直在浏览树顶文档,但没有找到任何确定的东西。

0 投票
1 回答
52 浏览

ruby - 树顶语法无法识别“/”

我是 Treetop 的新手,并且有一个非常简单的语法,我无法正常工作。我有一些测试:

这是我的语法:

第一次测试通过,第二次测试失败。我还尝试了这些替代规则:

所有这些都失败了。

无论我尝试什么,我似乎都无法让它识别结束标签。

0 投票
1 回答
225 浏览

ruby - 解析 Latex 文档时的树顶无限循环

我正在尝试使用 treetop 编写一个解析器来将一些乳胶命令解析为 HTML 标记。通过以下内容,我在生成的代码中得到了一个死角。我已经构建了源代码tt并逐步完成,但它并没有真正阐明根本问题是什么(它只是在_nt_paragraph中旋转)

Test input: "\emph{hey} and some more text."