module STSScannerSupport
Public Instance Methods
interpret_escape_sequences(str)
click to toggle source
# File lib/statsailr/scanner/sts_scanner.rb, line 13 def interpret_escape_sequences(str) # This deals with escape sequences in double quoted string literals # The behavior should be same as libsailr (or datasailr) new_str = "" str_array = str.split(//) idx = 0 while( idx < str_array.size) do c = str_array[idx] if(c == "\\") idx = idx + 1 c = str_array[idx] raise "Tokenizer error: double quoted string literal should never end with \\" if idx >= str_array.size case c when 't' new_str << "\t" when 'n' new_str << "\n" when 'r' new_str << "\r" when "\\" new_str << "\\" when "\'" new_str << "\'" when "\"" new_str << "\"" when '?' new_str << '?' else new_str << c end else new_str << c end idx = idx + 1 end return new_str end