blob: c2fa6c4acf253774573b1e036bed2ea59c530a33 [file] [log] [blame]
Haibo Huangb7f974f2018-08-28 13:51:54 -07001ANTLR v3.5
2January 4, 2013
3
4Terence Parr, parrt at cs usfca edu
5ANTLR project lead and supreme dictator for life
6University of San Francisco
7
8INTRODUCTION
9
10Welcome to ANTLR v3! ANTLR (ANother Tool for Language Recognition) is
11a language tool that provides a framework for constructing
12recognizers, interpreters, compilers, and translators from grammatical
13descriptions containing actions in a variety of target
14languages. ANTLR provides excellent support for tree construction,
15tree walking, translation, error recovery, and error reporting. I've
16been working on parser generators for 25 years and on this particular
17version of ANTLR for 9 years.
18
19You should use v3 in conjunction with ANTLRWorks:
20
21 http://www.antlr.org/works/index.html
22
23and gUnit (grammar unit testing tool included in distribution):
24
25 http://www.antlr.org/wiki/display/ANTLR3/gUnit+-+Grammar+Unit+Testing
26
27The book will also help you a great deal (printed May 15, 2007); you
28can also buy the PDF:
29
30 http://www.pragmaticprogrammer.com/titles/tpantlr/index.html
31
322nd book, Language Implementation Patterns:
33
34 http://pragprog.com/titles/tpdsl/language-implementation-patterns
35
36See the getting started document:
37
38 http://www.antlr.org/wiki/display/ANTLR3/FAQ+-+Getting+Started
39
40You also have the examples plus the source to guide you.
41
42See the wiki FAQ:
43
44 http://www.antlr.org/wiki/display/ANTLR3/ANTLR+v3+FAQ
45
46and general doc root:
47
48 http://www.antlr.org/wiki/display/ANTLR3/ANTLR+3+Wiki+Home
49
50Please help add/update FAQ entries.
51
52If all else fails, you can buy support or ask the antlr-interest list:
53
54 http://www.antlr.org/support.html
55
56Per the license in LICENSE.txt, this software is not guaranteed to
57work and might even destroy all life on this planet:
58
59THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
60IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
61WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
62DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
63INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
64(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
65SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
66HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
67STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
68IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
69POSSIBILITY OF SUCH DAMAGE.
70
71----------------------------------------------------------------------
72
73EXAMPLES
74
75ANTLR v3 sample grammars:
76
77 https://github.com/antlr/examples-v3
78
79Examples from Language Implementation Patterns:
80
81 http://www.pragprog.com/titles/tpdsl/source_code
82
83----------------------------------------------------------------------
84
85What is ANTLR?
86
87ANTLR stands for (AN)other (T)ool for (L)anguage (R)ecognition
88and generates LL(*) recursive-descent parsers. ANTLR is a language tool
89that provides a framework for constructing recognizers, compilers, and
90translators from grammatical descriptions containing actions.
91Target language list:
92
93http://www.antlr.org/wiki/display/ANTLR3/Code+Generation+Targets
94
95----------------------------------------------------------------------
96
97How is ANTLR v3 different than ANTLR v2?
98
99See "What is the difference between ANTLR v2 and v3?"
100
101 http://www.antlr.org/wiki/pages/viewpage.action?pageId=719
102
103See migration guide:
104
105 http://www.antlr.org/wiki/display/ANTLR3/Migrating+from+ANTLR+2+to+ANTLR+3
106
107----------------------------------------------------------------------
108
109How do I install this damn thing?
110
111You will have grabbed either of these:
112
113 http://antlr.org/download/antlr-3.5-complete-no-st3.jar
114 http://antlr.org/download/antlr-3.5-complete.jar
115
116It has all of the jars you need combined into one. Then you need to
117add antlr-3.5-complete.jar to your CLASSPATH or add to arg list; e.g., on unix:
118
119$ java -cp "/usr/local/lib/antlr-3.5-complete.jar:$CLASSPATH" org.antlr.Tool Test.g
120
121Source + java binaries: Just untar antlr-3.5.tar.gz and you'll get:
122
123antlr-3.5/BUILD.txt
124antlr-3.5/antlr3-maven-plugin
125antlr-3.5/antlrjar.xml
126antlr-3.5/antlrsources.xml
127antlr-3.5/gunit
128antlr-3.5/gunit-maven-plugin
129antlr-3.5/pom.xml
130antlr-3.5/runtime
131antlr-3.5/tool
132antlr-3.5/lib
133
134Please see the FAQ
135
136 http://www.antlr.org/wiki/display/ANTLR3/ANTLR+v3+FAQ
137
138-------------------------
139
140How can I contribute to ANTLR v3?
141
142http://www.antlr.org/wiki/pages/viewpage.action?pageId=33947666