class RDoc::RubyLex

def read_escape

def read_escape
  escape = ''
  ch = getc
  escape << ch
  case ch
  when "\n", "\r", "\f"
  when "\\", "n", "t", "r", "f", "v", "a", "e", "b", "s" #"
  when /[0-7]/
    ungetc ch
    3.times do
      ch = getc
      escape << ch
      case ch
      when /[0-7]/
      when nil
        break
      else
        ungetc
        break
      end
    end
  when "x"
    2.times do
      ch = getc
      escape << ch
      case ch
      when /[0-9a-fA-F]/
      when nil
        break
      else
        ungetc
        break
      end
    end
  when "M"
    ch = getc
    escape << ch
    if ch != '-'
      ungetc
    else
      ch = getc
      escape << ch
      if ch == "\\" #"
        escape << read_escape
      end
    end
  when "C", "c" #, "^"
    if ch == "C" and (ch = getc) != "-"
      escape << ch
      ungetc
    elsif (ch = getc) == "\\" #"
      escape << ch << read_escape
    end
  else
    # other characters
  end
  escape
end