1. 下载安装
##1. 切目录 cd /usr/local/lib ##2. 下载jar包 wget https://www.antlr.org/download/antlr-4.0-complete.jar --no-check-certificate ##3.配置环境变量 export CLASSPATH=.:/usr/local/lib/antlr-4.0-complete.jar ##4.设置别名 alias antlr4='java -jar /usr/local/lib/antlr-4.0-complete.jar' 相对于 alias antlr4='java org.antlr.v4.Tool' ##5.测试 antlr4 命令 [root@gaocun lib]# antlr4 ANTLR Parser Generator Version 4.0 -o ___ specify output directory where all output is generated -lib ___ specify location of grammars, tokens files -atn generate rule augmented transition network diagrams -encoding ___ specify grammar file encoding; e.g., euc-jp -message-format ___ specify output style for messages in antlr, gnu, vs2005
2. 运行antlr并测试识别程序
##1.创建 Hello.g4 grammar Hello; // 定义一个名为Hello的语法 r : 'hello' ID; // 匹配一个关键字hello和一个紧随其后的标识符 ID : [a-z]+; // 指定 标识符的组成规则(一个或多个小写字母) WS : [\t\r\n]+ -> skip; // 忽略一个或多个 \t\r\n ##2.使用 org.antlr.v4.Tool 和 Hello.g4 = 来生成 词法解析器和语法解析器 antlr4 Hello.g4 相对于 java org.antlr.v4.Tool Hello.g4 [root@gaocun lib]# ls antlr-4.0-complete.jar HelloBaseListener.java Hello.g4 HelloLexer.java HelloLexer.tokens HelloListener.java HelloParser.java Hello.tokens ##3.编译 生成java源文件 javac *.java 注意: 编译的时候需要 antlr-4.0-complete.jar里面的类, 确保你配置了 CLASSPATH环境变量 否则 你需要指定 -cp=/usr/local/lib/antlr-4.0-complete.jar [root@gaocun lib]# ls | grep class HelloBaseListener.class HelloLexer.class HelloListener.class HelloParser.class HelloParser$RContext.class ##4.使用 自带的 TestRig来调试 (注意 antlr-4.6及以后版本 使用 org.antlr.v4.gui.TestRig) 4.1 查看分词 [root@gaocun lib]# java org.antlr.v4.runtime.misc.TestRig Hello r -tokens hello gaocun EOF => 文件结束符(unix ctrl+D win ctrl+Z) // 生成的结果 [@0,0:4='hello',<1>,1:0] [@1,6:11='gaocun',<2>,1:6] [@2,13:12='<EOF>',<-1>,2:0] FAQ: 错误1: 找不到或无法加载主类 org.antlr.v4.runtime.misc.TestRig 没有配置 CLASSPATH环境变量 或者 你需要指定 java -cp=/usr/local/lib/antlr-4.0-complete.jar 错误2: Can't load Hello as lexer or parser java 无法找到 生成词法分析器和语法分析器(就是编译后的.class文件) 可以 java -cp=/usr/local/lib/hello 4.2 查看语法树 [root@gaocun lib]# java org.antlr.v4.runtime.misc.TestRig Hello r -tree hello gaocun line 1:5 token recognition error at: ' ' (r hello gaocun) 4.3 查看语法树(可视化) java org.antlr.v4.runtime.misc.TestRig Hello r -gui
标签:java,lib,antlr,max,jar,##,Antlr4,Hello,下载 From: https://www.cnblogs.com/bajiaotai/p/16802527.html