# File lib/html5/tokenizer.rb, line 791
    def before_doctype_public_identifier_state
      data = @stream.char

      if SPACE_CHARACTERS.include?(data)
      elsif data == "\""
        @current_token[:publicId] = ""
        @state = :doctype_public_identifier_double_quoted_state
      elsif data == "'"
        @current_token[:publicId] = ""
        @state = :doctype_public_identifier_single_quoted_state
      elsif data == ">"
        @token_queue << {:type => :ParseError, :data => "unexpected-end-of-doctype"}
        @current_token[:correct] = false
        @token_queue << @current_token
        @state = :data_state
      elsif data == :EOF
        @token_queue << {:type => :ParseError, :data => "eof-in-doctype"}
        @current_token[:correct] = false
        @token_queue << @current_token
        @state = :data_state
      else
        @token_queue << {:type => :ParseError, :data => "unexpected-char-in-doctype"}
        @state = :bogus_doctype_state
      end

      return true
    end