我正在尝试用 Antlwork 编写一个 C 语法,为此我使用了这个http://stuff.mit.edu/afs/athena/software/antlr_v3.2/examples-v3/java/C/Cg我试过的地方通过删除许多我不使用的块和回溯来使其更简单。这就是我所拥有的:http ://www.archive-host.com/files/1956778/24fe084677d7655eb57ba66e1864081450017dd9/CNew.txt
然后当我执行 ctrl+D 时,会收到很多警告和错误,如下所示:
[21:20:54] warning(200): C:\CNew.g:188:2: Decision can match input such as "'{' '}'" using multiple alternatives: 1, 2
As a result, alternative(s) 2 were disabled for that input
[21:20:54] warning(200): C:\CNew.g:210:2: Decision can match input such as "'for' '('" using multiple alternatives: 2, 3
As a result, alternative(s) 3 were disabled for that input
[21:20:54] error(201): C:\CNew.g:210:2: The following alternatives can never be matched: 3
[21:20:54] error(208): C:\CNew.g:250:1: The following token definitions can never be matched because prior tokens match the same input: CHAR
我真的不明白为什么我有所有这些警告,不应该有冲突。