如何进行错误处理?

2024-04-30 00:53:58 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用Grako进行错误处理?在

EBNF(我的语法.ebnf)公司名称:

pattern   = { tag | function }* ;
tag       = tag:( "%" name:id "%" );
function  = function:("$" name:id "()" );
id        = ?/([^\\%$,()=])+/? ;

我用

^{pr2}$

解析空字符串和“坏”字符串(语法无法匹配)都会导致空的AST闭包。在

^{3}$

另外,在123位置有没有任何错误?在


Tags: 字符串name名称idtag错误语法公司
1条回答
网友
1楼 · 发布于 2024-04-30 00:53:58

首先,第一个规则与空字符串匹配。也许你会想尝试一下:

pattern   = { tag | function }+ $ ;

是的,如果生成的解析器不能解析输入字符串,它将引发一个异常;注意上面规则中的$:它告诉解析器它应该在该位置看到输入的结尾。没有它,解析器很高兴只解析了部分输入。在

那么,我不认为命名元素中的命名元素会产生所需的结果。在

这是一个语法版本,可能会产生您想要的结果:

^{pr2}$

相关问题 更多 >