[ Tutorial on AN -1424 : A Parser Generation Tool
[
Tutorial on AN-1424 :
A Parser Generation Tool
Assumptions
- Eclipse IDE- Installation of the ANTLR4 tool- Download the jar file of ANTLR4- Further References: * ANTLR website * Book on ANTLR4EEF
ANTLR (ANother Tool for Language Recognition)
ANTLR
- Parser.java- Lexer.java- Visitor classes
- Parser.java- Lexer.java
Your Java Classes
uses
uses
generates
generates
input file
output
Compiler
tee:bt
ANTLR (ANother Tool for Language Recognition)
ANTLR
- Parser.java- Lexer.java- Visitor classes
- Parser.java- Lexer.java
Your Java Classes
uses
uses
generates
generates
input file
output
Compiler I
÷÷i÷÷÷÷ Sot
Composite Pattern of Model Classes
Number
VariableDeclaration
Variable Multiplication
Addition
ExpressionProgram expressions: List<..>O
EEE
Composite Pattern of Model Classes
Number
VariableDeclaration
Variable Multiplication
Addition
ExpressionProgram expressions: List<..>
Building Model Objects from Parse Trees
i : INT = 5j : INT = 7i + j * 3
Variable
id
VariableDeclarationidtype
value
Multiplication
leftright
Additionleftright
Number
num
VariableDeclarationidtype
value
Variable
id
expressionsProgram 0 1 2
prog00'
EEFEEFEEE:*'
Building Model Objects from Parse Trees
i : INT = 5j : INT = 7i + j * 3
Variable
id
VariableDeclarationidtype
value
Multiplication
leftright
Additionleftright
Number
num
VariableDeclarationidtype
value
Variable
id
expressionsProgram 0 1 2
progi÷÷÷¥÷¥¥÷÷÷÷: FEE off,
Building Model Objects from Parse Trees
i : INT = 5j : INT = 7i + j * 3
Variable
id
VariableDeclarationidtype
value
Multiplication
leftright
Additionleftright
Number
num
VariableDeclarationidtype
value
Variable
id
expressionsProgram 0 1 2
prog
"*red BE
""!..¥¥d""
*oh¥:¥:¥i÷÷iiii÷e¥¥g÷¥:':iii¥eed¥%...
.⇐¥EET
'
ExprVisitor<T>*
ExprBaseVisitor<T>+
AntlrToProgram+ AntlrToExpression+
Hierarchy of Visitor Classes
implements
extends extends
o
ty
ExprVisitor<T>*
ExprBaseVisitor<T>+
AntlrToProgram+ AntlrToExpression+
Hierarchy of Visitor Classes
implements
extends extends
a.ir#qOoexeenaa.y:7.EIhcFare*ediI7r"
..
'
Building Model Objects from Parse Trees
i : INT = 5j : INT = 7i + j * 3
Variable
id
VariableDeclarationidtype
value
Multiplication
leftright
Additionleftright
Number
num
VariableDeclarationidtype
value
Variable
id
expressionsProgram 0 1 2
prog
O t÷'
*⇒÷¥:i¥÷÷÷÷÷STO
0¥
Syntax Errors vs. Semantic Errorsgonna
§ .
→ typeerror
XII - syntax errors must be
pks④ all fixed bets sematicend errors can be reported
.
⇒
Building Model Objects from Parse Trees
i : INT = 5j : INT = 7i + j * 3
Variable
id
VariableDeclarationidtype
value
Multiplication
leftright
Additionleftright
Number
num
VariableDeclarationidtype
value
Variable
id
expressionsProgram 0 1 2
prog
O
⇒¥¥ii÷¥¥¥⇒:*
Visitor Action
grammar vs. semantic actions
retrievalofmodelobject
Visitor vs. Action
distributed centralized
indirect(visit parse tree)
direct(built as parsing goes)It
Visitor Action
grammar vs. semantic actions
retrievalofmodelobject
Visitor vs. Action
distributed centralized
indirect(visit parse tree)
direct(built as parsing goes)
→iii
parrot"[email protected];'m[
Program objmdonesequ.de annually.