You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
4.4 KiB
143 lines
4.4 KiB
ANTLR v3.5
|
|
January 4, 2013
|
|
|
|
Terence Parr, parrt at cs usfca edu
|
|
ANTLR project lead and supreme dictator for life
|
|
University of San Francisco
|
|
|
|
INTRODUCTION
|
|
|
|
Welcome to ANTLR v3! ANTLR (ANother Tool for Language Recognition) is
|
|
a language tool that provides a framework for constructing
|
|
recognizers, interpreters, compilers, and translators from grammatical
|
|
descriptions containing actions in a variety of target
|
|
languages. ANTLR provides excellent support for tree construction,
|
|
tree walking, translation, error recovery, and error reporting. I've
|
|
been working on parser generators for 25 years and on this particular
|
|
version of ANTLR for 9 years.
|
|
|
|
You should use v3 in conjunction with ANTLRWorks:
|
|
|
|
http://www.antlr.org/works/index.html
|
|
|
|
and gUnit (grammar unit testing tool included in distribution):
|
|
|
|
http://www.antlr.org/wiki/display/ANTLR3/gUnit+-+Grammar+Unit+Testing
|
|
|
|
The book will also help you a great deal (printed May 15, 2007); you
|
|
can also buy the PDF:
|
|
|
|
http://www.pragmaticprogrammer.com/titles/tpantlr/index.html
|
|
|
|
2nd book, Language Implementation Patterns:
|
|
|
|
http://pragprog.com/titles/tpdsl/language-implementation-patterns
|
|
|
|
See the getting started document:
|
|
|
|
http://www.antlr.org/wiki/display/ANTLR3/FAQ+-+Getting+Started
|
|
|
|
You also have the examples plus the source to guide you.
|
|
|
|
See the wiki FAQ:
|
|
|
|
http://www.antlr.org/wiki/display/ANTLR3/ANTLR+v3+FAQ
|
|
|
|
and general doc root:
|
|
|
|
http://www.antlr.org/wiki/display/ANTLR3/ANTLR+3+Wiki+Home
|
|
|
|
Please help add/update FAQ entries.
|
|
|
|
If all else fails, you can buy support or ask the antlr-interest list:
|
|
|
|
http://www.antlr.org/support.html
|
|
|
|
Per the license in LICENSE.txt, this software is not guaranteed to
|
|
work and might even destroy all life on this planet:
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
EXAMPLES
|
|
|
|
ANTLR v3 sample grammars:
|
|
|
|
https://github.com/antlr/examples-v3
|
|
|
|
Examples from Language Implementation Patterns:
|
|
|
|
http://www.pragprog.com/titles/tpdsl/source_code
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
What is ANTLR?
|
|
|
|
ANTLR stands for (AN)other (T)ool for (L)anguage (R)ecognition
|
|
and generates LL(*) recursive-descent parsers. ANTLR is a language tool
|
|
that provides a framework for constructing recognizers, compilers, and
|
|
translators from grammatical descriptions containing actions.
|
|
Target language list:
|
|
|
|
http://www.antlr.org/wiki/display/ANTLR3/Code+Generation+Targets
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
How is ANTLR v3 different than ANTLR v2?
|
|
|
|
See "What is the difference between ANTLR v2 and v3?"
|
|
|
|
http://www.antlr.org/wiki/pages/viewpage.action?pageId=719
|
|
|
|
See migration guide:
|
|
|
|
http://www.antlr.org/wiki/display/ANTLR3/Migrating+from+ANTLR+2+to+ANTLR+3
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
How do I install this damn thing?
|
|
|
|
You will have grabbed either of these:
|
|
|
|
http://antlr.org/download/antlr-3.5-complete-no-st3.jar
|
|
http://antlr.org/download/antlr-3.5-complete.jar
|
|
|
|
It has all of the jars you need combined into one. Then you need to
|
|
add antlr-3.5-complete.jar to your CLASSPATH or add to arg list; e.g., on unix:
|
|
|
|
$ java -cp "/usr/local/lib/antlr-3.5-complete.jar:$CLASSPATH" org.antlr.Tool Test.g
|
|
|
|
Source + java binaries: Just untar antlr-3.5.tar.gz and you'll get:
|
|
|
|
antlr-3.5/BUILD.txt
|
|
antlr-3.5/antlr3-maven-plugin
|
|
antlr-3.5/antlrjar.xml
|
|
antlr-3.5/antlrsources.xml
|
|
antlr-3.5/gunit
|
|
antlr-3.5/gunit-maven-plugin
|
|
antlr-3.5/pom.xml
|
|
antlr-3.5/runtime
|
|
antlr-3.5/tool
|
|
antlr-3.5/lib
|
|
|
|
Please see the FAQ
|
|
|
|
http://www.antlr.org/wiki/display/ANTLR3/ANTLR+v3+FAQ
|
|
|
|
-------------------------
|
|
|
|
How can I contribute to ANTLR v3?
|
|
|
|
http://www.antlr.org/wiki/pages/viewpage.action?pageId=33947666
|