# File lib/ruby_lexer.rb, line 573 def unescape s r = { "a" => "\007", "b" => "\010", "e" => "\033", "f" => "\f", "n" => "\n", "r" => "\r", "s" => " ", "t" => "\t", "v" => "\13", "\\" => '\\', "\n" => "", "C-\?" => 127.chr, "c\?" => 127.chr, }[s] return r if r case s when /^[0-7]{1,3}/ then $&.to_i(8).chr when /^x([0-9a-fA-F]{1,2})/ then $1.to_i(16).chr when /^M-(.)/ then ($1[0].ord | 0x80).chr when /^(C-|c)(.)/ then ($2[0].ord & 0x9f).chr when /^[McCx0-9]/ then rb_compile_error("Invalid escape character syntax") else s end end