Compiler construction ANTLR注册。表达式错误

Compiler construction ANTLR注册。表达式错误,compiler-construction,antlr,antlr3,Compiler Construction,Antlr,Antlr3,您能看到以下正则表达式有任何错误吗?我在ANTLR3.4中对其进行了定义,但它接受$1之类的参数,尽管它不应该接受。但是,它不接受o英镑或o$ne ID:('a'、'z'|'a'、'z'|'|'|')('a'、'z'|'a'、'z'|'0'、'9'|')* ; 提前感谢。不,ID与“$one”或“£one”不匹配,如您所见: T.g 语法T; 解析:ID-EOF; ID:('a'、'z'|'a'、'z'|'|')('a'、'z'|'a'、'z'|'0'、'9'|')*; 主类 import o

您能看到以下正则表达式有任何错误吗?我在ANTLR3.4中对其进行了定义,但它接受$1之类的参数,尽管它不应该接受。但是,它不接受o英镑或o$ne

ID:('a'、'z'|'a'、'z'|'|'|')('a'、'z'|'a'、'z'|'0'、'9'|')* ;


提前感谢。

不,
ID
“$one”
“£one”
不匹配,如您所见:

T.g
语法T;
解析:ID-EOF;
ID:('a'、'z'|'a'、'z'|'|')('a'、'z'|'a'、'z'|'0'、'9'|')*;
主类
import org.antlr.runtime.*;
公共班机{
公共静态void main(字符串[]args)引发异常{
TLexer lexer=新的TLexer(新的AntlStringStream($1));
TParser parser=newtparser(newcommontokenstream(lexer));
parser.parse();
}
}
运行测试
java-cp antlr-3.4-complete.jar org.antlr.Tool T.g
javac-cp antlr-3.4-complete.jar*.java
java-cp。;antlr-3.4-complete.jar Main
将产生以下错误:

第1:0行不匹配的字符“$”应设置为null
请注意,
antlr-3.4-complete.jar
antlr-3.4-complete-no-antlrv2.jar
都会产生相同的错误(或任何其他3.x版本)


我猜您正在使用AntlWorks,但没有注意到控制台选项卡上的错误消息(它们就在那里!)。

您救了我一天。我只是在检查解析树。