Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ANTLR CPP14语法根_Antlr_Antlr4 - Fatal编程技术网

ANTLR CPP14语法根

ANTLR CPP14语法根,antlr,antlr4,Antlr,Antlr4,我是ANTLR的新手,学习了语法和工具的基础知识。 我试图在example.txt中解析一个简单的CPP源代码,它是: int glob = 0; int main() { return 0; } 关于语法: 我尝试了grun CPP14 translationunit-gui

我是ANTLR的新手,学习了语法和工具的基础知识。 我试图在
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