问题标签 [tatsu]
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.
python - 达没有停在文末
我试图在 Tatsu 中为 DSL 语法添加一些简单的错误处理。我编写了一个简单的语法,可以将输入解析为数字或错误。
输入看起来像:
123:2.3:-1.:错误:-.0123:-2.1e-2:+1.2e+3:
通过跟踪,我可以看到它正在正确解析所有输入。当它到达最后时,它似乎在无限循环中继续解析。从最后一个数字到循环开始,输出如下所示:
对于我的生活,我无法弄清楚为什么它不会停止。我什至不确定它试图解析什么。任何人都可以帮忙吗?
谢谢!
parsing - 无法将匹配规则的字符与 PEG 解析器匹配
我正在尝试解析 Java 风格的浮点数(接受数字中间的下划线)并简化了Java 规范中的语法:
不幸的是,这不接受“1e10”输入,奇怪的是无法匹配 FLOAT_EXP 中的“e”,如下面的跟踪所示:
谁能指出我做错了什么?
random - 在 TatSu (Python) 中生成随机语法扩展
我正在为使用 TatSu 生成的语法解析器编写解释器。我正在寻找一种方便的方法来为我的语法生成用例,这样我就可以为我的解释器编写单元测试。目前,我正在手动生成我的测试用例。
我想知道 TatSu 包是否确实提供了任何(可能是未记录的)方法来自动生成随机语法推导,以便我可以将它们用作我的解释器的测试用例。此外,最好指定我需要随机产生的语法规则。
python - Tatsu 解析器:前瞻语法在我的情况下不起作用
使用 Tatsu 5.7.0 Python 包。
我有一个非常简单的结构来解析。以下是文本示例:
每个文本部分在序列“AC....”之前或文本末尾终止。
我为 Tatsu 写了这个语法:
问题是,如果我将前瞻条件放在“文本”正则表达式规则中,它可以正常工作,否则在使用 Tatsu 表达式进行前瞻时它不起作用。
似乎是.+?不向前看&att表达式,而是消耗所有输入。
如果我取消注释“ text = /(?s).+?/ &att ; ”,它只会识别第一个 at 为“2092”的部分,并在文本规则中捕获其他所有内容。
任何人都可以帮助我吗?
tatsu - 我在 Tatsu 语法中用正则表达式替换 ebnf 规则时遇到问题
我使用 Tatsu 为 Gerber 格式开发了一个语法检查器。它工作正常,我感谢 Tatsu 开发人员。但是,它并不算太快,我现在正在优化语法。
Gerber 格式是一个命令流,这是由语法的主循环处理的,如下所示:
开始 =
整数 = /[+-]?[0-9]+/;
在大文件中,性能很重要,选择中的第一条规则涵盖了绝大多数语句。(实际上是三个命令。通过将它们放在首位,然后合并以消除公共元素,使检查器快 2-3 倍。)现在我尝试用正则表达式替换第一条规则,假设正则表达式在 C 中更快.
在第一步中,我内联了整数:
这工作得很好,并给出了适度的加速。
然后我尝试了整个规则的正则表达式。失败。作为测试,我只修改了序列中的第一条规则:
这无法识别以下命令:X81479571Y-38450761D01*
我看不出 ['X' /[+-]?[0-9]+/] 和 /(X[+-]?[0-9]+)?/ 之间的区别
我想念什么?