0
我一直在尋找解決這個問題的辦法,但到目前爲止我找不到任何答案。我正在開發一個ANTLR項目,該項目基本上應該實現一個像Haskell一樣的語法。ANTLR找不到計數器符號
listDecl:
LIST {int count=0; ArrayList<Integer> list = new ArrayList<Integer>();} (WS)+ ID '=' '[' a1=atom {count++; list.add($a1.value);} (',' a2=atom {count++; list.add($a2.value);})* ']' {listMemory.put($ID.text, list);}
;
代碼與遵循相同的基本格式,其他幾個人都讓我有以下錯誤沿着上述部分:
TParser.java:510: error: cannot find symbol
count++; list.add(a1);
^
symbol: variable count
location: class TParser
TParser.java:510: error: cannot find symbol
count++; list.add(a1);
^
symbol: variable list
location: class TParser
TParser.java:534: error: cannot find symbol
count++; list.add(a2);
^
symbol: variable count
location: class TParser
TParser.java:534: error: cannot find symbol
count++; list.add(a2);
^
symbol: variable list
location: class TParser
TParser.java:547: error: cannot find symbol
listMemory.put((ID6!=null?ID6.getText():null), list);
^
我很抱歉,如果這已經出現,但之後問廣泛的研究,我如果想count
和list
局部變量在整個規則可見已經老老實實地放棄希望 感謝所有幫助
對不起,我忘了提及這個規則是聲明和存儲整數列表......我不知道它是否有任何區別,但我想我會提及它... ... – user2607080