module GraphQL::Language::Lexer

def self.emit_string(ts, te, meta)

def self.emit_string(ts, te, meta)
  value = meta[:data][ts...te].pack(PACK_DIRECTIVE).force_encoding(UTF_8_ENCODING)
  if value !~ VALID_STRING
    meta[:tokens] << token = GraphQL::Language::Token.new(
      name: :BAD_UNICODE_ESCAPE,
      value: value,
      line: meta[:line],
      col: meta[:col],
      prev_token: meta[:previous_token],
    )
  else
    replace_escaped_characters_in_place(value)
    meta[:tokens] << token = GraphQL::Language::Token.new(
      name: :STRING,
      value: value,
      line: meta[:line],
      col: meta[:col],
      prev_token: meta[:previous_token],
    )
  end
  meta[:previous_token] = token
  meta[:col] += te - ts
end