[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:
START  -->  expression  
SYSGOAL  -->  START   $  
expression  -->  term   expression_tail  
expression_tail  -->  +   term   expression_tail  
expression_tail  -->  -   term   expression_tail  
expression_tail  -->  lambda  
factor  -->  primary   factor_tail  
factor_tail  -->  ^   primary   factor_tail  
factor_tail  -->  lambda  
primary  -->  identifier  
primary  -->  integer_literal  
primary  -->  (   expression   )  
term  -->  factor   term_tail  
term_tail  -->  *   factor   term_tail  
term_tail  -->  /   factor   term_tail  
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