class Parser::Lexer

def source_buffer=(source_buffer)

def source_buffer=(source_buffer)
  @source_buffer = source_buffer
  if @source_buffer
    source = @source_buffer.source
    if defined?(Encoding) && source.encoding == Encoding::UTF_8
      @source_pts = source.unpack('U*')
    else
      @source_pts = source.unpack('C*')
    end
    if @source_pts[0] == 0xfeff
      # Skip byte order mark.
      @p = 1
    end
  else
    @source_pts = nil
  end
end