Java ANTLR输入不匹配,需要ID

Java ANTLR输入不匹配,需要ID,java,input,antlr,antlr3,Java,Input,Antlr,Antlr3,如果你看到我以前的帖子,我仍然在研究同样基于Haskell的语法。大多数错误现在都消失了,但我还有一个问题 我的语法如下,我知道这是一个非常大和乏味的东西读,但我需要在我的期末考试,所以我很抱歉,我感谢任何帮助:(很多逻辑是缺失的,但这些都是需要的规则) 当我通过命令提示符运行它时,我得到以下结果: C:\Users\Kamal\Desktop\Antlr>java -cp .;antlr-3.2.jar org.antlr.Tool T.g C:\Users\Kamal\Desktop

如果你看到我以前的帖子,我仍然在研究同样基于Haskell的语法。大多数错误现在都消失了,但我还有一个问题

我的语法如下,我知道这是一个非常大和乏味的东西读,但我需要在我的期末考试,所以我很抱歉,我感谢任何帮助:(很多逻辑是缺失的,但这些都是需要的规则)

当我通过命令提示符运行它时,我得到以下结果:

C:\Users\Kamal\Desktop\Antlr>java -cp .;antlr-3.2.jar org.antlr.Tool T.g

C:\Users\Kamal\Desktop\Antlr>javac -cp .;antlr-3.2.jar *.java

C:\Users\Kamal\Desktop\Antlr>java -cp .;antlr-3.2.jar TestT
line 1:4 mismatched input 'x' expecting ID
line 2:4 mismatched input 'y' expecting ID
如果有任何帮助,我将不胜感激。即使没有人能真正回答。
非常感谢

问题可能与中的相同


当您的
ID
规则与给定的输入匹配时,可能还有另一条规则与您的
'x'
'y'
值匹配。不幸的是,我还没有在这里设置antlr来测试它,但是您的
字母
规则可能会导致问题。您应该尝试将您的
数字
字母
规则声明为

问题可能与中的相同


当您的
ID
规则与给定的输入匹配时,可能还有另一条规则与您的
'x'
'y'
值匹配。不幸的是,我还没有在这里设置antlr来测试它,但是您的
字母
规则可能会导致问题。您应该尝试将您的
数字和
字母规则声明为

我对字母和数字进行了注释这是我得到的输出6 5-1 2 6 8 0 1除以0是不可能的4后跟:第12:5行必需(…)+循环与输入“x”行的任何内容都不匹配13:4必需(…)+循环与输入“5”行14:4处的任何内容不匹配必需(…)+循环与输入“y”行15:6处的任何内容不匹配必需(…)+循环与输入“x”0行16:6处的任何内容不匹配必需(…)+循环与输入“y”0行17:6处的任何内容不匹配必需(…)+循环与输入“2”0中的任何内容都不匹配任何关于原因的输入?由于您的
WS
规则已在末尾包含一个
+
,我认为在
numEven
中使用该规则时不需要
+
,等等。我对字母和数字进行了注释这是我得到的输出65-12 6 8 0 1除以0是不可能的4后跟:第12:5行要求(…)+循环与输入“x”行的任何内容都不匹配13:4要求(…)+循环与输入“5”行的任何内容都不匹配14:4要求(…)+循环与输入“y”行的任何内容不匹配15:6必需(…)+循环与输入“x”行的任何内容不匹配16:6必需(…)+循环与输入“y”0行的任何内容不匹配17:6必需(…)+循环与输入“2”0中的任何内容都不匹配任何关于原因的输入?由于您的
WS
规则已在末尾包含一个
+
,我认为在
numEven
等中使用规则时也不需要
+
num x=4;
num y=9;
x+2;
2+3;
2-3;
x-2;
2*3;
x*2;
2/4;  
x/3;
x/0;
even x;
odd 5;
odd y;
twice x; 
twice y; 
twice 2; 
C:\Users\Kamal\Desktop\Antlr>java -cp .;antlr-3.2.jar org.antlr.Tool T.g

C:\Users\Kamal\Desktop\Antlr>javac -cp .;antlr-3.2.jar *.java

C:\Users\Kamal\Desktop\Antlr>java -cp .;antlr-3.2.jar TestT
line 1:4 mismatched input 'x' expecting ID
line 2:4 mismatched input 'y' expecting ID