summaryrefslogtreecommitdiff
path: root/lib/rexml/parsers/lightparser.rb
diff options
context:
space:
mode:
authorser <ser@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-10 12:54:46 +0000
committerser <ser@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-10 12:54:46 +0000
commit7d21c237ccd46ec1d56639ce53b5882bf97d9de3 (patch)
treee9667617b9228d24dbb9833bec2c3d1be0293cb9 /lib/rexml/parsers/lightparser.rb
parent662532be008867582fc86dd813dcf8f6a79136eb (diff)
* 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
Diffstat (limited to 'lib/rexml/parsers/lightparser.rb')
-rw-r--r--lib/rexml/parsers/lightparser.rb14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/rexml/parsers/lightparser.rb b/lib/rexml/parsers/lightparser.rb
index e2f083bc8e..8c555f7960 100644
--- a/lib/rexml/parsers/lightparser.rb
+++ b/lib/rexml/parsers/lightparser.rb
@@ -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