# File lib/kwartz/parser.rb, line 445
    def parse_document_ruleset
      assert unless @token == :document
      scan()
      unless @token == '{''{'
        raise parse_error("'#{@value}': document requires '{'.")
      end
      ruleset = Ruleset.new
      while @token
        scan()
        case @token
        when :global    ;  has_space? ;  ruleset.set_global    _parse_list()
        when :local     ;  has_space? ;  ruleset.set_local     _parse_list()
        when :fixture   ;  has_space? ;  ruleset.set_fixture   _parse_block()
        when :before    ;  has_space? ;  ruleset.set_before    _parse_block()
        when :after     ;  has_space? ;  ruleset.set_after     _parse_block()
        when '}''}'       ;  break
        else            ;  raise parse_error("'#{@value}': invalid token.")
        end
      end
      unless @token == '}''}'
        raise parse_error("'#{@value}': document is not closed by '}'.")
      end
      scan()
      return DocumentRuleset.new(hash)
    end