问题标签 [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 - BBCode Treetop 解析器和智能标签关闭?
我写了一个最有效的树顶语法文件。对于像我这样的标签,[b]
我想将它们传递到一个函数中,该函数具有为该论坛配置的 BBCodes 的哈希值。如果允许粗体,它将返回 HTML,否则它将忽略 BB 代码。
这不适用于嵌套标签。例如,[b][i]Bold and italics[/i][/b]
将无法正确处理,因为它们与 . 的第一个结束标记匹配[/i]
。
我怎样才能做到这一点,当它找到一个标签时,它会在负头中寻找结束标签?
我宁愿不必为每种 BBCode 写出所有规则,因为这是一个动态系统,论坛管理员可以在其中打开/关闭某些标签。
ruby - 规则的顺序在 TreeTop 中是否重要?
我刚刚开始使用 TreeTop 进行解析工作。以下是让我困惑的片段:
结果ast
是:
但是当我放在rule id
上面时rule integer
,结果是nil
。那么问题是什么?提前致谢!
ruby - 树梢语法中的罗马数字
我想解析一个有序列表,类似于:
到目前为止,我的树顶语法是:
但是,相应的解析器无法解析文本。什么坏了?
ruby - 如何使用树顶编写动作触发器?
每次解析器识别令牌时,我都会尝试运行一些代码。
比方说
这里的想法是puts
每次foo
找到令牌时都执行此操作。按原样编码,它不起作用,因为它只触发一次(在类加载时),当然stuff_i_want.text_value
那时不存在。
任何的想法?甚至可能吗?图书馆缺乏文档并不容易分辨。
ruby - 树顶忽略语法规则
Treetop 似乎在第一个规则之后忽略了更多规则,并且无法解析与语法文件中的第一个规则不匹配的任何内容。我已经尝试交换规则的顺序,但仍然只考虑第一个。
此语法文件匹配所有整数和浮点数,但不匹配 '123, 456' 或 '123,456' 解析器 failure_reason 属性显示此“预期 - 在第 1 行第 1 列(字节 1)之后”
我错过了什么吗?
ruby-on-rails - 从中加载 .treeptop 文件的 Treeptop 和 Rails
我似乎在 Rails 应用程序中找不到任何 Treetop 示例。在非 Rails 应用程序中,当我执行 Treetop.load('name_of_treetop_file') 时,它会在同一个文件夹中查找并加载 .treetop 文件。
在我的 Rails 应用程序中,无论我把它放在哪里,我都会得到:
没有这样的文件或目录 - name_of_treetop_.treetop
我将 .treetop 文件放在哪里,这样我就可以轻松地调用 .load('name_of_treetop_file')
谢谢
ruby - Treetop 忽略语法中定义的方法
我正在尝试用树顶解析百分比。我写了以下语法:
这匹配正确,但由于某种原因,to_f
结果中缺少根节点上的方法。
当我检查 tt 生成的代码时,它为百分比节点创建了两个模块,其余代码中只使用了其中一个模块:
Percentage1 永远不会出现在代码的其他任何地方,而 Percentage0 用于正确的节点
另一方面,to_f
方法 ondecimal
工作正常(也是两个模块,但都用于扩展节点)。我找不到它的定义有什么不同,这导致了这种情况。
ruby - 如何在 Treetop 中嵌入 Ruby 代码以生成完全自定义的 AST?
我正在尝试使用 Treetop 编写一个解析器,它的玩具语言看起来像这样:
我的语法似乎没问题,但是当我尝试在语法中嵌入 Ruby 代码时,我收到了我无法理解的奇怪消息。
问题似乎是“陈述”的替代品使用不当,但我不确定。
我的树顶语法是这样的:
高手可以看看这个吗?
ruby - 由两个 / 包围的正则表达式的规则
如何将一对/
字符与树顶之间的所有内容匹配?我也想匹配转义/
字符。例如,如果我要解析“正则表达式”:
结果将返回:
ruby - 将 Treetop 解析树转换为抽象语法树 (AST)
我已经简化了用 Treetop 表达的语法,并且我正在尝试使用自定义节点将解析器的输出过滤到 AST 中。
基本上,它可以解析以下示例:
自定义节点全部继承Treetop::Runtime::SyntaxNode
现在,我需要将 Treetop 生成的解析树过滤成 AST。
我遵循这里解释的策略,但没有成功:我的 AST 只是空的......
我的编译器驱动程序如下:
我错过了什么?