在语义中引发异常后,是否可以继续使用其他规则进行解析?

2024-04-20 12:44:44 发布

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

在语义操作中引发异常后,是否可以回退到其他规则?类似于以下(人为的)场景:

var = /[a-zA-Z]+/;
keyword = 'for' | 'in';
a = var:var | keyword:keyword;

def a(ast):
    if (ast.var not in symbolTable):
        raise Exception()

当引发异常时,解析将继续使用“关键字”规则。我知道@keyword功能,但我想在运行时声明关键字(我的解析器适用于带有用户定义运算符的编程语言)


Tags: inforif规则vardef语义场景