问题标签 [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 - 最简单的树顶语法返回解析错误,只是学习
我正在尝试学习树顶,并且正在从https://github.com/survival/lordbishop获取大部分代码来解析名称,并将以此构建。
我的结构有点不同,因为我是在 Rails 中构建它,而不是 ruby 命令行。
当我运行一个非常简单的解析时,我在一个空格上返回了一个解析错误(这应该是我语法中更简单的事情之一。我做错了什么?
在我的模型中,我的代码相当简单
我已经将大部分语法剥离为只获取单词和空格
我正在尝试解析'john smith',我希望只取回单词和空格并从那里建立我的逻辑,但我什至被困在这个简单的水平上。有什么建议么??
ruby-on-rails - 为什么这会返回“未定义的方法”错误
我开始使用 Treetop(尽管我不认为这是一个树顶错误),并且我正在尝试解析一个简单的日期字段。
我试图弄清楚日期是否包括一个月,如果是,则返回。所以我将我解析的树传递给我的视图并说
在我的@input_date 中,月份不存在,所以我期待没有输出,但我得到了一个错误
我也尝试过使用 .exists,但我得到了相同的结果。
为什么是这样??还有其他方法可以检查月份的存在吗?
ruby - 在树梢解析分数
我在解析树顶语法中的分数时遇到了一些困难。
我的语法看起来像这样
当我尝试从中获取值时
我虽然规则
将作为分数返回。知道我的语法有什么问题吗?
ruby - 在树梢中查找单词 - 一些匹配未进行
我遇到了一些奇怪的情况。
我正在尝试使用树梢解析测量值。
例如 - 6' of 1/2" Copper Pipe 当然,这也可以写成英尺、英尺、英寸、英寸、英寸、英寸等。
所以我有一个规则
当我输入“6 英寸”、“6 磅”、“6 米”时,一切正常,我得到了我的号码和测量值。
当我输入“6 米”时,没有正确解析米。
大多数测量结果都很好,我在这里提供的测量值中只有“米”和“磅”被遗漏了(但我相信我将来会添加更多的测量值。
关于我为什么会遇到这种情况的任何想法?
根据要求,完整语法的更“精简”版本
ruby - 使用 PEG 问题制作 BBcode 解析器
我正在使用 PEG(Ruby 的柑橘实现)制作 bbcode 解析器,但我一直在解析这个[b]sometext[anothertext[/b]
有代码
问题在于text
我不知道怎么说的规则,该文本可以包含除 \r、\n、open_tag 或 close_tag 之外的所有内容。使用此实现,由于排除 [ 和 ],它在示例中失败(那是错误的)
所以最后的问题是如何做规则,它可以匹配除 \r、\n 或 open_tag 或 close_tag 的完全匹配之外的任何内容
如果您有另一个 PEG 实施的解决方案,也可以在那里提供。我可以切换:)
ruby - 树顶解析器:函数定义语法 - n 个参数
我目前正在尝试描述一些基本的 Ruby 语法,但我现在陷入了函数定义的困境。确实,我不知道如何处理“n”论点。这是我用来处理包含 0 到 2 个 args 的函数的代码:
我该怎么做才能处理'n'论点?有没有递归的方法来做到这一点?
编辑 :
我想强调一个事实,即我需要将参数放在结果树中。像 :
所以我需要做一个 cstom SyntaxNode 子类声明,就像我对 function_definition 规则所做的那样。
ruby - 树梢中最简单的规则不起作用
我有一个只有两条规则的树顶语法:
我正在尝试解析简单的字符串(“A”和“5”)。如果我将该规则放在第一位,则“5”被识别为 Num,如果我将该规则放在第二位,则返回 nil。同样,如果我将该规则放在第一位,“A”将被识别为 ID,如果我将该规则放在第二位,则返回 nil。我无法理解这两个规则如何以任何方式重叠。这让我疯狂!
关于树梢或正则表达式,我有什么遗漏或不了解的吗?在此先感谢您的帮助。
ruby - Treetop:解析字符串文字?
所以,我正在努力学习一点 ruby、一点 TDD 和一点 Treetop。
我有以下用于解析字符串文字的语法:
以及以下测试方法:
第三个测试(带有反斜杠的那个)没有通过(字符串没有被解析):为什么?
谢谢!
treetop - Treetop(PEG)语法中使用的省略号(空字符串)是什么?
Treetop网站给出了以下我看不懂的解释
省略号 一个空字符串匹配任何位置并且不消耗任何输入。当您希望将单个符号视为序列的一部分时,它很有用,例如,当使用共享代码处理备用规则时。
规则 alts ( foo bar / baz '' ) { def value elements.map{|e| e.text_value } 结束 } 结束
何时将符号视为序列的一部分有用?任何人都可以提供一个有意义的例子吗?
ruby - 如何使用树顶解析包含空格和转义符号的解析目录路径?
我需要解析一些包含目录路径的字符串。问题是包含转义的空格和其他转义的符号。例如:
请注意, 之前有一个空格P\&G/
。
这是我的树顶语法(alpha_digit_special 开头包含空格)
我nil
在解析这个字符串后得到。那么如何指定规则以使字符串可以包含转义的空格?