430 likes | 838 Views
ANTLR. OUTLINE. What is ANTLR? What exactly does ANTLR do? How ANTLR is installed to Eclipse ? ANTLR Project Examples References. What is ANTLR?. ANTLR - ANother Tool for Language Recognition t ool that generates sophisticated parser generator using user defined grammars ..
E N D
OUTLINE • What is ANTLR? • Whatexactlydoes ANTLR do? • How ANTLR is installedtoEclipse? • ANTLR Project Examples • References
What is ANTLR? • ANTLR - ANother Tool for Language Recognition • tool thatgeneratessophisticatedparsergeneratorusinguserdefinedgrammars.. • Using parsergenerators • languageinterpreters • Compilers • othertranslators can be implemented. [1] • ANTLR • compiler generatororcompiler compiler • used to generate the source code for • language recognizers, • analyzers • translators from language specifications. [2]
What is ANTLR? • 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].
What is ANTLR? • ANTLR • used tobuildtranslatorsandinterpretersfor Domain SpecificLanguages (DSLs). • DSLsareveryhighlevellanguages • tailoredtospecifictasks. • NASA uses Domain SpecificCommandLanguagesforspacemissionsto • improvereliability • reduce risk • reducecost • increasethespeed of development. [1]
Whatexactlydoes ANTLR do? • ANTLR reads agrammarthengeneratesthese 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. Sometokens 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) • matchesphrases in your language via the rules (patterns) you specify • typicallyperforms some semantic action for each phrase (or sub-phrase) matched. [2]
Whatexactlydoes ANTLR do? • Tool • uses lexerand parserin 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]
How ANTLR is installedtoEclipse? • Tutorialforinstallation • Installation of ANTLR toEclipse
ANTLR Project Examples • Tutorialforcreatingproject • Creating an ANTLR Project in Eclipse
English SentenceExample • EnglishGrammer.g
English SentenceExample • Test.java
English SentenceExample • SampleOutputs :
English SentenceExample • Parsetrees:
Expression Language Example • Expr.g
Expression Language Example • Expr.g - Continue
Expression Language Example • Test.java
Expression Language Example • Test.java - Continue
Expression Language Example • SampleOutputs :
REFERENCES • [1] T. Parr, TheDefinitive ANTLR Reference, Building Domain-SpecificLanguges, Dallas, Texas : ThePragmatic 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/antlr-ide-in-eclipse-doesnt-work