# var reader = new XophonReader
# #
# reader.content_handler = text
-# reader.parse(new InputSource.with_stream(new StringIStream("<foo>bar baz <n>42</n>.</foo>")))
+# reader.parse(new InputSource.with_stream(new StringReader("<foo>bar baz <n>42</n>.</foo>")))
# assert text.to_s == "bar baz 42."
class XophonReader
super XMLReader
end
redef fun parse(input: InputSource) do
- var stream: IStream
var system_id: nullable MaybeError[String, Error] = null
model.locator = new SAXLocatorImpl
model.fire_fatal_error("File <{input.system_id.as(not null)}> not found.", null)
else
lexer = new XophonLexer(model,
- new IFStream.open(system_id.value))
+ new FileReader.open(system_id.value))
parse_main
lexer.close
end
# Expect a `document` production.
private fun expect_document: Bool do
- var success = true
var got_doctype = false
var got_element = false
var buffer: Buffer = new FlatBuffer
# Number of consecutive closing brackets.
- var closing: Int = 0
+ var closing = 0
if lexer.expect_string("CDATA[",
" at the beginning of a CDATA section.") then