ANTLR CPP14语法根
ANTLR CPP14 grammar root
我是 ANTLR 的新手,学习了语法和工具的基础知识。
我试图在 example.txt
中解析一个简单的 CPP 源,它是:
int glob = 0;
int main() {
return 0;
}
语法:https://github.com/antlr/grammars-v4/blob/master/cpp/CPP14.g4
我尝试了 grun CPP14 translationunit -gui < ./example.txt
并收到:
No method for rule translationunit or it has arguments
translationunit
不就是它的根吗?
TestRig
需要编译的 Java 源文件才能工作。
从终端(假设您的 CPP14.g4
和 ANTLR JAR 在当前工作目录中),执行以下操作:
生成解析器类
java -cp antlr-4.8-complete.jar org.antlr.v4.Tool CPP14.g4
编译生成的解析器类
javac -cp .:antlr-4.8-complete.jar *.java
运行 TestRig
java -cp .:antlr-4.8-complete.jar org.antlr.v4.gui.TestRig CPP14 translationunit -gui < example.txt
导致我的机器出现以下结果:
我是 ANTLR 的新手,学习了语法和工具的基础知识。
我试图在 example.txt
中解析一个简单的 CPP 源,它是:
int glob = 0;
int main() {
return 0;
}
语法:https://github.com/antlr/grammars-v4/blob/master/cpp/CPP14.g4
我尝试了 grun CPP14 translationunit -gui < ./example.txt
并收到:
No method for rule translationunit or it has arguments
translationunit
不就是它的根吗?
TestRig
需要编译的 Java 源文件才能工作。
从终端(假设您的 CPP14.g4
和 ANTLR JAR 在当前工作目录中),执行以下操作:
生成解析器类
java -cp antlr-4.8-complete.jar org.antlr.v4.Tool CPP14.g4
编译生成的解析器类
javac -cp .:antlr-4.8-complete.jar *.java
运行 TestRig
java -cp .:antlr-4.8-complete.jar org.antlr.v4.gui.TestRig CPP14 translationunit -gui < example.txt
导致我的机器出现以下结果: