[agm_grammar1.xml] Found 10 Production Rules
Our Grammar is:

Terminal Tokens: (10)

   $  type:TERMINAL
   (  type:TERMINAL
   )  type:TERMINAL
   *  type:TERMINAL
   +  type:TERMINAL
   -  type:TERMINAL
   /  type:TERMINAL
   ^  type:TERMINAL
   identifier  type:TERMINAL
   integer_literal  type:TERMINAL

Non-Terminal Tokens: (2)

   START  type:NONTERMINAL
   expression  type:NONTERMINAL

Production Rules:
1: START  -->  expression  
0: SYSGOAL  -->  START   $  
2: expression  -->  expression   -   expression  
3: expression  -->  expression   +   expression  
4: expression  -->  expression   *   expression  
5: expression  -->  expression   /   expression  
6: expression  -->  expression   ^   expression  
7: expression  -->  identifier  
8: expression  -->  integer_literal  
9: expression  -->  (   expression   )  



FirstSets

First[START] :=    (   identifier   integer_literal

First[SYSGOAL] :=    (   identifier   integer_literal

First[expression] :=    (   identifier   integer_literal

FollowSets

Follow[START] :=    $

Follow[expression] :=    $   )   *   +   -   /   ^

THIS GRAMMAR IS NOT LL1

Parse Table:
CurrentLookAheadApply Rule
START(START --> expression 
STARTidentifierSTART --> expression 
STARTinteger_literalSTART --> expression 
SYSGOAL(SYSGOAL --> START $ 
SYSGOALidentifierSYSGOAL --> START $ 
SYSGOALinteger_literalSYSGOAL --> START $ 
expression(expression --> expression - expression 
expression(expression --> expression + expression 
expression(expression --> expression * expression 
expression(expression --> expression / expression 
expression(expression --> expression ^ expression 
expression(expression --> ( expression ) 
expressionidentifierexpression --> expression - expression 
expressionidentifierexpression --> expression + expression 
expressionidentifierexpression --> expression * expression 
expressionidentifierexpression --> expression / expression 
expressionidentifierexpression --> expression ^ expression 
expressionidentifierexpression --> identifier 
expressioninteger_literalexpression --> expression - expression 
expressioninteger_literalexpression --> expression + expression 
expressioninteger_literalexpression --> expression * expression 
expressioninteger_literalexpression --> expression / expression 
expressioninteger_literalexpression --> expression ^ expression 
expressioninteger_literalexpression --> integer_literal 



CFSM

State 0
  SYSGOAL  -->    START   $   2
  START  -->    expression   3
  expression  -->    expression   -   expression   3
  expression  -->    expression   +   expression   3
  expression  -->    expression   *   expression   3
  expression  -->    expression   /   expression   3
  expression  -->    expression   ^   expression   3
  expression  -->    identifier   4
  expression  -->    integer_literal   5
  expression  -->    (   expression   )   1


State 2
  SYSGOAL  -->  START     $   6


State 6
  SYSGOAL  -->  START   $    


State 3
  START  -->  expression    
  expression  -->  expression     -   expression   9
  expression  -->  expression     +   expression   8
  expression  -->  expression     *   expression   7
  expression  -->  expression     /   expression   10
  expression  -->  expression     ^   expression   11


State 9
  expression  -->    expression   -   expression   12
  expression  -->  expression   -     expression   12
  expression  -->    expression   +   expression   12
  expression  -->    expression   *   expression   12
  expression  -->    expression   /   expression   12
  expression  -->    expression   ^   expression   12
  expression  -->    identifier   4
  expression  -->    integer_literal   5
  expression  -->    (   expression   )   1


State 8
  expression  -->    expression   -   expression   13
  expression  -->    expression   +   expression   13
  expression  -->  expression   +     expression   13
  expression  -->    expression   *   expression   13
  expression  -->    expression   /   expression   13
  expression  -->    expression   ^   expression   13
  expression  -->    identifier   4
  expression  -->    integer_literal   5
  expression  -->    (   expression   )   1


State 7
  expression  -->    expression   -   expression   14
  expression  -->    expression   +   expression   14
  expression  -->    expression   *   expression   14
  expression  -->  expression   *     expression   14
  expression  -->    expression   /   expression   14
  expression  -->    expression   ^   expression   14
  expression  -->    identifier   4
  expression  -->    integer_literal   5
  expression  -->    (   expression   )   1


State 10
  expression  -->    expression   -   expression   15
  expression  -->    expression   +   expression   15
  expression  -->    expression   *   expression   15
  expression  -->    expression   /   expression   15
  expression  -->  expression   /     expression   15
  expression  -->    expression   ^   expression   15
  expression  -->    identifier   4
  expression  -->    integer_literal   5
  expression  -->    (   expression   )   1


State 11
  expression  -->    expression   -   expression   16
  expression  -->    expression   +   expression   16
  expression  -->    expression   *   expression   16
  expression  -->    expression   /   expression   16
  expression  -->    expression   ^   expression   16
  expression  -->  expression   ^     expression   16
  expression  -->    identifier   4
  expression  -->    integer_literal   5
  expression  -->    (   expression   )   1


State 1
  expression  -->    expression   -   expression   17
  expression  -->    expression   +   expression   17
  expression  -->    expression   *   expression   17
  expression  -->    expression   /   expression   17
  expression  -->    expression   ^   expression   17
  expression  -->    identifier   4
  expression  -->    integer_literal   5
  expression  -->    (   expression   )   1
  expression  -->  (     expression   )   17


State 12
  expression  -->  expression     -   expression   9
  expression  -->  expression   -   expression    
  expression  -->  expression     +   expression   8
  expression  -->  expression     *   expression   7
  expression  -->  expression     /   expression   10
  expression  -->  expression     ^   expression   11


State 13
  expression  -->  expression     -   expression   9
  expression  -->  expression     +   expression   8
  expression  -->  expression   +   expression    
  expression  -->  expression     *   expression   7
  expression  -->  expression     /   expression   10
  expression  -->  expression     ^   expression   11


State 14
  expression  -->  expression     -   expression   9
  expression  -->  expression     +   expression   8
  expression  -->  expression     *   expression   7
  expression  -->  expression   *   expression    
  expression  -->  expression     /   expression   10
  expression  -->  expression     ^   expression   11


State 15
  expression  -->  expression     -   expression   9
  expression  -->  expression     +   expression   8
  expression  -->  expression     *   expression   7
  expression  -->  expression     /   expression   10
  expression  -->  expression   /   expression    
  expression  -->  expression     ^   expression   11


State 16
  expression  -->  expression     -   expression   9
  expression  -->  expression     +   expression   8
  expression  -->  expression     *   expression   7
  expression  -->  expression     /   expression   10
  expression  -->  expression     ^   expression   11
  expression  -->  expression   ^   expression    


State 17
  expression  -->  expression     -   expression   9
  expression  -->  expression     +   expression   8
  expression  -->  expression     *   expression   7
  expression  -->  expression     /   expression   10
  expression  -->  expression     ^   expression   11
  expression  -->  (   expression     )   18


State 4
  expression  -->  identifier    


State 5
  expression  -->  integer_literal    


State 18
  expression  -->  (   expression   )    




State    Lookahead Action
0 ( SHFT-1
0 identifier SHFT-4
0 integer_literal SHFT-5
1 ( SHFT-1
1 identifier SHFT-4
1 integer_literal SHFT-5
10 ( SHFT-1
10 identifier SHFT-4
10 integer_literal SHFT-5
11 ( SHFT-1
11 identifier SHFT-4
11 integer_literal SHFT-5
12 $ RED-2
12 ) RED-2
12 * SHFT-7
12 + SHFT-8
12 - SHFT-9 RED-2
12 / SHFT-10
12 ^ SHFT-11
13 $ RED-3
13 ) RED-3
13 * SHFT-7
13 + SHFT-8 RED-3
13 - SHFT-9 RED-3
13 / SHFT-10
13 ^ SHFT-11
14 $ RED-4
14 ) RED-4
14 * SHFT-7 RED-4
14 + SHFT-8 RED-4
14 - SHFT-9 RED-4
14 / SHFT-10
14 ^ SHFT-11
15 $ RED-5
15 ) RED-5
15 * SHFT-7 RED-5
15 + SHFT-8 RED-5
15 - SHFT-9 RED-5
15 / SHFT-10 RED-5
15 ^ SHFT-11
16 $ RED-6
16 ) RED-6
16 * SHFT-7 RED-6
16 + SHFT-8 RED-6
16 - SHFT-9 RED-6
16 / SHFT-10 RED-6
16 ^ SHFT-11 RED-6
17 ) SHFT-18
17 * SHFT-7
17 + SHFT-8
17 - SHFT-9
17 / SHFT-10
17 ^ SHFT-11
18 $ RED-9
18 ) RED-9
18 * RED-9
18 + RED-9
18 - RED-9
18 / RED-9
18 ^ RED-9
2 $ SHFT-6
3 $ RED-1
3 * SHFT-7
3 + SHFT-8
3 - SHFT-9
3 / SHFT-10
3 ^ SHFT-11
4 $ RED-7
4 ) RED-7
4 * RED-7
4 + RED-7
4 - RED-7
4 / RED-7
4 ^ RED-7
5 $ RED-8
5 ) RED-8
5 * RED-8
5 + RED-8
5 - RED-8
5 / RED-8
5 ^ RED-8
6 $ ACCEPT
7 ( SHFT-1
7 identifier SHFT-4
7 integer_literal SHFT-5
8 ( SHFT-1
8 identifier SHFT-4
8 integer_literal SHFT-5
9 ( SHFT-1
9 identifier SHFT-4
9 integer_literal SHFT-5

Expression Parser


INPUT: integer_literal + integer_literal $

Shifted +
Reduced with Rule 8
Shifted integer_literal
Shifted $
Reduced with Rule 8
Reduced with Rule 3
Reduced with Rule 1
Shifted $
ACCEPT!

Expression Parser


INPUT: ( integer_literal + integer_literal ) * identifier $

Shifted integer_literal
Shifted +
Reduced with Rule 8
Shifted integer_literal
Shifted )
Reduced with Rule 8
Reduced with Rule 3
Shifted *
Reduced with Rule 9
Shifted identifier
Shifted $
Reduced with Rule 7
Reduced with Rule 4
Reduced with Rule 1
Shifted $
ACCEPT!

Expression Parser


INPUT: ( integer_literal + integer_literal ) * identifier ) $

Shifted integer_literal
Shifted +
Reduced with Rule 8
Shifted integer_literal
Shifted )
Reduced with Rule 8
Reduced with Rule 3
Shifted *
Reduced with Rule 9
Shifted identifier
Shifted )
Reduced with Rule 7
Reduced with Rule 4
PARSE ERROR!