ANTLR

advertisement
What is ANTLR?
 What exactly does ANTLR do?
 How ANTLR is installed to Eclipse?
 ANTLR Project Examples
 References


ANTLR - ANother Tool for Language Recognition
› tool that generates sophisticated parser generator using user defined
grammars..
› Using parser generators
 language interpreters
 Compilers
 other translators
can be implemented. [1]

ANTLR
› compiler generator or compiler compiler
› used to generate the source code for
 language recognizers,
 analyzers
 translators
from language specifications. [2]

ANTLR
› takes as its input a grammar - a precise description of a language
augmented with semantic actions › generates source code files and other auxiliary files.
› Target language of the generated source code may be
 Java
 C/C++
 C#
 Python
 Ruby
is specified in the grammar [2].

ANTLR
› used to build translators and interpreters for
Domain Specific Languages (DSLs).
› DSLs are very high level languages
 tailored to specific tasks.
› NASA uses Domain Specific Command
Languages for space missions to




improve reliability
reduce risk
reduce cost
increase the speed of development. [1]

ANTLR reads a grammar then generates these tools:
› A Lexer: This reads an input character or byte stream (i.e.
characters, binary data, etc.)
 divides it into tokens using patterns you specify
 generates a token stream as output.
Some tokens such as whitespace and comments
as hidden using a protocol that ANTLR parsers automatically
understand and respect.
› A Parser: This reads a token stream (normally generated by
a lexer)
 matches phrases in your language via the rules (patterns)
you specify
 typically performs some semantic action for each phrase
(or sub-phrase) matched. [2]

Tool
› uses lexer and parser in series to check
the word-level and phrase-level structure of
the input
› if no fatal errors are encountered
 create an intermediate tree representation
such as an Abstract Syntax Tree (AST) [2]

Tutorial for installation
› Installation of ANTLR to Eclipse

Tutorial for creating project
› Creating an ANTLR Project in Eclipse

EnglishGrammer.g

Test.java

Sample Outputs :

Parse trees:

Expr.g

Expr.g - Continue

Test.java

Test.java - Continue

Sample Outputs :






[1] T. Parr, The Definitive ANTLR Reference,
Building Domain-Specific Languges, Dallas,
Texas : The Pragmatic Bookshelf , 2007
[2] Five minute introduction to ANTLR 3 :
http://www.antlr.org/wiki/display/ANTLR3/Five+
minute+introduction+to+ANTLR+3
[3] http://antlreclipse.sourceforge.net/
[4] http://vimeo.com/8001326
[5] http://www.antlr3.org/download/
[6]
http://stackoverflow.com/questions/8343488/a
ntlr-ide-in-eclipse-doesnt-work
Download