在 max环境下 下载、安装、运行 Antlr4

 


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
复制代码

 

posted @   学而不思则罔!  阅读(138)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示