[agm_grammar2.xml] Found 13 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: (5)

   START  type:NONTERMINAL
   expression  type:NONTERMINAL
   factor  type:NONTERMINAL
   primary  type:NONTERMINAL
   term  type:NONTERMINAL

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



FirstSets

First[START] :=    (   identifier   integer_literal

First[SYSGOAL] :=    (   identifier   integer_literal

First[expression] :=    (   identifier   integer_literal

First[factor] :=    (   identifier   integer_literal

First[primary] :=    (   identifier   integer_literal

First[term] :=    (   identifier   integer_literal

FollowSets

Follow[START] :=    $

Follow[expression] :=    $   )   +   -

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

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

Follow[term] :=    $   )   *   +   -   /

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 + term 
expression(expression --> expression - term 
expression(expression --> term 
expressionidentifierexpression --> expression + term 
expressionidentifierexpression --> expression - term 
expressionidentifierexpression --> term 
expressioninteger_literalexpression --> expression + term 
expressioninteger_literalexpression --> expression - term 
expressioninteger_literalexpression --> term 
factor(factor --> factor ^ primary 
factor(factor --> primary 
factoridentifierfactor --> factor ^ primary 
factoridentifierfactor --> primary 
factorinteger_literalfactor --> factor ^ primary 
factorinteger_literalfactor --> primary 
primary(primary --> ( expression ) 
primaryidentifierprimary --> identifier 
primaryinteger_literalprimary --> integer_literal 
term(term --> term * factor 
term(term --> term / factor 
term(term --> factor 
termidentifierterm --> term * factor 
termidentifierterm --> term / factor 
termidentifierterm --> factor 
terminteger_literalterm --> term * factor 
terminteger_literalterm --> term / factor 
terminteger_literalterm --> factor 



CFSM

State 0
  SYSGOAL  -->    START   $   2
  START  -->    expression   3
  expression  -->    expression   +   term   3
  expression  -->    expression   -   term   3
  expression  -->    term   8
  term  -->    term   *   factor   8
  term  -->    term   /   factor   8
  term  -->    factor   4
  factor  -->    factor   ^   primary   4
  factor  -->    primary   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 2
  SYSGOAL  -->  START     $   9


State 9
  SYSGOAL  -->  START   $    


State 5
  primary  -->  identifier    


State 6
  primary  -->  integer_literal    


State 13
  primary  -->  (   expression   )    


State 3
  START  -->  expression    
  expression  -->  expression     +   term   10
  expression  -->  expression     -   term   11


State 1
  expression  -->    expression   +   term   12
  expression  -->    expression   -   term   12
  expression  -->    term   8
  term  -->    term   *   factor   8
  term  -->    term   /   factor   8
  term  -->    factor   4
  factor  -->    factor   ^   primary   4
  factor  -->    primary   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1
  primary  -->  (     expression   )   12


State 12
  expression  -->  expression     +   term   10
  expression  -->  expression     -   term   11
  primary  -->  (   expression     )   13


State 10
  expression  -->  expression   +     term   14
  term  -->    term   *   factor   14
  term  -->    term   /   factor   14
  term  -->    factor   4
  factor  -->    factor   ^   primary   4
  factor  -->    primary   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 14
  expression  -->  expression   +   term    
  term  -->  term     *   factor   15
  term  -->  term     /   factor   16


State 11
  expression  -->  expression   -     term   17
  term  -->    term   *   factor   17
  term  -->    term   /   factor   17
  term  -->    factor   4
  factor  -->    factor   ^   primary   4
  factor  -->    primary   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 17
  expression  -->  expression   -   term    
  term  -->  term     *   factor   15
  term  -->  term     /   factor   16


State 8
  expression  -->  term    
  term  -->  term     *   factor   15
  term  -->  term     /   factor   16


State 15
  term  -->  term   *     factor   18
  factor  -->    factor   ^   primary   18
  factor  -->    primary   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 18
  term  -->  term   *   factor    
  factor  -->  factor     ^   primary   19


State 16
  term  -->  term   /     factor   20
  factor  -->    factor   ^   primary   20
  factor  -->    primary   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 20
  term  -->  term   /   factor    
  factor  -->  factor     ^   primary   19


State 4
  term  -->  factor    
  factor  -->  factor     ^   primary   19


State 19
  factor  -->  factor   ^     primary   21
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 21
  factor  -->  factor   ^   primary    


State 7
  factor  -->  primary