Getting-started.md
开始使用ANTLR v4
大家好,欢迎来到ANTLR的第4版! 它以 Crazy Nasty-Ass Honey Badger,因为ANTLR v4会拿走你给它的任何东西--它根本不在乎! 参见[Why do we need ANTLR v4?](faq/general.md)和preface of the ANTLR v4 book.
安装说明
ANTLR实际上是两件事: 一种工具,用于将语法转换为Java(或其他目标语言)中的语法分析器/词法分析器,以及生成的语法分析器/词法分析器所需的运行时。 即使您使用ANTLR IntelliJ插件或ANTLRWorks来运行ANTLR工具,生成的代码仍然需要运行时库。
您应该做的第一件事可能是下载并安装开发工具插件。 即使你只使用这些工具进行编辑,它们也很棒。 然后,按照下面的说明获取系统可用的运行时环境,以运行生成的解析器/词法分析器。 在接下来的内容中,我将讨论antlr-4.9-complete.jar,它具有该工具和运行时以及任何其他支持库 (例如,ANTLR v4是用v3编写的)。
如果您打算使用mvn、ant将ANTLR集成到现有的构建系统中,或者希望将ANTLR集成到您的IDE中,例如eclipse或intellij中, see Integrating ANTLR into Development Systems.
UNIX
-
Install Java (version 1.7 or higher)
-
Download
$ 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”。
-
Add
antlr-4.9-complete.jar
to yourCLASSPATH
:$ export CLASSPATH=".:/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH"
将其放入您的
.bash_profile
或您的启动脚本中也是一个好主意。 -
为ANTLR工具和 “测试” 创建别名。
$ 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
(Thanks to Graham Wideman)
- Install Java (version 1.7 or higher)
- Download antlr-4.9-complete.jar (or whatever version) from https://www.antlr.org/download/
Save to your directory for 3rd party Java libraries, say
C:\Javalib
- Add
antlr-4.9-complete.jar
to CLASSPATH, either:- Permanently: Using System Properties dialog > Environment variables > Create or append to
CLASSPATH
variable - Temporarily, at command line:
SET CLASSPATH=.;C:\Javalib\antlr-4.9-complete.jar;%CLASSPATH%
- Permanently: Using System Properties dialog > Environment variables > Create or append to
- Create short convenient commands for the ANTLR Tool, and TestRig, using batch files or doskey commands:
- Batch files (in directory in system PATH) antlr4.bat and 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 %*
- Or, use doskey commands:
doskey antlr4=java org.antlr.v4.Tool $* doskey grun =java org.antlr.v4.gui.TestRig $*
- Batch files (in directory in system PATH) antlr4.bat and grun.bat
测试安装
直接启动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
...
or use -jar option on java:
$ 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
...
第一个例子
在临时目录中,将以下语法放入文件Hello中。g4:你好。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的语法集合: