# File lib/kwartz/parser.rb, line 407
    def parse(input, filename='')
      reset(input, filename)
      scan()
      nodes = []
      while @token != nil
        if @token == :element
          node = parse_element_ruleset()
        elsif @token == :document
          node = parse_document_ruleset()
        else
          raise parse_error("'#{@value}': element or document required.")
        end
        nodes << node
      end
      return nodes
    end