parser (SExpressionTestCase)

    # File test/src/s_expression_test.rb, line 18
      def parser
        expr = nil
        lazy_expr = lazy{expr}
        term = number.map(&To_f) | lparen >> lazy_expr << rparen
        binop = char('+') >> Plus | char('-') >> Minus | char('*') >> Mul | char('/') >> Div
        binop = ignore binop
        term = ignore term
        binary = sequence(binop, lazy_expr, lazy_expr) do |op, e1, e2|
          op.call(e1, e2)
        end
        expr = delim >> (term | binary)
      end