ANTLR v4 入门

ANTLR v4 入门

  • 安装
    • UNIX/LINUX
      • 下载
      • 添加antlr-4.9-complete.jar到您的CLASSPATH:
      • 为 ANTLR 工具创建别名,然后TestRig.
    • windows
      • 安装 Java(1.7 或更高版本)
      • 添加到环境变量
      • 临时使用
      • 使用批处理文件或 doskey 命令为 ANTLR 工具和 TestRig 创建简短的方便命令
    • 测试安装
  • 第一个例子

安装

UNIX/LINUX

安装 Java(1.7 或更高版本)

下载

$ cd /usr/local/lib
$ curl -O https://www.antlr.org/download/antlr-4.9-complete.jar
或者只是从网站在浏览器中下载:https://www.antlr.org/download.html 并将其放在合理的地方,例如/usr/local/lib.

添加antlr-4.9-complete.jar到您的CLASSPATH:

$ export CLASSPATH=".:/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH"
将它放在您的.bash_profile或任何您的启动脚本中也是一个好主意。

为 ANTLR 工具创建别名,然后TestRig.

$ alias antlr4=‘java -Xmx500M -cp “/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH” org.antlr.v4.Tool’
$ alias grun=‘java -Xmx500M -cp “/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH” org.antlr.v4.gui.TestRig’

windows

(感谢格雷厄姆·怀德曼)

安装 Java(1.7 或更高版本)

从https://www.antlr.org/download/下载 antlr-4.9-complete.jar(或任何版本) 保存到您的目录以获取 3rd 方 Java 库,例如C:\Javalib
添加antlr-4.9-complete.jar到 CLASSPATH,或者:

添加到环境变量

使用系统属性对话框 > 环境变量 > 创建或附加到CLASSPATH变量

临时使用

命令行:
SET CLASSPATH=.;C:\Javalib\antlr-4.9-complete.jar;%CLASSPATH%

使用批处理文件或 doskey 命令为 ANTLR 工具和 TestRig 创建简短的方便命令

批处理文件(在系统路径中的目录中)antlr4.bat 和 grun.bat
java org.antlr.v4.Tool %*
@ECHO OFF
SET TEST_CURRENT_DIR=%CLASSPATH:.;=%
if “%TEST_CURRENT_DIR%” == “%CLASSPATH%” ( SET CLASSPATH=.;%CLASSPATH% )
@ECHO ON
java org.antlr.v4.gui.TestRig %*
或者,使用 doskey 命令:
doskey antlr4=java org.antlr.v4.Tool $*
doskey grun =java org.antlr.v4.gui.TestRig $*

测试安装

要么直接启动 org.antlr.v4.Tool:

$ java org.antlr.v4.Tool
ANTLR Parser Generator Version 4.9
-o ___ specify output directory where all output is generated
-lib ___ specify location of .tokens files

或在 java 上使用 -jar 选项:

$ java -jar /usr/local/lib/antlr-4.9-complete.jar
ANTLR Parser Generator Version 4.9
-o ___ specify output directory where all output is generated
-lib ___ specify location of .tokens files

第一个例子

在/tmp目录中,将以下语法放入文件 Hello.g4 中: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工具就可以了:

$ cd /tmp
$ antlr4 Hello.g4
$ javac Hello*.java
现在测试一下:

$ grun Hello r -tree
(Now enter something like the string below)
hello parrt
(now,do:)
^D
(The output:)
(r hello parrt)
(That ^D means EOF on unix; it’s ^Z in Windows.) The -tree option prints the parse tree in LISP notation.
It’s nicer to look at parse trees visually.
$ grun Hello r -gui
hello parrt
^D
这会弹出一个对话框,显示该规则r匹配的关键字hello后跟标识符parrt。

本书源代码
这本书有很多很多例子,应该也很有用。您可以在此处免费下载它们:

http://pragprog.com/titles/tpantlr2/source_code

此外,github 上有大量 v4 语法集合:

https://github.com/antlr/grammars-v4


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部