繁体   English   中英

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

[英]Is it possible to continue parsing with other rules after an exception is raised in semantics?

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

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

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

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

如果语义代码引发tatsu.exceptions.FailedSemantics ,则异常将被视为ParseException ,因此将恢复正常的解析控制流。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM