我正在尝试解析一个可以包含表创建脚本或索引创建脚本的文件。
下面是语法。当我使用一些垃圾输入运行脚本规则时,create xyz table
我得到一个错误line 1:0 no viable alternative at input 'create'
但是当我运行 table_script 或 index_script 我得到特定的错误消息line 1:8 missing 'table' at 'xxxtab'
即使我将脚本作为丢失的表或索引运行......是否有可能得到相同的错误消息?
grammar DBScript;
options { output=AST; }
tokens {
CREATE;
TABLE;
INDEX;
}
scripts
:
index_script | table_script
;
index_script
: create index index_name;
table_script
: create table table_name ;
create
: 'create';
table
: 'table';
index
: 'index';
table_name
:
IDENT;
index_name
:
IDENT;
fragment LETTER : ('a'..'z' | 'A'..'Z') ;
fragment DIGIT : '0'..'9';
INTEGER : DIGIT+ ;
IDENT : LETTER (LETTER | DIGIT)*;
WS : (' ' | '\t' | '\n' | '\r' | '\f')+ {$channel = HIDDEN;};