[agm_grammar3.xml] Found 16 Production Rules
Our Grammar is:

Terminal Tokens: (11)

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

Non-Terminal Tokens: (8)

   START  type:NONTERMINAL
   expression  type:NONTERMINAL
   expression_tail  type:NONTERMINAL
   factor  type:NONTERMINAL
   factor_tail  type:NONTERMINAL
   primary  type:NONTERMINAL
   term  type:NONTERMINAL
   term_tail  type:NONTERMINAL

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



FirstSets

First[START] :=    (   identifier   integer_literal

First[SYSGOAL] :=    (   identifier   integer_literal

First[expression] :=    (   identifier   integer_literal

First[expression_tail] :=    +   -   lambda

First[factor] :=    (   identifier   integer_literal

First[factor_tail] :=    ^   lambda

First[primary] :=    (   identifier   integer_literal

First[term] :=    (   identifier   integer_literal

First[term_tail] :=    *   /   lambda

FollowSets

Follow[START] :=    $

Follow[expression] :=    $   )

Follow[expression_tail] :=    $   )

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

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

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

Follow[term] :=    $   )   +   -

Follow[term_tail] :=    $   )   +   -

THIS GRAMMAR IS LL1

Parse Table:
CurrentLookAheadApply Rule
START(START --> expression 
STARTidentifierSTART --> expression 
STARTinteger_literalSTART --> expression 
SYSGOAL(SYSGOAL --> START $ 
SYSGOALidentifierSYSGOAL --> START $ 
SYSGOALinteger_literalSYSGOAL --> START $ 
expression(expression --> term expression_tail 
expressionidentifierexpression --> term expression_tail 
expressioninteger_literalexpression --> term expression_tail 
expression_tail$expression_tail --> lambda 
expression_tail)expression_tail --> lambda 
expression_tail+expression_tail --> + term expression_tail 
expression_tail-expression_tail --> - term expression_tail 
expression_taillambdaexpression_tail --> lambda 
factor(factor --> primary factor_tail 
factoridentifierfactor --> primary factor_tail 
factorinteger_literalfactor --> primary factor_tail 
factor_tail$factor_tail --> lambda 
factor_tail)factor_tail --> lambda 
factor_tail*factor_tail --> lambda 
factor_tail+factor_tail --> lambda 
factor_tail-factor_tail --> lambda 
factor_tail/factor_tail --> lambda 
factor_tail^factor_tail --> ^ primary factor_tail 
factor_taillambdafactor_tail --> lambda 
primary(primary --> ( expression ) 
primaryidentifierprimary --> identifier 
primaryinteger_literalprimary --> integer_literal 
term(term --> factor term_tail 
termidentifierterm --> factor term_tail 
terminteger_literalterm --> factor term_tail 
term_tail$term_tail --> lambda 
term_tail)term_tail --> lambda 
term_tail*term_tail --> * factor term_tail 
term_tail+term_tail --> lambda 
term_tail-term_tail --> lambda 
term_tail/term_tail --> / factor term_tail 
term_taillambdaterm_tail --> lambda 



CFSM

State 0
  SYSGOAL  -->    START   $   2
  START  -->    expression   3
  expression  -->    term   expression_tail   8
  term  -->    factor   term_tail   4
  factor  -->    primary   factor_tail   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 2
  SYSGOAL  -->  START     $   9


State 9
  SYSGOAL  -->  START   $    


State 7
  factor  -->  primary     factor_tail   11
  factor_tail  -->    ^   primary   factor_tail   10
  factor_tail  -->    lambda   12


State 11
  factor  -->  primary   factor_tail    


State 13
  factor_tail  -->    ^   primary   factor_tail   10
  factor_tail  -->  ^   primary     factor_tail   27
  factor_tail  -->    lambda   12


State 10
  factor_tail  -->  ^     primary   factor_tail   13
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 27
  factor_tail  -->  ^   primary   factor_tail    


State 12
  factor_tail  -->  lambda    


State 5
  primary  -->  identifier    


State 6
  primary  -->  integer_literal    


State 14
  primary  -->  (   expression     )   28


State 28
  primary  -->  (   expression   )    


State 3
  START  -->  expression    


State 1
  expression  -->    term   expression_tail   8
  term  -->    factor   term_tail   4
  factor  -->    primary   factor_tail   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1
  primary  -->  (     expression   )   14


State 8
  expression  -->  term     expression_tail   17
  expression_tail  -->    +   term   expression_tail   15
  expression_tail  -->    -   term   expression_tail   16
  expression_tail  -->    lambda   18


State 17
  expression  -->  term   expression_tail    


State 19
  expression_tail  -->    +   term   expression_tail   15
  expression_tail  -->  +   term     expression_tail   29
  expression_tail  -->    -   term   expression_tail   16
  expression_tail  -->    lambda   18


State 20
  expression_tail  -->    +   term   expression_tail   15
  expression_tail  -->    -   term   expression_tail   16
  expression_tail  -->  -   term     expression_tail   30
  expression_tail  -->    lambda   18


State 15
  expression_tail  -->  +     term   expression_tail   19
  term  -->    factor   term_tail   4
  factor  -->    primary   factor_tail   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 29
  expression_tail  -->  +   term   expression_tail    


State 16
  expression_tail  -->  -     term   expression_tail   20
  term  -->    factor   term_tail   4
  factor  -->    primary   factor_tail   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 30
  expression_tail  -->  -   term   expression_tail    


State 18
  expression_tail  -->  lambda    


State 4
  term  -->  factor     term_tail   24
  term_tail  -->    *   factor   term_tail   21
  term_tail  -->    /   factor   term_tail   22
  term_tail  -->    lambda   23


State 24
  term  -->  factor   term_tail    


State 25
  term_tail  -->    *   factor   term_tail   21
  term_tail  -->  *   factor     term_tail   31
  term_tail  -->    /   factor   term_tail   22
  term_tail  -->    lambda   23


State 26
  term_tail  -->    *   factor   term_tail   21
  term_tail  -->    /   factor   term_tail   22
  term_tail  -->  /   factor     term_tail   32
  term_tail  -->    lambda   23


State 21
  term_tail  -->  *     factor   term_tail   25
  factor  -->    primary   factor_tail   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 31
  term_tail  -->  *   factor   term_tail    


State 22
  term_tail  -->  /     factor   term_tail   26
  factor  -->    primary   factor_tail   7
  primary  -->    identifier   5
  primary  -->    integer_literal   6
  primary  -->    (   expression   )   1


State 32
  term_tail  -->  /   factor   term_tail    


State 23
  term_tail  -->  lambda