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