* A "recognizer" for arithmetic expressions nl = char(10) var = span(&lcase) op = any('+-/*') int = span(&digits) expr = int | var | *expr op *expr | '-' *expr | '(' *expr ')' loop line = input :f(end) line pos(0) expr rpos(0) :f(huh) output = 'ok: ' line nl :(loop) huh output = '??: ' line nl :(loop) end