ANTLR CPP14语法根
我是ANTLR的新手,学习了语法和工具的基础知识。 我试图在ANTLR CPP14语法根,antlr,antlr4,Antlr,Antlr4,我是ANTLR的新手,学习了语法和工具的基础知识。 我试图在example.txt中解析一个简单的CPP源代码,它是: int glob = 0; int main() { return 0; } 关于语法: 我尝试了grun CPP14 translationunit-gui
example.txt
中解析一个简单的CPP源代码,它是:
int glob = 0;
int main() {
return 0;
}
关于语法:
我尝试了grun CPP14 translationunit-gui
,收到了:
没有用于规则translationunit的方法或它有参数
translationunit
不是它的根吗?TestRig需要编译的Java源文件才能工作
从终端(假设您的CPP14.g4
和ANTLR JAR位于当前工作目录中),执行以下操作:
生成解析器类
编译生成的解析器类
运行TestRig
java-cp.:antlr-4.8-complete.jar org.antlr.v4.gui.TestRig CPP14 translationunit-gui
这导致我的机器出现以下情况:
我发现了问题所在。我将运行时文件编译到另一个目录中。谢谢从树中,似乎要获取所有全局变量,我需要查找
函数体中不存在的simpledeclaration
。对吗?是的,虽然我对C++不太熟悉,但听起来不错。
java -cp antlr-4.8-complete.jar org.antlr.v4.Tool CPP14.g4
javac -cp .:antlr-4.8-complete.jar *.java
java -cp .:antlr-4.8-complete.jar org.antlr.v4.gui.TestRig CPP14 translationunit -gui < example.txt