笔记(一)"/>
ANTLR初学笔记(一)
之前听领导提到过ANTLR很神奇,可以做类似编译器的工作,执行自定义的代码,甚至写出自定义格式的SQL语句,觉得很是神奇,正好这段时间比较闲,所以简单学习了解下。
目录
ANTLR是什么?
安装
UNIX
WINDOWS
验证安装
简单示例
树形结构-tree
图形表示-gui
token流-tokens
总结
ANTLR是什么?
ANTLR(Another Tool for Language Recognition)是指可以根据输入自动生成语法树并可视化的显示出来的开源语法分析器。它是用Java写的,用来申明语言的语法,从而可以对语言进行编译运行。最方便的一点是,ANTLR已经替我们写好了常用语言的语法规则,我们已经拥有了常见语言的分析器,可以在其基础上直接做我们想做的事情。
ANTLR 官方网址 /
ANTLR 官方 Github
大量语法文件例子
ANTLR可以用来干什么:
1. 定制特定领域的语言:例如Hive和Spark中都是使用antlr来生成词法和语法的解析器的。
2. 文本解析:利用altlr解析json,html等。解析出来的信息可以做进一步的处理。
安装
参考官网:.md
本人在windows下进行实验,版本为最新版的4.7.2
UNIX
0. Java(1.6及以上)
1. 下载
$ cd /usr/local/lib
$ curl -O .7.1-complete.jar
2. 添加jar播到CLASSPATH路径
$ export CLASSPATH=".:/usr/local/lib/antlr-4.7.1-complete.jar:$CLASSPATH"
3. 创建ANTLR Tool和TestRig命令
$ alias antlr4='java -Xmx500M -cp "/usr/local/lib/antlr-4.7.1-complete.jar:$CLASSPATH" org.antlr.v4.Tool'
$ alias grun='java -Xmx500M -cp "/usr/local/lib/antlr-4.7.1-complete.jar:$CLASSPATH" org.antlr.v4.gui.TestRig'
WINDOWS
java org.antlr.v4.Tool %*
0. Java(1.6及以上)
1. 下载jar包/ ,保存到目录下,例如C:\Javalib
2. 设置CLASSPATH环境变量中添加C:\Javalib\antlr-4.7.1-complete.jar
3. 创建ANTLR Tool和TestRig命令
创建antlr4.bat写入
java org.antlr.v4.Tool %*
创建grun.bat文件写入
java org.antlr.v4.gui.TestRig %*
将存放这两个bat文件的目录添加到环境变量PATH
验证安装
cmd打开命令行窗口
或者
安装成功!
简单示例
创建文件Hello.g4
// Define a grammar called Hello
grammar Hello;
r : 'hello' ID ; // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines
运行ANTLR工具
同目录下生成若干文件
javac编译
javac Hello*.java
生成运行时文件
可以进行语法解析测试了
树形结构-tree
运行命令,输入hello world,unix使用Ctro+D,windows使用Ctro+Z结束输入,-tree表示用属性结构打印解析的结构。
-gui表示使用图形化表示解析结果
图形表示-gui
弹出框
token流-tokens
总结
ANTLR简单使用时
1. 先按照其语法规则,定义解析规则.g4文件;
2. 然后运行antlr4自动生成解析文件,javac编译
3. 使用grun命令对输入进行解析,并展示。
以上只是最简单的使用,在实际使用是不可能每次使用命令行进行处理,有相应的调用代码。
更多推荐
ANTLR初学笔记(一)
发布评论