私はhere- 私はthis-ANTLRエラー "入力にノー実行可能な代替案"
のように入力を渡すと、基本的にはgrammar-grammar Simpleql;
statement : expr command* ;
expr : expr ('AND' | 'OR' | 'NOT') expr # expopexp
| expr expr # expexp
| predicate # predicexpr
| text # textexpr
| '(' expr ')' # exprgroup
;
predicate : text ('=' | '!=' | '>=' | '<=' | '>' | '<') text ;
command : '| show' text* # showcmd
| '| show' text (',' text)* # showcsv
;
text : NUMBER # numbertxt
| QTEXT # quotedtxt
| UQTEXT # unquotedtxt
;
AND : 'AND' ;
OR : 'OR' ;
NOT : 'NOT' ;
EQUALS : '=' ;
NOTEQUALS : '!=' ;
GREQUALS : '>=' ;
LSEQUALS : '<=' ;
GREATERTHAN : '>' ;
LESSTHAN : '<' ;
NUMBER : DIGIT+
| DIGIT+ '.' DIGIT+
| '.' DIGIT+
;
QTEXT : '"' (ESC|.)*? '"' ;
UQTEXT : ~[()=,<>!\r\n]+ ;
fragment
DIGIT : [0-9] ;
fragment
ESC : '\\"' | '\\\\' ;
WS : [ \t\r\n]+ -> skip ;
を以下ましたhttps://datapsyche.wordpress.com/2014/10/23/back-to-learning-grammar-with-antlr/
与えられた例を、以下のよ
Abishek AND (country=India OR city=NY) LOGIN 404 | show name city
エラーが発生する - line 1:65 no viable alternative at input '<EOF>'
私はエラーに関連した2件のSOの投稿に行きましたが、文法に何が間違っているのか分からないようです。
トークンストリームをダンプすると、あなたが期待する内容で 'UQTEXT'トークンを持つのですか?他のトークンも同様ですか? – GRosenberg