下面是我的 ANTLR4 语句语法:
添加类型测试;
sql_stmt_list:
SCOL* sql_stmt (SCOL+ sql_stmt)* (SCOL)+
;
sql_stmt: (EVALUATE_ (QUERY_ )?)? (
add_type_stmt
)
;
add_type_stmt:
ADD_ TYPE_ any_string
;
any_string: ANY_STRING;
ADD_ : 'add' ;
TYPE_ : 'type' ;
SCOL : ';' ;
ANY_STRING:
'"' ( ~[\\"] | '\\' . )* '"'
| '`' (~'`' | '``')* '`'
| '[' ~']'* ']'
| [a-zA-Z_0-9]+
;
低于错误:
第 1:9 行不匹配的输入“测试;”期待 ANY_STRING
尝试在语句末尾添加额外的分号,但它没有将分号视为最后一个分号。
鉴于错误:
第 1:9 行不匹配的输入“测试;”期待 ANY_STRING
似乎有一个词法分析器规则(未在您的原始问题中显示)匹配输入
Test;
导致输入 not 被标记为 ANY_STRING
和 SCOL
标记。