# File lib/html5/html5parser.rb, line 41
    def initialize(options = {})
      @strict = false
      @errors = []
     
      @tokenizer =  HTMLTokenizer
      @tree = TreeBuilders::REXML::TreeBuilder

      options.each {|name, value| instance_variable_set("@#{name}", value) }
      @lowercase_attr_name    = nil unless instance_variables.include?("@lowercase_attr_name")
      @lowercase_element_name = nil unless instance_variables.include?("@lowercase_element_name")

      @tree = @tree.new

      @phases = @@phases.inject({}) do |phases, phase_name|
        phase_class_name = phase_name.sub(/(.)/) { $1.upcase } + 'Phase'
        phases[phase_name.to_sym] = HTML5.const_get(phase_class_name).new(self, @tree)
        phases
      end
    end