def parse_result(node, delegate)
      if delegate
        method = delegate.is_a?(Proc) ? delegate : delegate.method(delegate.respond_to?(:call) ? :call : :parse)
        method.arity == 1 ? method[node] : method[node, self]
      else
        node
      end unless node.nil?
    end
def parse_result(node, delegate)
      if delegate
        method = delegate.is_a?(Proc) ? delegate : delegate.method(delegate.respond_to?(:call) ? :call : :parse)
        method.arity == 1 ? method[node] : method[node, self]
      else
        node
      end unless node.nil?
    end
def parse_result ( node , delegate ) if delegate method = delegate . is_a? ( Proc ) ? delegate : delegate . method ( delegate . respond_to? ( :call ) ? :call : :parse ) method . arity == 1 ? method [ node ] : method [ node , self ] else node end unless node . nil? end
`delegate` is optional, but should respond to `call` or `parse`
delegate is optional but should respond to call or parse