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

Example 5: Pattern function with left recursion.

Back to Article