在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.

你能用一个新的更新吗?例如,没有提供足够的语法文件来重现您的引用错误,我知道这不是您问题的目标,但它是进一步研究的起点。请您更新一个新的语法文件,好吗?例如,没有提供足够的语法文件来重现引用的错误,我知道这不是问题的目标,但它是进一步研究的起点。