Language for Simple
Expression Grammar
ä Terminals: end-of-input, epsilon, number, +, *, (, ), ;
ä end-of-input represents end of file
ä epsilon is an empty string needed to match an expression, it is
not a token, it represents the absence of a token
ä +, * are the legal operators in this language
ä Non-terminal symbols:
statements -> end-of-input | expression; statements
expression -> term expression’
expression’ -> + term expression’ | epsilon
term -> factor term’
term’ -> * factor term’ | epsilon
factor -> number | (expression)
ä Consider a parse tree of “1+2;”
                                         statements
                      expression                           ;       statements
         term               expression’                       end-of-input
     factor    term’   +    term     expression’
  1               epsilon      factor  term’   epsilon
                                     2       epsilon