我需要为JAVA代码创建解析器,可以在C ++上使用。我尝试使用ANTLER生成解析器,但它总是生成错误的C ++代码,我无法编译。我从http://www.antlr3.org/download/下载了antlr-3.5.2-complete.jar。从http://www.antlr3.org/grammar/list.html获取Java语法Java6Separated后。我修改语法并通过插入
来更新它options {
language=Cpp;
}
获取C ++目标。我使用Java6Lex.g参数(来自Java6Separated zip包的语法文件)在windows控制台antlr-3.5.2-complete.jar中运行,而antler生成Java6Lex和Java6Parse hpp和cpp文件。当这些文件添加到我的VS2013项目(我已经有一个ANTLR运行时hpp,因为生成的hpp-s包含它们)并且编译器报告错误,因为ANTLR生成的令牌名称与使用C ++相同,如CONST,NULL,...我不喜欢不知道我做错了什么,或者这是ANTLER中的一个错误。
有人解决这个或类似的问题吗?谢谢你的建议。