我有以下的語法:這是爲什麼可解析
grammar Demo;
program: command
IDENTIFIER
;
command:
| 'add'
| 'remove'
;
IDENTIFIER: [a-zA-Z][a-zA-Z0-9]* ;
WHITESPACE: [ \t\n\r]+ -> skip;
現在我可以進入類似「添加富」,我得到正確的結果。 但他也只接受「foo」。我認爲解析器會拋出異常,因爲值必須以其中一個命令開始? 有沒有解決問題的選項?或者我有謬誤?
我不知道ANTLR,但我認爲第一個'|'字符是問題,從而使空的輸入。也許把它改成'command:'add'| '刪除';'? – Seelenvirtuose