2024-04-30 00:53:58 发布
网友
如何使用Grako进行错误处理?在
EBNF(我的语法.ebnf)公司名称:
pattern = { tag | function }* ; tag = tag:( "%" name:id "%" ); function = function:("$" name:id "()" ); id = ?/([^\\%$,()=])+/? ;
我用
解析空字符串和“坏”字符串(语法无法匹配)都会导致空的AST闭包。在
另外,在123位置有没有任何错误?在
首先,第一个规则与空字符串匹配。也许你会想尝试一下:
pattern = { tag | function }+ $ ;
是的,如果生成的解析器不能解析输入字符串,它将引发一个异常;注意上面规则中的$:它告诉解析器它应该在该位置看到输入的结尾。没有它,解析器很高兴只解析了部分输入。在
$
那么,我不认为命名元素中的命名元素会产生所需的结果。在
这是一个语法版本,可能会产生您想要的结果:
首先,第一个规则与空字符串匹配。也许你会想尝试一下:
是的,如果生成的解析器不能解析输入字符串,它将引发一个异常;注意上面规则中的
$
:它告诉解析器它应该在该位置看到输入的结尾。没有它,解析器很高兴只解析了部分输入。在那么,我不认为命名元素中的命名元素会产生所需的结果。在
这是一个语法版本,可能会产生您想要的结果:
^{pr2}$相关问题 更多 >
编程相关推荐