antlr/doc/index.md

65 lines
3.0 KiB
Markdown
Raw Normal View History

2015-10-28 08:12:01 +08:00
# ANTLR 4 Documentation
2015-10-28 08:36:22 +08:00
Please check [Frequently asked questions (FAQ)](faq/index.md) before asking questions on stackoverflow or antlr-discussion list.
2015-10-28 08:12:01 +08:00
2015-10-28 08:36:22 +08:00
Notes:
<ul>
<li>*To add to or improve this FAQ, [fork](https://help.github.com/articles/fork-a-repo/) the [antlr/antlr4 repo](https://github.com/antlr/antlr4) then update this `doc/index.md` or file(s) in that directory. Submit a [pull request](https://help.github.com/articles/creating-a-pull-request/) to get your changes incorporated into the main repository. Do not mix code and FAQ updates in the sample pull request.* **You must sign the contributors.txt certificate of origin with your pull request if you've not done so before.**</li>
2015-10-28 08:12:01 +08:00
2015-10-28 08:36:22 +08:00
<li>*Copyright © 2012, The Pragmatic Bookshelf. Pragmatic Bookshelf grants a nonexclusive, irrevocable, royalty-free, worldwide license to reproduce, distribute, prepare derivative works, and otherwise use this contribution as part of the ANTLR project and associated documentation.*</li>
<li>This text was copied with permission from the [The Definitive ANTLR 4 Reference](http://pragprog.com/book/tpantlr2/the-definitive-antlr-4-reference), though it is being morphed over time as the tool changes.</li>
</ul>
Links in the documentation refer to various sections of the book but have been redirected to the general book page on the publisher's site. There are two excerpts on the publisher's website that might be useful to you without having to purchase the book: [Let's get Meta](http://media.pragprog.com/titles/tpantlr2/picture.pdf) and [Building a Translator with a Listener](http://media.pragprog.com/titles/tpantlr2/listener.pdf). You should also consider reading the following books (the vid describes the reference book):
2015-10-28 08:12:01 +08:00
2015-10-28 08:19:06 +08:00
<a href=""><img src=images/tpantlr2.png width=120></a>
<a href=""><img src=images/tpdsl.png width=120></a>
<a href="https://www.youtube.com/watch?v=OAoA3E-cyug"><img src=images/teronbook.png width=250></a>
2015-10-28 08:12:01 +08:00
This documentation is a reference and summarizes grammar syntax and the key semantics of ANTLR grammars. The source code for all examples in the book, not just this chapter, are free at the publisher's website. The following video is a general tour of ANTLR 4 and includes a description of how to use parse tree listeners to process Java files easily:
2015-10-28 08:19:06 +08:00
<a href="https://vimeo.com/59285751"><img src=images/tertalk.png width=200></a>
2015-10-28 08:12:01 +08:00
## Sections
2015-10-28 08:36:22 +08:00
* [Getting Started with ANTLR v4](getting-started.md)
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Grammar Lexicon
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Grammar Structure
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Parser Rules
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Left-recursive rules
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Actions and Attributes
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Lexer Rules
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Wildcard Operator and Nongreedy Subrules
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Parse Tree Listeners
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Parse Tree Matching and XPath
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Semantic Predicates
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Options
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* ANTLR Tool Command Line Options
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Runtime Libraries and Code Generation Targets
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Parser and lexer interpreters
2015-10-28 08:19:06 +08:00
2015-10-28 08:36:22 +08:00
* Integrating ANTLR into Development Systems
2015-10-28 08:19:06 +08:00
2015-10-29 08:06:40 +08:00
# Building / releasing ANTLR itself
* [Building ANTLR itself](building-antlr.md)
2015-10-29 07:03:49 +08:00
* [Cutting an ANTLR Release](releasing-antlr.md)
2015-10-29 08:06:40 +08:00
* [Adding ANTLR unit tests](adding-tests.md)