def f l = g() while c = $<.getc case c when ?+ l += g() when ?- l -= g() when ?) return l end end l end def g case c = $<.getc when ?( f() else c.to_i end end p f()