基本概念
ANTLR是一个可以根据用户定义的文法自动生成词法和语法分析器的工具,并且支持多种语言(默认java,其他语言需要另行配置)
LInux下安装和配置
进入/usr/local/lib
目录下
1 2
| cd /usr/local/lib curl -O https://www.antlr.org/download/antlr-4.9-complete.jar
|
之后将其加入到环境变量中
1
| export CLASSPATH=".:/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH"
|
但是这个名字太长了,为了方便使用,可以设置别名
1 2
| alias antlr4='java -jar /usr/local/lib/antlr-4.9.2-complete.jar' alias grun='java org.antlr.v4.gui.TestRig'
|
配置C++环境(需要安装cmake,uuid-dev,pkg-config)
由于课程设计要求,所以需要ANTLR4生成C++的代码,要额外的配置,首先下载runtime库,下载链接
压缩包里有两个readme文档,可以自行阅读
名字太长了不如换个名字如runtime-cpp
解压后放在任意一个文件夹里,进入runtime-cpp文件夹,输入命令
1 2 3 4
| mkdir build && mkdir run && cd build cmake ..\ make\ make install
|
这样就会将生成的库放在usr/local/include
中
课程设计要求在docker中进行编程,所以以上内容可以在编写Dockerfile时完成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| FROM ubuntu COPY antlr-4.9.2-complete.jar /usr/local/lib RUN apt-get update\ && apt-get install vim -y\ && apt-get install default-jdk -y\ && apt-get install uuid-dev -y\ && apt-get install cmake -y\ && apt-get install g++ -y\ && apt-get install pkg-config -y\ && apt-get install -y libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev\ && apt-get install git -y RUN echo "export CLASSPATH='.:/usr/local/lib/antlr-4.9.2-complete.jar:$CLASSPATH'" >> /etc/bash.bashrc\ && echo "alias antlr4='java -jar /usr/local/lib/antlr-4.9.2-complete.jar'" >> /etc/bash.bashrc\ && echo "alias grun='java org.antlr.v4.gui.TestRig'" >> /etc/bash.bashrc\ && echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib" >> /etc/bash.bashrc\ && mkdir -p /home/root/runtime-cpp COPY runtime-cpp /home/root/runtime-cpp WORKDIR /home/root/runtime-cpp RUN mkdir build && mkdir run && cd build\ && cmake ..\ && make\ && make install
|
注意,antlr4的包和runtime的文件夹要和Dockerfile
放在同一文件夹下