移动到新的状态antlr4 cosuming令牌后(move to a new state afte

2019-09-28 19:36发布

我有以下的语法

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_statements统治下得到错误的两个语句

Failed to parse at line 1:1 due to mismatched input 'aleter' expecting ALTER

现在我想用Defaulterrorhandler功能跳过第一条语句,直到分号。 然后,它应该从第二条语句开始统治sql_statements开始。

Question :
How to tell which rule to start after consuming error tokens ?
Thanks in advance.
文章来源: move to a new state after cosuming tokens in antlr4