1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* Changes to the encoding mechanism. If iconv is found, it is used first

for encoding changes.  This should be the case on all 1.8 installations.
  When it isn't found (<1.6), the native REXML encoding mechanism is used.
  This cleaned out some files, and tightened up the code a bit; and iconv
  should be faster than the pure Ruby code.
* Changed deprecated assert_not_nil to assert throughout the tests.
* Parse exceptions are a little more verbose, and extend RuntimeError.
* Bug fixes to XPathParser
* The Light API is still shifting, like the sands of the desert.
* Fixed a new Ruby 1.8.0 warning, added some speed optimizations, and
  tightened error reporting in the base parser


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ser 2003-10-10 12:54:46 +00:00
parent 662532be00
commit 7d21c237cc
23 changed files with 185 additions and 224 deletions

View file

@ -16,25 +16,25 @@ module REXML
end
def parse
root = context = REXML::Light::Node.new([ :document ])
root = context = [ :document ]
while true
event = @parser.pull
case event[0]
when :end_document
break
when :end_doctype
context = context.parent
context = context[1]
when :start_element, :start_doctype
new_node = REXML::Light::Node.new(event)
new_node = event
context << new_node
new_node.parent = context
new_node[1,0] = [context]
context = new_node
when :end_element, :end_doctype
context = context.parent
context = context[1]
else
new_node = REXML::Light::Node.new(event)
new_node = event
context << new_node
new_node.parent = context
new_node[1,0] = [context]
end
end
root