SlideShare a Scribd company logo
1 of 36
Download to read offline
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
StackAST
Grammar
Text
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
StackAST
Grammar
Text
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
StackAST
Grammar
Text
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
StackAST
Grammar
Text
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
StackAST
Grammar
Text
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
StackAST
Grammar
Text
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
5.Multiplication
StackAST
Grammar
Text
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
5.Multiplication
6.PrimaryExpression
StackAST
Grammar
Text
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
5.Multiplication
6.PrimaryExpression
StackAST
Grammar
Text
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
5.Multiplication
6.PrimaryExpression
StackAST
Grammar
Text
1
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
5.Multiplication
6.PrimaryExpression
StackAST
Grammar
Text
1
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
5.Multiplication
StackAST
Grammar
Text
1
Reduce!
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
StackAST
Grammar
Text
1
Reduce!
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
StackAST
Grammar
Text
1
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
StackAST
Grammar
Text
1
+
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
StackAST
Grammar
Text
1
+
current = ruleMultiplication();
// {AdditionalExpression.left=current}
AdditionalExpression temp = new AdditionalExpression();
temp.setLeft(current);
current = temp:
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
StackAST
Grammar
Text
1
+
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
StackAST
Grammar
Text
1
+
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
StackAST
Grammar
Text
1
+
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
5.Multiplication
StackAST
Grammar
Text
1
+
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
5.Multiplication
6.PrimaryExpression
StackAST
Grammar
Text
1
+
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
4.Addition
StackAST
Grammar
Text
1
+
20
Reduce!
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
StackAST
Grammar
Text
1
+
20
Reduce!
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
StackAST
Grammar
Text
1
+
20
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
StackAST
Grammar
Text
1
+
20
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
StackAST
Grammar
Text
1
+
20
Reduce!
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
StackAST
Grammar
Text
1
+
20
*
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
StackAST
Grammar
Text
1
+
20
*
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
StackAST
Grammar
Text
1
+
20
*
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
StackAST
Grammar
Text
1
+
20
*
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
StackAST
Grammar
Text
1
+
20
*
2
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
3.PrimaryExpression
StackAST
Grammar
Text
1
+
20
*
EOF
2
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
StackAST
Grammar
Text
1
+
20
*
EOF Reduce!
2
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
2.Multiplication
StackAST
Grammar
Text
1
+
20
*
EOF
2
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
1.Addition
StackAST
Grammar
Text
1
+
20
*
EOF
2
Reduce!
Addition returns Expression:
Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*;
Multiplication returns Expression:
PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*;
PrimaryExpression returns Expression:
{NumberLiteral} value=INT |
'(' Addition ')';
( 1 + 20 ) * 2
StackAST
Grammar
Text
1
+
20
*
EOF
2
Finished!

More Related Content

What's hot

Ids sdd-jlr manual 02 02-12 (1)
Ids sdd-jlr manual 02 02-12 (1)Ids sdd-jlr manual 02 02-12 (1)
Ids sdd-jlr manual 02 02-12 (1)
Boualam Mohammed
Ā 
Robot framework
Robot frameworkRobot framework
Robot framework
boriau
Ā 

What's hot (20)

AirSensEUR: AirQuality monitoring open framework technical presentation
AirSensEUR: AirQuality monitoring open framework technical presentationAirSensEUR: AirQuality monitoring open framework technical presentation
AirSensEUR: AirQuality monitoring open framework technical presentation
Ā 
Test-Driven Development of Xtext DSLs
Test-Driven Development  of Xtext DSLsTest-Driven Development  of Xtext DSLs
Test-Driven Development of Xtext DSLs
Ā 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.js
Ā 
Web API Basics
Web API BasicsWeb API Basics
Web API Basics
Ā 
AOT(Ahead Of Time)
AOT(Ahead Of Time)AOT(Ahead Of Time)
AOT(Ahead Of Time)
Ā 
TypeScript for Java Developers
TypeScript for Java DevelopersTypeScript for Java Developers
TypeScript for Java Developers
Ā 
Asynchronous Programming in C# - Part 1
Asynchronous Programming in C# - Part 1Asynchronous Programming in C# - Part 1
Asynchronous Programming in C# - Part 1
Ā 
Robot Framework
Robot FrameworkRobot Framework
Robot Framework
Ā 
Ids sdd-jlr manual 02 02-12 (1)
Ids sdd-jlr manual 02 02-12 (1)Ids sdd-jlr manual 02 02-12 (1)
Ids sdd-jlr manual 02 02-12 (1)
Ā 
Learning Svelte
Learning SvelteLearning Svelte
Learning Svelte
Ā 
ORMģ„ ķ™œģš©ķ•  ź²½ģš°ģ˜ ģ„¤ź³„, ź°œė°œ ź³¼ģ •
ORMģ„ ķ™œģš©ķ•  ź²½ģš°ģ˜ ģ„¤ź³„, ź°œė°œ ź³¼ģ •ORMģ„ ķ™œģš©ķ•  ź²½ģš°ģ˜ ģ„¤ź³„, ź°œė°œ ź³¼ģ •
ORMģ„ ķ™œģš©ķ•  ź²½ģš°ģ˜ ģ„¤ź³„, ź°œė°œ ź³¼ģ •
Ā 
Robot framework
Robot frameworkRobot framework
Robot framework
Ā 
Node js Introduction
Node js IntroductionNode js Introduction
Node js Introduction
Ā 
Como montar un servidor web en windows xp
Como montar un servidor web en windows xpComo montar un servidor web en windows xp
Como montar un servidor web en windows xp
Ā 
React render props
React render propsReact render props
React render props
Ā 
Best practices for RESTful web service design
Best practices for RESTful web service designBest practices for RESTful web service design
Best practices for RESTful web service design
Ā 
PHP, Under The Hood - DPC
PHP, Under The Hood - DPCPHP, Under The Hood - DPC
PHP, Under The Hood - DPC
Ā 
React state
React  stateReact  state
React state
Ā 
What is an API?
What is an API?What is an API?
What is an API?
Ā 
Robot framework
Robot frameworkRobot framework
Robot framework
Ā 

Similar to Parsing Expression With Xtext

import java-util-Iterator- import java-util-NoSuchElementException- im.pdf
import java-util-Iterator- import java-util-NoSuchElementException- im.pdfimport java-util-Iterator- import java-util-NoSuchElementException- im.pdf
import java-util-Iterator- import java-util-NoSuchElementException- im.pdf
Stewart29UReesa
Ā 
public class MyLinkedListltE extends ComparableltEgtg.pdf
public class MyLinkedListltE extends ComparableltEgtg.pdfpublic class MyLinkedListltE extends ComparableltEgtg.pdf
public class MyLinkedListltE extends ComparableltEgtg.pdf
accostinternational
Ā 
Help please, I have attached LinkedList.cpp and LinkedList.hPlease.pdf
Help please, I have attached LinkedList.cpp and LinkedList.hPlease.pdfHelp please, I have attached LinkedList.cpp and LinkedList.hPlease.pdf
Help please, I have attached LinkedList.cpp and LinkedList.hPlease.pdf
arorastores
Ā 
Step 1 The Pair Class Many times in writing software we come across p.pdf
Step 1 The Pair Class Many times in writing software we come across p.pdfStep 1 The Pair Class Many times in writing software we come across p.pdf
Step 1 The Pair Class Many times in writing software we come across p.pdf
formaxekochi
Ā 
Given below is the completed implementation of MyLinkedList class. O.pdf
Given below is the completed implementation of MyLinkedList class. O.pdfGiven below is the completed implementation of MyLinkedList class. O.pdf
Given below is the completed implementation of MyLinkedList class. O.pdf
info430661
Ā 
I wrote the following change it to having a header, main and cpp fi.pdf
I wrote the following change it to having a header, main and cpp fi.pdfI wrote the following change it to having a header, main and cpp fi.pdf
I wrote the following change it to having a header, main and cpp fi.pdf
rishteygallery
Ā 
Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdfLabprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
freddysarabia1
Ā 
I will provide my LinkedList from my last lab.LinkedList.cpp~~~~.pdf
I will provide my LinkedList from my last lab.LinkedList.cpp~~~~.pdfI will provide my LinkedList from my last lab.LinkedList.cpp~~~~.pdf
I will provide my LinkedList from my last lab.LinkedList.cpp~~~~.pdf
funkybabyindia
Ā 
package employeeType.employee;public abstract class Employee {Ā Ā .pdf
package employeeType.employee;public abstract class Employee {Ā Ā .pdfpackage employeeType.employee;public abstract class Employee {Ā Ā .pdf
package employeeType.employee;public abstract class Employee {Ā Ā .pdf
nipuns1983
Ā 
Chap 2 Arrays and Structures.pptx
Chap 2  Arrays and Structures.pptxChap 2  Arrays and Structures.pptx
Chap 2 Arrays and Structures.pptx
shashankbhadouria4
Ā 

Similar to Parsing Expression With Xtext (12)

import java-util-Iterator- import java-util-NoSuchElementException- im.pdf
import java-util-Iterator- import java-util-NoSuchElementException- im.pdfimport java-util-Iterator- import java-util-NoSuchElementException- im.pdf
import java-util-Iterator- import java-util-NoSuchElementException- im.pdf
Ā 
public class MyLinkedListltE extends ComparableltEgtg.pdf
public class MyLinkedListltE extends ComparableltEgtg.pdfpublic class MyLinkedListltE extends ComparableltEgtg.pdf
public class MyLinkedListltE extends ComparableltEgtg.pdf
Ā 
Help please, I have attached LinkedList.cpp and LinkedList.hPlease.pdf
Help please, I have attached LinkedList.cpp and LinkedList.hPlease.pdfHelp please, I have attached LinkedList.cpp and LinkedList.hPlease.pdf
Help please, I have attached LinkedList.cpp and LinkedList.hPlease.pdf
Ā 
Step 1 The Pair Class Many times in writing software we come across p.pdf
Step 1 The Pair Class Many times in writing software we come across p.pdfStep 1 The Pair Class Many times in writing software we come across p.pdf
Step 1 The Pair Class Many times in writing software we come across p.pdf
Ā 
Given below is the completed implementation of MyLinkedList class. O.pdf
Given below is the completed implementation of MyLinkedList class. O.pdfGiven below is the completed implementation of MyLinkedList class. O.pdf
Given below is the completed implementation of MyLinkedList class. O.pdf
Ā 
I wrote the following change it to having a header, main and cpp fi.pdf
I wrote the following change it to having a header, main and cpp fi.pdfI wrote the following change it to having a header, main and cpp fi.pdf
I wrote the following change it to having a header, main and cpp fi.pdf
Ā 
Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdfLabprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
Labprogram.javaLinkedList.javaimport java.util.NoSuchElementEx.pdf
Ā 
I will provide my LinkedList from my last lab.LinkedList.cpp~~~~.pdf
I will provide my LinkedList from my last lab.LinkedList.cpp~~~~.pdfI will provide my LinkedList from my last lab.LinkedList.cpp~~~~.pdf
I will provide my LinkedList from my last lab.LinkedList.cpp~~~~.pdf
Ā 
package employeeType.employee;public abstract class Employee {Ā Ā .pdf
package employeeType.employee;public abstract class Employee {Ā Ā .pdfpackage employeeType.employee;public abstract class Employee {Ā Ā .pdf
package employeeType.employee;public abstract class Employee {Ā Ā .pdf
Ā 
Please review my code (java)Someone helped me with it but i cannot.pdf
Please review my code (java)Someone helped me with it but i cannot.pdfPlease review my code (java)Someone helped me with it but i cannot.pdf
Please review my code (java)Someone helped me with it but i cannot.pdf
Ā 
Chap 2 Arrays and Structures.ppt
Chap 2  Arrays and Structures.pptChap 2  Arrays and Structures.ppt
Chap 2 Arrays and Structures.ppt
Ā 
Chap 2 Arrays and Structures.pptx
Chap 2  Arrays and Structures.pptxChap 2  Arrays and Structures.pptx
Chap 2 Arrays and Structures.pptx
Ā 

More from Sven Efftinge

Xtext at MDD Day 2010
Xtext at MDD Day 2010Xtext at MDD Day 2010
Xtext at MDD Day 2010
Sven Efftinge
Ā 
Dependency Injection for Eclipse developers
Dependency Injection for Eclipse developersDependency Injection for Eclipse developers
Dependency Injection for Eclipse developers
Sven Efftinge
Ā 
Challenges In Dsl Design
Challenges In Dsl DesignChallenges In Dsl Design
Challenges In Dsl Design
Sven Efftinge
Ā 
Eclipse Banking Day
Eclipse Banking DayEclipse Banking Day
Eclipse Banking Day
Sven Efftinge
Ā 

More from Sven Efftinge (20)

Language Engineering With Xtext
Language Engineering With XtextLanguage Engineering With Xtext
Language Engineering With Xtext
Ā 
Future of Xtext
Future of XtextFuture of Xtext
Future of Xtext
Ā 
Auto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with XtendAuto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with Xtend
Ā 
Functional programming with Xtend
Functional programming with XtendFunctional programming with Xtend
Functional programming with Xtend
Ā 
Codegeneration With Xtend
Codegeneration With XtendCodegeneration With Xtend
Codegeneration With Xtend
Ā 
Gwt and Xtend
Gwt and XtendGwt and Xtend
Gwt and Xtend
Ā 
Domain Specific Languages (EclipseCon 2012)
Domain Specific Languages (EclipseCon 2012)Domain Specific Languages (EclipseCon 2012)
Domain Specific Languages (EclipseCon 2012)
Ā 
Xtend @ EclipseCon 2012
Xtend @ EclipseCon 2012Xtend @ EclipseCon 2012
Xtend @ EclipseCon 2012
Ā 
Eclipse Xtend
Eclipse XtendEclipse Xtend
Eclipse Xtend
Ā 
This Is Not Your Father's Java
This Is Not Your Father's JavaThis Is Not Your Father's Java
This Is Not Your Father's Java
Ā 
Getting the most out of Java [Nordic Coding-2010]
Getting the most out of Java [Nordic Coding-2010]Getting the most out of Java [Nordic Coding-2010]
Getting the most out of Java [Nordic Coding-2010]
Ā 
Xtext at MDD Day 2010
Xtext at MDD Day 2010Xtext at MDD Day 2010
Xtext at MDD Day 2010
Ā 
Dependency Injection for Eclipse developers
Dependency Injection for Eclipse developersDependency Injection for Eclipse developers
Dependency Injection for Eclipse developers
Ā 
Xtext Webinar
Xtext WebinarXtext Webinar
Xtext Webinar
Ā 
Challenges In Dsl Design
Challenges In Dsl DesignChallenges In Dsl Design
Challenges In Dsl Design
Ā 
Code Generation in Agile Projects
Code Generation in Agile ProjectsCode Generation in Agile Projects
Code Generation in Agile Projects
Ā 
Xtext Eclipse Con
Xtext Eclipse ConXtext Eclipse Con
Xtext Eclipse Con
Ā 
Generic Editor
Generic EditorGeneric Editor
Generic Editor
Ā 
Eclipse Banking Day
Eclipse Banking DayEclipse Banking Day
Eclipse Banking Day
Ā 
Bessere Softwareentwicklung (Itemis Wintercon)
Bessere Softwareentwicklung (Itemis Wintercon)Bessere Softwareentwicklung (Itemis Wintercon)
Bessere Softwareentwicklung (Itemis Wintercon)
Ā 

Recently uploaded

CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Ā 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
Ā 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
Ā 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
Ā 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
Ā 

Recently uploaded (20)

CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )šŸ” 9953056974šŸ”(=)/CALL GIRLS SERVICE
Ā 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
Ā 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
Ā 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
Ā 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
Ā 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
Ā 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Ā 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
Ā 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
Ā 
Chinsurah Escorts ā˜Žļø8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ā˜Žļø8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ā˜Žļø8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ā˜Žļø8617697112 Starting From 5K to 15K High Profile Escorts ...
Ā 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
Ā 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Ā 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
Ā 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
Ā 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
Ā 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
Ā 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
Ā 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
Ā 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
Ā 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
Ā 

Parsing Expression With Xtext

  • 1. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition StackAST Grammar Text
  • 2. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication StackAST Grammar Text
  • 3. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression StackAST Grammar Text
  • 4. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression StackAST Grammar Text
  • 5. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression StackAST Grammar Text
  • 6. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition StackAST Grammar Text
  • 7. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition 5.Multiplication StackAST Grammar Text
  • 8. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition 5.Multiplication 6.PrimaryExpression StackAST Grammar Text
  • 9. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition 5.Multiplication 6.PrimaryExpression StackAST Grammar Text
  • 10. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition 5.Multiplication 6.PrimaryExpression StackAST Grammar Text 1
  • 11. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition 5.Multiplication 6.PrimaryExpression StackAST Grammar Text 1
  • 12. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition 5.Multiplication StackAST Grammar Text 1 Reduce!
  • 13. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition StackAST Grammar Text 1 Reduce!
  • 14. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition StackAST Grammar Text 1
  • 15. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition StackAST Grammar Text 1 +
  • 16. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition StackAST Grammar Text 1 + current = ruleMultiplication(); // {AdditionalExpression.left=current} AdditionalExpression temp = new AdditionalExpression(); temp.setLeft(current); current = temp:
  • 17. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition StackAST Grammar Text 1 +
  • 18. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition StackAST Grammar Text 1 +
  • 19. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition StackAST Grammar Text 1 +
  • 20. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition 5.Multiplication StackAST Grammar Text 1 +
  • 21. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition 5.Multiplication 6.PrimaryExpression StackAST Grammar Text 1 +
  • 22. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression 4.Addition StackAST Grammar Text 1 + 20 Reduce!
  • 23. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression StackAST Grammar Text 1 + 20 Reduce!
  • 24. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression StackAST Grammar Text 1 + 20
  • 25. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression StackAST Grammar Text 1 + 20
  • 26. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication StackAST Grammar Text 1 + 20 Reduce!
  • 27. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication StackAST Grammar Text 1 + 20 *
  • 28. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication StackAST Grammar Text 1 + 20 *
  • 29. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication StackAST Grammar Text 1 + 20 *
  • 30. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication StackAST Grammar Text 1 + 20 *
  • 31. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression StackAST Grammar Text 1 + 20 * 2
  • 32. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication 3.PrimaryExpression StackAST Grammar Text 1 + 20 * EOF 2
  • 33. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication StackAST Grammar Text 1 + 20 * EOF Reduce! 2
  • 34. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition 2.Multiplication StackAST Grammar Text 1 + 20 * EOF 2
  • 35. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 1.Addition StackAST Grammar Text 1 + 20 * EOF 2 Reduce!
  • 36. Addition returns Expression: Multiplication ({AdditionalExpression.left=current} '+' right=Multiplication)*; Multiplication returns Expression: PrimaryExpression ({MultiplyExpression.left=current} '*' right=PrimaryExpression)*; PrimaryExpression returns Expression: {NumberLiteral} value=INT | '(' Addition ')'; ( 1 + 20 ) * 2 StackAST Grammar Text 1 + 20 * EOF 2 Finished!