Antlr4 C++ Linux 环境安装

Antlr4简介

Antlr4是一个强大的开源语法分析工具。

antlr4-XX-complete.jar

Antlr4是有Java语言编写的,哪怕是使用Antlr4用来生成其他语言(C++, Python…),也需要首先安装Java。

sudo apt install openjdk-19-jdk

需要下载antlr4-XX-complete.jar(本文写时安装的4.13.0版本),该jar包包含了运行Antlr的工具和编译。如果使用Java语言,到此环境基本完成了。

antlr4-cpp-runtime-XX

如果使用C++语言,需要安装antlr4-cpp-runtime-XX的环境。在官网[https://www.anltr.org/download.html]找到C++ Target, 下载源码antlr4-cpp-runtime-XX-source.zip。

编译安装

unzip antlr4-cpp-runtime-4.13.0-source.zip ./antlr-cpp-runtime/
cd antlr4-cpp-runtime-4.13.0-source
mkdir build
cd build
cmake ..
make
sudo make install

note需要注意的是,安装实在/usr/local/include/antlr4-runtime/下的,可能和后来antlr4生成后类文件找不到对应的头文件, 可以将/usr/local/include/antlr4-runtime/的文件拷贝出来。

sudo cp -r /usr/local/include/antlr4-runtime/* /usr/local/include/

至此C++环境安装完成。

简单测试

编写g4文件

grammar Hello;

r
    : 'hello' ID
    ;

ID
    : [a-zA-z]+
    ;

WS
    : [ \t\r\n] -> skip
    ;

生成对应Cpp文件

java -jar antlr4-4.13.0-complete.jar -Dlanguage=Cpp Hello.g4

按照antl4-cpp-runtime/demo/Linux/下样例编写自己的main.cpp调用主文件。需要注意的是最后parser部分的调用的方法是自己定义 的规则,不能照抄。写完编译,执行文件。

g++ ./*.cpp -lantlr4-runtime