View
2.303
Download
0
Category
Preview:
Citation preview
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.AdditionStackAST
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.Addition2.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.Addition2.Multiplication3.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.Addition2.Multiplication3.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.Addition2.Multiplication3.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.Addition2.Multiplication3.PrimaryExpression4.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.Addition2.Multiplication3.PrimaryExpression4.Addition5.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.Addition2.Multiplication3.PrimaryExpression4.Addition5.Multiplication6.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.Addition2.Multiplication3.PrimaryExpression4.Addition5.Multiplication6.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.Addition2.Multiplication3.PrimaryExpression4.Addition5.Multiplication6.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.Addition2.Multiplication3.PrimaryExpression4.Addition5.Multiplication6.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.Addition2.Multiplication3.PrimaryExpression4.Addition5.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.Addition2.Multiplication3.PrimaryExpression4.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.Addition2.Multiplication3.PrimaryExpression4.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.Addition2.Multiplication3.PrimaryExpression4.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.Addition2.Multiplication3.PrimaryExpression4.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.Addition2.Multiplication3.PrimaryExpression4.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.Addition2.Multiplication3.PrimaryExpression4.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.Addition2.Multiplication3.PrimaryExpression4.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.Addition2.Multiplication3.PrimaryExpression4.Addition5.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.Addition2.Multiplication3.PrimaryExpression4.Addition5.Multiplication6.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.Addition2.Multiplication3.PrimaryExpression4.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.Addition2.Multiplication3.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.Addition2.Multiplication3.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.Addition2.Multiplication3.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.Addition2.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.Addition2.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.Addition2.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.Addition2.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.Addition2.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.Addition2.Multiplication3.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.Addition2.Multiplication3.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.Addition2.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.Addition2.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.AdditionStackAST
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!
Recommended