我樂星的文本文件,我得到這個異常:爲什麼我的輸入不匹配,如果例外文本本身說它應該匹配?
Exception in thread "main" java.lang.RuntimeException: mismatched input 'C' expecting {<EOF>, 'V:', '%', ACCIDENTAL, BASENOTE, 'z', '(', '['}
隨着BASENOTE在ANTLR被定義爲
BASENOTE : 'C' | 'D' | 'E' | 'F' | 'G' | 'A' | 'B'
| 'c' | 'd' | 'e' | 'f' | 'g' | 'a' | 'b';
我不明白爲什麼它認爲,「C」是錯誤的因爲它顯然是一個BASENOTE令牌。有人可以照亮它嗎?
編輯: 的BASENOTE前有:
KEYBASENOTE : 'C' | 'D' | 'E' | 'F' | 'G' | 'A' | 'B';
METERSHORT : 'C' | 'C|';
我改變了BASENOTE說:
BASENOTE : KEYBASENOTE | 'c' | 'd' | 'e' | 'f' | 'g' | 'a' | 'b';
但問題仍然存在。
在BASENOTE之前有: KEYBASENOTE:'C'| 'D'| 'E'| 'F'| 'G'| 'A'| 'B'; METERSHORT:'C'| 'C |'; 我改變了BASENOTE來說: BASENOTE:KEYBASENOTE | 'c'| 'd'| 'e'| 'f'| 'g'| 'a'| 'B'; 但問題仍然存在。 – Sanuuu