Sql ANTLR:使用下一条语句的第一个标记终止前一条语句
我遇到了一些与SQL语法的语句终止相关的问题。目前它支持通过分号“;”终止语句代币将此设置为可选会导致语法内存不足。我想知道我是否可以匹配下一个语句的第一个标记作为前一个语句的终止符而不使用它。下面是我的解析器语法的一个片段Sql ANTLR:使用下一条语句的第一个标记终止前一条语句,sql,sql-server,parsing,antlr,Sql,Sql Server,Parsing,Antlr,我遇到了一些与SQL语法的语句终止相关的问题。目前它支持通过分号“;”终止语句代币将此设置为可选会导致语法内存不足。我想知道我是否可以匹配下一个语句的第一个标记作为前一个语句的终止符而不使用它。下面是我的解析器语法的一个片段 unit_statement : statement SEMICOLON! ; statement options{ backtrack=true; } : declare_statement | assignment_statement |
unit_statement
: statement SEMICOLON!
;
statement
options{
backtrack=true;
}
:
declare_statement
| assignment_statement
| sql_statement
;
这里,sql_语句规则必须以分号结尾,但declare_语句不应以分号结尾。我正在使用ANTLR 3