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