问题标签 [grako]
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.
parsing - 如果我的语法包含由许多或连接的子表达式组成的表达式,为什么 Grako 解析过程会失败?
我正在使用 Grako。在我的 EBNF 语法中,我有一个表达式,它由许多使用 OR 运算符连接的子表达式组成,如下所示:
如果输入字符串包含后面的子表达式之一,例如 subexpressionZ,则解析过程总是失败。当我像这样重写语法时
如果输入字符串包含 subexpressionZ,则解析过程成功完成,但如果它包含 subexpressionA,则现在将失败。
有没有人遇到过类似的问题?这是 Grako 中的错误(我使用的是 3.6.3。)还是我做错了什么?
非常感谢您的任何想法!
python - Grako 的有序匹配
这确实解析了一个输入文件
这给出了错误
xxx
据我了解,模式规则会尝试匹配“数字”,但它不能。然后它应该继续尝试匹配任何东西并成功。
为什么不解析?
error-handling - 如何从 grako/TatSu 获取简洁的语法错误消息
如果 grako/tatsu 生成的解析器的输入有语法错误,例如calc.py 示例,除了
我可以使用3 + / 3
的相关内容之外,还会获得一长串 Python 调用序列
-构造,但随后我丢失了相关部分的错误信息。
3 + / 3
^
try
except
我想使用 grako/tatsu 来解析规则编译器的语法规则,我很欣赏以干净的方式分离语法和语义的可能性。用户会对过多的错误消息感到非常恼火。有没有办法清除错误消息?
python - 如何实现这种EBNF语法(lookahead)?
我正在尝试使用这种 TatSu (grako) 中的 EBNF 语法来解析字符串“###”:
我收到一个错误:
我怀疑首先执行搜索{'#'}(匹配'#' 零次或多次),然后找不到'#'(必需的字符'#')。是否有可能以某种方式实现它,以便首先我看到所需的字符'#',然后才寻找{'#'}附加字符?
bnf - 如何实现表达式的优先级 Bakus-Naur 形式
文档中描述了这种语法:
如何正确描述语法,以便在尝试解析字符串时得到以下结果:
对于字符串'######'
,我们得到的结果(['#', '#', '#', '#', '#'], '#')
是 True(第一个规则)
对于字符串'#####%'
,我们得到的结果(['#', '#', '#', '#'], '#')
是 False 它应该是(['#', '#', '#', '#'], '#%')
(首先工作,但应该是第二个规则)
对于字符串'000000'
,我们得到的结果(['0', '0', '0', '0', '0'], '0')
是 True(适用的第三条规则)
对于字符串'###000'
,我们得到的结果(['#', '#'], '#')
是 False (首先工作,但应该是第五条规则)
文档中给出的规则是荒谬的还是我做错了什么?