0
這裏是我的ANTLR4語法片段:ANTLR的詞法規則不包括令牌
詞法規則:
AND : ('a'|'A') ('n'|'N') ('d'|'D');
OR : ('o'|'O') ('r'|'R') ;
NOT : ('n'|'N') ('o'|'O') ('t'|'T') ;
TERM : ('a'..'z'|'A'..'Z'|'0'..'9'|[1-9])+ ;
的語法規則:
negation: NOT;
logical: AND|OR;
term: TERM;
search
: negation? term (logical negation? term)* ;
;
基本上我想獲得它解析「你和我」字符串,使TERM標記匹配「你」,「我」,我想要「和」被AND規則識別,而不是 TERM規則。
現在我得到了:line 1:4 missing TERM at 'and'
錯誤。
我知道我的輸入符合AND和TERM詞法分析規則,但我希望能夠指定TERM是,除了什麼符合AND規則。
當你在antlr中有這個非常典型的關鍵字/標識符通用前綴歧義時,你應該考慮使用'文字'特徵。 (見http://www.antlr2.org/doc/options.html#literal) – BadZen
看起來您需要添加一個空白規則。 – GRosenberg