            Example 5

  Pattern Function  with Left Recursion


macro INTEGER is digit+ macro-end

define switch function expression
as
    do scan #current-input
        match INTEGER
        match expression '+' expression
        match expression '-' expression
        match expression '*' expression
        match expression '/' expression
        match'(' expression ')'
        else
            return false    ; never matched
    done
    return true             ; matched once
