在antlr4中共享令牌后移动到新状态
我有下列语法在antlr4中共享令牌后移动到新状态,antlr,antlr4,antlrworks,Antlr,Antlr4,Antlrworks,我有下列语法 root : sql_statements EOF | EOF ; sql_statements :( sql_statement )+ ; sql_statement : ddl_statement semicolon ; ddl_statement : alter_statement ; 这是我语法的初步快照 我有以下测试用例 aleter table user;alter table group_user; 第
root
: sql_statements EOF | EOF
;
sql_statements
:( sql_statement )+
;
sql_statement
: ddl_statement semicolon
;
ddl_statement
: alter_statement
;
这是我语法的初步快照
我有以下测试用例
aleter table user;alter table group_user;
第一条语句有错误,因此我在sql_语句规则下得到两条语句的错误
Failed to parse at line 1:1 due to mismatched input 'aleter' expecting ALTER
现在,我想使用Defaulterrorhandler功能将第一条语句跳到分号。
然后它应该从第二条语句开始,以规则sql_语句开始
Question :
How to tell which rule to start after consuming error tokens ?
Thanks in advance.
你能用一个新的更新吗?例如,没有提供足够的语法文件来重现您的引用错误,我知道这不是您问题的目标,但它是进一步研究的起点。请您更新一个新的语法文件,好吗?例如,没有提供足够的语法文件来重现引用的错误,我知道这不是问题的目标,但它是进一步研究的起点。