ANTLR(一)

  1. 下载安装
  2. 入门体验

ANTLR是基于Java编写的,一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化文本或二进制文件。除了间接左递归,ANTLR 4几乎能处理任何语法。

下载安装

安装很简单,下载最新jar包即可,该jar包包含了运行ANTLR的工具和编译、执行ANTLR产生的识别程序所依赖的全部运行库,即ANTLR工具将语法文件转换成可以识别该语法文件所描述的语言的程序。

下载好后,还需配置CLASSPATH使得Java程序能找到ANTLR工具和运行库:export CLASSPATH=".:/Users/linjk/Documents/usr/services/antlr-4.8-complete.jar:$CLASSPATH"

在shell的rc文件配置别名,方便启动:alias antlr4='java -jar /Users/linjk/Documents/usr/services/antlr-4.8-complete.jar',配置调试工具: alias grun='java org.antlr.v4.gui.TestRig'

入门体验

为了简单,定义一个能识别类似hello world或hello jim的词组的语法:

接下来编译该语法文件:

提示不匹配,语法名字和文件名字应一致,修改一致后:

它生成了antlrHelloParser.java和antlrHelloLexer.java组成的、可以运行的语法识别程序。(这里还缺少一个main程序来触发语言识别过程)

然后编译生成class文件javac -g *.javagrun antlrHello r -tokens来运行:

运行后,输入hello world,然后ctrl+d来输入文件结束符,因为使用了选项-r tokens,所以上面打印出来全部的词法符号的列表。还可以导出语法分析树:


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 linjk121@163.com.