expression      ->  term r-expression
    r-expression    ->  epsilon
                        | add-term r-expression
                        | subtract-term r-expression
*   add-term        -> "+" term
*   subtract-term   -> "-" term
    term            ->  factor r-term
    r-term          ->  epsilon
                        | multiply-factor r_term
                        | divide-factor r_term
*   multiply-factor ->  "*" factor
*   divide-factor   ->  "/" factor
    factor          ->  "(" expression ")"
*                       | integer

Example 9: Grammar for a four-function calculator.

Back to Article