# File rexml/element.rb, line 977
    def parse_children source
      while true
	md = source.match(/\A(\s*[^>]*>)/um)
	#puts "SOURCE BUFFER = #{source.buffer}, #{source.buffer.size}"
	raise ParseException.new( "missing tag start", source, self ) unless md
	case md[1]
	when nil
	  return
	when /\A<[\w_:]/um
	  Element.new(source, self, @context)
	when /\A<\//um
	  return
	when CData::START_RE
	  add(CData.new(source))
	when Comment::START_RE
	  add(Comment.new(source))
	when Instruction::START_RE
	  add(Instruction.new(source))
	else
	  add(Text.new(source, whitespace(), raw()))
	end
      end
    end