我有以下的语法:这是为什么可解析
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