# File lib/ruby_parser_extras.rb, line 502
  def new_defn val
    (line, bol), name, args, body = val[2], val[1], val[3], val[4]
    body ||= s(:nil)

    body ||= s(:block)
    body = s(:block, body) unless body.first == :block

    result = s(:defn, name.to_sym, args, s(:scope, body))
    result.line = line
    result.line -= 1 if bol
    result.comments = self.comments.pop
    result
  end