<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Getting-started.md</id>
	<title>Getting-started.md - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Getting-started.md"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Getting-started.md&amp;action=history"/>
	<updated>2026-04-06T15:50:51Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Getting-started.md&amp;diff=658&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“{{MARKDOWN}} # 开始使用ANTLR v4  大家好，欢迎来到ANTLR的第4版！ 它以 [Crazy Nasty-Ass Honey Badger](http://www.youtube.com/watch?v=4r7wHMg5Yjg)，因为ANTLR v4会拿走你给它的任何东西--它根本不在乎！ 参见[Why do we need ANTLR v4?]（faq/general.md）和[preface of the ANTLR v4 book](http://media.pragprog.com/titles/tpantlr2/preface.pdf).  ## 安装说明  ANTLR实际上是两件事: 一种工具，用于将语法转换为Jav…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Getting-started.md&amp;diff=658&amp;oldid=prev"/>
		<updated>2022-02-21T06:07:29Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“{{MARKDOWN}} # 开始使用ANTLR v4  大家好，欢迎来到ANTLR的第4版！ 它以 [Crazy Nasty-Ass Honey Badger](http://www.youtube.com/watch?v=4r7wHMg5Yjg)，因为ANTLR v4会拿走你给它的任何东西--它根本不在乎！ 参见[Why do we need ANTLR v4?]（faq/general.md）和[preface of the ANTLR v4 book](http://media.pragprog.com/titles/tpantlr2/preface.pdf).  ## 安装说明  ANTLR实际上是两件事: 一种工具，用于将语法转换为Jav…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{MARKDOWN}}&lt;br /&gt;
# 开始使用ANTLR v4&lt;br /&gt;
&lt;br /&gt;
大家好，欢迎来到ANTLR的第4版！ 它以 [Crazy Nasty-Ass Honey Badger](http://www.youtube.com/watch?v=4r7wHMg5Yjg)，因为ANTLR v4会拿走你给它的任何东西--它根本不在乎！ 参见[Why do we need ANTLR v4?]（faq/general.md）和[preface of the ANTLR v4 book](http://media.pragprog.com/titles/tpantlr2/preface.pdf).&lt;br /&gt;
&lt;br /&gt;
## 安装说明&lt;br /&gt;
&lt;br /&gt;
ANTLR实际上是两件事: 一种工具，用于将语法转换为Java（或其他目标语言）中的语法分析器/词法分析器，以及生成的语法分析器/词法分析器所需的运行时。 即使您使用ANTLR IntelliJ插件或ANTLRWorks来运行ANTLR工具，生成的代码仍然需要运行时库。 &lt;br /&gt;
&lt;br /&gt;
您应该做的第一件事可能是下载并安装开发工具插件。 即使你只使用这些工具进行编辑，它们也很棒。 然后，按照下面的说明获取系统可用的运行时环境，以运行生成的解析器/词法分析器。  在接下来的内容中，我将讨论antlr-4.9-complete.jar，它具有该工具和运行时以及任何其他支持库 (例如，ANTLR v4是用v3编写的)。&lt;br /&gt;
&lt;br /&gt;
如果您打算使用mvn、ant将ANTLR集成到现有的构建系统中，或者希望将ANTLR集成到您的IDE中，例如eclipse或intellij中， see [Integrating ANTLR into Development Systems](https://github.com/antlr/antlr4/blob/master/doc/IDEs.md).&lt;br /&gt;
&lt;br /&gt;
### UNIX&lt;br /&gt;
&lt;br /&gt;
0. Install Java (version 1.7 or higher)&lt;br /&gt;
1. Download&lt;br /&gt;
```&lt;br /&gt;
$ cd /usr/local/lib&lt;br /&gt;
$ curl -O https://www.antlr.org/download/antlr-4.9-complete.jar&lt;br /&gt;
```&lt;br /&gt;
或者只是在浏览器中从网站下载:&lt;br /&gt;
    [https://www.antlr.org/download.html](https://www.antlr.org/download.html)&lt;br /&gt;
把它放在理性的地方，比如“/usr/local/lib”。&lt;br /&gt;
&lt;br /&gt;
2. Add `antlr-4.9-complete.jar` to your `CLASSPATH`:&lt;br /&gt;
```&lt;br /&gt;
$ export CLASSPATH=&amp;quot;.:/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
将其放入您的`.bash_profile`或您的启动脚本中也是一个好主意。&lt;br /&gt;
&lt;br /&gt;
3. 为ANTLR工具和 “测试” 创建别名。&lt;br /&gt;
```&lt;br /&gt;
$ alias antlr4='java -Xmx500M -cp &amp;quot;/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH&amp;quot; org.antlr.v4.Tool'&lt;br /&gt;
$ alias grun='java -Xmx500M -cp &amp;quot;/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH&amp;quot; org.antlr.v4.gui.TestRig'&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### WINDOWS&lt;br /&gt;
&lt;br /&gt;
(*Thanks to Graham Wideman*)&lt;br /&gt;
&lt;br /&gt;
0. Install Java (version 1.7 or higher)&lt;br /&gt;
1. Download antlr-4.9-complete.jar (or whatever version) from [https://www.antlr.org/download/](https://www.antlr.org/download/)&lt;br /&gt;
Save to your directory for 3rd party Java libraries, say `C:\Javalib`&lt;br /&gt;
2. Add `antlr-4.9-complete.jar` to CLASSPATH, either:&lt;br /&gt;
  * Permanently: Using System Properties dialog &amp;gt; Environment variables &amp;gt; Create or append to `CLASSPATH` variable&lt;br /&gt;
  * Temporarily, at command line:&lt;br /&gt;
```&lt;br /&gt;
SET CLASSPATH=.;C:\Javalib\antlr-4.9-complete.jar;%CLASSPATH%&lt;br /&gt;
```&lt;br /&gt;
3. Create short convenient commands for the ANTLR Tool, and TestRig, using batch files or doskey commands:&lt;br /&gt;
  * Batch files (in directory in system PATH) antlr4.bat and grun.bat&lt;br /&gt;
```&lt;br /&gt;
java org.antlr.v4.Tool %*&lt;br /&gt;
```&lt;br /&gt;
```&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
SET TEST_CURRENT_DIR=%CLASSPATH:.;=%&lt;br /&gt;
if &amp;quot;%TEST_CURRENT_DIR%&amp;quot; == &amp;quot;%CLASSPATH%&amp;quot; ( SET CLASSPATH=.;%CLASSPATH% )&lt;br /&gt;
@ECHO ON&lt;br /&gt;
java org.antlr.v4.gui.TestRig %*&lt;br /&gt;
```&lt;br /&gt;
  * Or, use doskey commands:&lt;br /&gt;
```&lt;br /&gt;
doskey antlr4=java org.antlr.v4.Tool $*&lt;br /&gt;
doskey grun =java org.antlr.v4.gui.TestRig $*&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
###测试安装&lt;br /&gt;
&lt;br /&gt;
直接启动org.antlr.v4.Tool：&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
$ java org.antlr.v4.Tool&lt;br /&gt;
ANTLR Parser Generator Version 4.9&lt;br /&gt;
-o ___ specify output directory where all output is generated&lt;br /&gt;
-lib ___ specify location of .tokens files&lt;br /&gt;
...&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
or use -jar option on java:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
$ java -jar /usr/local/lib/antlr-4.9-complete.jar&lt;br /&gt;
ANTLR Parser Generator Version 4.9&lt;br /&gt;
-o ___ specify output directory where all output is generated&lt;br /&gt;
-lib ___ specify location of .tokens files&lt;br /&gt;
...&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## 第一个例子&lt;br /&gt;
&lt;br /&gt;
在临时目录中，将以下语法放入文件Hello中。g4：你好。g4&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
// Define a grammar called Hello&lt;br /&gt;
grammar Hello;&lt;br /&gt;
r  : 'hello' ID ;         // match keyword hello followed by an identifier&lt;br /&gt;
ID : [a-z]+ ;             // match lower-case identifiers&lt;br /&gt;
WS : [ \t\r\n]+ -&amp;gt; skip ; // skip spaces, tabs, newlines&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
然后在其上运行ANTLR工具：&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
$ cd /tmp&lt;br /&gt;
$ antlr4 Hello.g4&lt;br /&gt;
$ javac Hello*.java&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
现在测试一下:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
$ grun Hello r -tree&lt;br /&gt;
(Now enter something like the string below)&lt;br /&gt;
hello parrt&lt;br /&gt;
(now,do:)&lt;br /&gt;
^D&lt;br /&gt;
(The output:)&lt;br /&gt;
(r hello parrt)&lt;br /&gt;
(That ^D means EOF on unix; it's ^Z in Windows.) The -tree option prints the parse tree in LISP notation.&lt;br /&gt;
It's nicer to look at parse trees visually.&lt;br /&gt;
$ grun Hello r -gui&lt;br /&gt;
hello parrt&lt;br /&gt;
^D&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
弹出一个对话框，显示规则'r'匹配的关键字'hello'，后跟标识符'parrt'。&lt;br /&gt;
&lt;br /&gt;
![](images/hello-parrt.png)&lt;br /&gt;
&lt;br /&gt;
## 图书源代码&lt;br /&gt;
&lt;br /&gt;
这本书有很多也应该有用的例子。 你可以在这里免费下载：&lt;br /&gt;
&lt;br /&gt;
[http://pragprog.com/titles/tpantlr2/source_code](http://pragprog.com/titles/tpantlr2/source_code)&lt;br /&gt;
&lt;br /&gt;
此外，在GitHub上有大量v4的语法集合：&lt;br /&gt;
&lt;br /&gt;
[https://github.com/antlr/grammars-v4](https://github.com/antlr/grammars-v4)&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>