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