1
我正在嘗試構建一個詞法分析器來標記單獨的單詞和引用的字符串。我有以下幾點:Antlr Lexer引用字符串謂詞
STRING: QUOTE (options {greedy=false;} : .)* QUOTE ;
WS : SPACE+ { $channel = HIDDEN; } ;
WORD : ~(QUOTE|SPACE)+ ;
對於角球的情況下,它需要解析:
"string" word1" word2
由於三個令牌:"string"
爲STRING和word1"
和word2
爲WORD。基本上,如果有最後一個報價,它就需要成爲WORD的一部分。如果報價被空格包圍,它應該是一個WORD。
我想這個規則WORD,沒有成功:
WORD: ~(QUOTE|SPACE)+
| (~(QUOTE|SPACE)* QUOTE ~QUOTE*)=> ~(QUOTE|SPACE)* QUOTE ~(QUOTE|SPACE)* ;