使用antlr4和java解析器解析objective-c代码时出错,但可以使用grun

使用antlr4和java解析器解析objective-c代码时出错,但可以使用grun,antlr4,Antlr4,我使用的是一步语法,当我运行grun时,它非常有效: grun ObjectiveC translationUnit~/Desktop/test.h-gui 但是,当使用以下代码运行生成的java解析器时: 试试看{ AntlInputStream inputStream=新的AntlInputStream( “@interface TestInterface\r@property(非原子,赋值)BOOL testProp;\r@end”); ObjectiveCLexer lexer=新的Ob

我使用的是一步语法,当我运行grun时,它非常有效:

grun ObjectiveC translationUnit~/Desktop/test.h-gui

但是,当使用以下代码运行生成的java解析器时:

试试看{
AntlInputStream inputStream=新的AntlInputStream(
“@interface TestInterface\r@property(非原子,赋值)BOOL testProp;\r@end”);
ObjectiveCLexer lexer=新的ObjectiveCLexer(inputStream);
CommonTokenStream CommonTokenStream=新的CommonTokenStream(lexer);
ObjectiveParser=新的ObjectiveParser(commonTokenStream);
setBuildParseTree(true);
ParseTree=parser.expression();
ObjectiveParserBaseVisitor visitor=新ObjectiveParserBaseVisitor();
访问者。访问(树);
}
捕获(例外情况除外){
系统输出打印(ex);
}
我得到这个错误:


行1:0外部输入'@interface'应为{'sizeof','true','false','BOOL','Class','bycopy','byref','id','IMP','in','inout','nil','NO','NULL','one way','out','Protocol','SEL','SEL','self','super','YES','encode','Protocol','selector','atomic','non atomic','retain'retain','uuu autoreleasing','uu块','uu桥保留','uu桥转移','uu协变','uu逆变',“\uuu已弃用”、“\uu kindof”、“\uuu未使用”、\uu未指定、可空、非空、可空重置、NS\u内联、NS\u枚举、NS\u选项、赋值、复制、getter、setter、strong、readonly、readwrite、weak、unsafe\u未保留、IBOutlet、IBOutletCollection、IBInspectable、IB\u可指定、标识符、LP、”['、'@',BANG'、'++'、'-'、'+'、'*'、'&'、'^',字符文字、字符串文字、十六进制文字、八进制文字、二进制文字、十进制文字、浮点文字}
您正在使用解析器规则运行grun
translationUnit
,但在代码中使用的是
表达式

ParseTree tree = parser.translationUnit();