class RDoc::Parser::Ruby

def parse_meta_method(container, single, tk, comment)

def parse_meta_method(container, single, tk, comment)
  column  = tk[:char_no]
  line_no = tk[:line_no]
  start_collecting_tokens
  add_token tk
  add_token_listener self
  skip_tkspace_without_nl
  comment.text = comment.text.sub(/(^# +:?)(singleton-)(method:)/, '\1\3')
  singleton = !!$~
  name = parse_meta_method_name comment, tk
  return unless name
  meth = RDoc::MetaMethod.new get_tkread, name
  record_location meth
  meth.line   = line_no
  meth.singleton = singleton
  remove_token_listener self
  meth.start_collecting_tokens
  indent = RDoc::Parser::RipperStateLex::Token.new(1, 1, :on_sp, ' ' * column)
  position_comment = RDoc::Parser::RipperStateLex::Token.new(line_no, 1, :on_comment)
  position_comment[:text] = "# File #{@top_level.relative_name}, line #{line_no}"
  newline = RDoc::Parser::RipperStateLex::Token.new(0, 0, :on_nl, "\n")
  meth.add_tokens [position_comment, newline, indent]
  meth.add_tokens @token_stream
  parse_meta_method_params container, single, meth, tk, comment
  meth.comment = comment
  @stats.add_method meth
  meth
end