簡體   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