module Trenni::Fallback
def self.parse_markup(buffer, delegate, entities)
def self.parse_markup(buffer, delegate, entities)
data = buffer.read
encoding = buffer.encoding
bytes = data.bytes
p = 0
# Must set pe here or it gets incorrectly set to data.length
pe = eof = data.bytesize
stack = []
pcdata = nil
characters_begin = characters_end = nil
entity_begin = entity_end = nil
identifier_begin = identifier_end = nil
doctype_begin = doctype_end = nil
comment_begin = comment_end = nil
instruction_begin = instruction_end = nil
cdata_begin = cdata_end = nil
has_entities = has_value = false
line 459 "markup.rb"
gin
||= 0
e ||= data.length
s = markup_start
op = 0
d
line 236 "markup.rl"
line 469 "markup.rb"
gin
estEof = false
slen, _trans, _keys, _inds, _acts, _nacts = nil
goto_level = 0
resume = 10
eof_trans = 15
again = 20
test_eof = 30
out = 40
hile true
f _goto_level <= 0
f p == pe
_goto_level = _test_eof
next
nd
f cs == 0
_goto_level = _out
next
nd
nd
f _goto_level <= _resume
keys = cs << 1
inds = _markup_index_offsets[cs]
slen = _markup_key_spans[cs]
wide = ( bytes[p])
trans = if ( _slen > 0 &&
_markup_trans_keys[_keys] <= _wide &&
_wide <= _markup_trans_keys[_keys + 1]
) then
_markup_indicies[ _inds + _wide - _markup_trans_keys[_keys] ]
else
_markup_indicies[ _inds + _slen ]
end
s = _markup_trans_targs[_trans]
f _markup_trans_actions[_trans] != 0
ase _markup_trans_actions[_trans]
hen 2 then
line 24 "markup.rl"
begin
identifier_begin = p
end
hen 9 then
line 28 "markup.rl"
begin
identifier_end = p
end
hen 17 then
line 37 "markup.rl"
begin
end
hen 16 then
line 49 "markup.rl"
begin
characters_begin = p
end
hen 27 then
line 59 "markup.rl"
begin
raise ParseError.new("could not parse entity", buffer, p)
end
hen 28 then
line 63 "markup.rl"
begin
entity_begin = p
end
hen 26 then
line 125 "markup.rl"
begin
end
hen 24 then
line 132 "markup.rl"
begin
raise ParseError.new("could not parse instruction", buffer, p)
end
hen 6 then
line 145 "markup.rl"
begin
self_closing = true
end
hen 1 then
line 185 "markup.rl"
begin
raise ParseError.new("could not parse tag", buffer, p)
end
hen 18 then
line 10 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
nd
end
hen 25 then
line 28 "markup.rl"
begin
identifier_end = p
end
line 122 "markup.rl"
begin
end
hen 3 then
line 28 "markup.rl"
begin
identifier_end = p
end
line 136 "markup.rl"
begin
self_closing = false
delegate.open_tag_begin(data.byteslice(identifier_begin...identifier_end), identifier_begin)
end
hen 7 then
line 28 "markup.rl"
begin
identifier_end = p
end
line 162 "markup.rl"
begin
if has_value
pcdata = MarkupString.raw(pcdata) unless has_entities
value = pcdata
else
value = true
end
delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
end
hen 10 then
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 49 "markup.rl"
begin
characters_begin = p
end
hen 11 then
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 10 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
nd
end
hen 12 then
line 53 "markup.rl"
begin
characters_end = p
pcdata << data.byteslice(characters_begin...characters_end)
end
line 37 "markup.rl"
begin
end
hen 13 then
line 53 "markup.rl"
begin
characters_end = p
pcdata << data.byteslice(characters_begin...characters_end)
end
line 10 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
nd
end
hen 31 then
line 67 "markup.rl"
begin
entity_end = p
name = data.byteslice(entity_begin...entity_end)
has_entities = true
pcdata << entities[name]
end
line 8 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
top -= 1
cs = stack[top]
_goto_level = _again
next
nd
end
hen 30 then
line 76 "markup.rl"
begin
entity_end = p
has_entities = true
pcdata << data.byteslice(entity_begin...entity_end).to_i(16)
end
line 8 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
top -= 1
cs = stack[top]
_goto_level = _again
next
nd
end
hen 29 then
line 83 "markup.rl"
begin
entity_end = p
has_entities = true
pcdata << data.byteslice(entity_begin...entity_end).to_i(10)
end
line 8 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
top -= 1
cs = stack[top]
_goto_level = _again
next
nd
end
hen 5 then
line 149 "markup.rl"
begin
has_value = false
pcdata = ""
end
line 24 "markup.rl"
begin
identifier_begin = p
end
hen 14 then
line 154 "markup.rl"
begin
has_value = true
end
line 162 "markup.rl"
begin
if has_value
pcdata = MarkupString.raw(pcdata) unless has_entities
value = pcdata
else
value = true
end
delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
end
hen 19 then
line 158 "markup.rl"
begin
has_value = true
end
line 162 "markup.rl"
begin
if has_value
pcdata = MarkupString.raw(pcdata) unless has_entities
value = pcdata
else
value = true
end
delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
end
hen 4 then
line 28 "markup.rl"
begin
identifier_end = p
end
line 136 "markup.rl"
begin
self_closing = false
delegate.open_tag_begin(data.byteslice(identifier_begin...identifier_end), identifier_begin)
end
line 145 "markup.rl"
begin
self_closing = true
end
hen 8 then
line 28 "markup.rl"
begin
identifier_end = p
end
line 162 "markup.rl"
begin
if has_value
pcdata = MarkupString.raw(pcdata) unless has_entities
value = pcdata
else
value = true
end
delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
end
line 145 "markup.rl"
begin
self_closing = true
end
hen 32 then
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 49 "markup.rl"
begin
characters_begin = p
end
hen 33 then
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 10 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
nd
end
hen 15 then
line 154 "markup.rl"
begin
has_value = true
end
line 162 "markup.rl"
begin
if has_value
pcdata = MarkupString.raw(pcdata) unless has_entities
value = pcdata
else
value = true
end
delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
end
line 145 "markup.rl"
begin
self_closing = true
end
hen 20 then
line 158 "markup.rl"
begin
has_value = true
end
line 162 "markup.rl"
begin
if has_value
pcdata = MarkupString.raw(pcdata) unless has_entities
value = pcdata
else
value = true
end
delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
end
line 145 "markup.rl"
begin
self_closing = true
end
hen 48 then
line 94 "markup.rl"
begin
doctype_end = p
delegate.doctype(data.byteslice(doctype_begin...doctype_end))
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 49 "markup.rl"
begin
characters_begin = p
end
hen 49 then
line 94 "markup.rl"
begin
doctype_end = p
delegate.doctype(data.byteslice(doctype_begin...doctype_end))
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 10 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
nd
end
hen 44 then
line 108 "markup.rl"
begin
comment_end = p
delegate.comment(data.byteslice(comment_begin...comment_end))
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 49 "markup.rl"
begin
characters_begin = p
end
hen 45 then
line 108 "markup.rl"
begin
comment_end = p
delegate.comment(data.byteslice(comment_begin...comment_end))
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 10 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
nd
end
hen 60 then
line 128 "markup.rl"
begin
delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 49 "markup.rl"
begin
characters_begin = p
end
hen 61 then
line 128 "markup.rl"
begin
delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 10 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
nd
end
hen 40 then
line 174 "markup.rl"
begin
delegate.open_tag_end(self_closing)
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 49 "markup.rl"
begin
characters_begin = p
end
hen 41 then
line 174 "markup.rl"
begin
delegate.open_tag_end(self_closing)
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 10 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
nd
end
hen 56 then
line 181 "markup.rl"
begin
delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 49 "markup.rl"
begin
characters_begin = p
end
hen 57 then
line 181 "markup.rl"
begin
delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 10 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
nd
end
hen 52 then
line 193 "markup.rl"
begin
cdata_end = p
delegate.cdata(data.byteslice(cdata_begin...cdata_end))
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 49 "markup.rl"
begin
characters_begin = p
end
hen 53 then
line 193 "markup.rl"
begin
cdata_end = p
delegate.cdata(data.byteslice(cdata_begin...cdata_end))
end
line 40 "markup.rl"
begin
end
line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
line 10 "/home/samuel/Documents/ioquatix/trenni/parsers/trenni/entities.rl"
begin
egin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
nd
end
hen 34 then
line 142 "markup.rl"
begin
end
line 178 "markup.rl"
begin
end
line 118 "markup.rl"
begin
instruction_begin = p
end
line 104 "markup.rl"
begin
comment_begin = p
end
line 90 "markup.rl"
begin
doctype_begin = p
end
line 189 "markup.rl"
begin
cdata_begin = p
end
hen 50 then
line 94 "markup.rl"
begin
doctype_end = p
delegate.doctype(data.byteslice(doctype_begin...doctype_end))
end
line 142 "markup.rl"
begin
end
line 178 "markup.rl"
begin
end
line 118 "markup.rl"
begin
instruction_begin = p
end
line 104 "markup.rl"
begin
comment_begin = p
end
line 90 "markup.rl"
begin
doctype_begin = p
end
line 189 "markup.rl"
begin
cdata_begin = p
end
hen 46 then
line 108 "markup.rl"
begin
comment_end = p
delegate.comment(data.byteslice(comment_begin...comment_end))
end
line 142 "markup.rl"
begin
end
line 178 "markup.rl"
begin
end
line 118 "markup.rl"
begin
instruction_begin = p
end
line 104 "markup.rl"
begin
comment_begin = p
end
line 90 "markup.rl"
begin
doctype_begin = p
end
line 189 "markup.rl"
begin
cdata_begin = p
end
hen 62 then
line 128 "markup.rl"
begin
delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
end
line 142 "markup.rl"
begin
end
line 178 "markup.rl"
begin
end
line 118 "markup.rl"
begin
instruction_begin = p
end
line 104 "markup.rl"
begin
comment_begin = p
end
line 90 "markup.rl"
begin
doctype_begin = p
end
line 189 "markup.rl"
begin
cdata_begin = p
end
hen 42 then
line 174 "markup.rl"
begin
delegate.open_tag_end(self_closing)
end
line 142 "markup.rl"
begin
end
line 178 "markup.rl"
begin
end
line 118 "markup.rl"
begin
instruction_begin = p
end
line 104 "markup.rl"
begin
comment_begin = p
end
line 90 "markup.rl"
begin
doctype_begin = p
end
line 189 "markup.rl"
begin
cdata_begin = p
end
hen 58 then
line 181 "markup.rl"
begin
delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
end
line 142 "markup.rl"
begin
end
line 178 "markup.rl"
begin
end
line 118 "markup.rl"
begin
instruction_begin = p
end
line 104 "markup.rl"
begin
comment_begin = p
end
line 90 "markup.rl"
begin
doctype_begin = p
end
line 189 "markup.rl"
begin
cdata_begin = p
end
hen 54 then
line 193 "markup.rl"
begin
cdata_end = p
delegate.cdata(data.byteslice(cdata_begin...cdata_end))
end
line 142 "markup.rl"
begin
end
line 178 "markup.rl"
begin
end
line 118 "markup.rl"
begin
instruction_begin = p
end
line 104 "markup.rl"
begin
comment_begin = p
end
line 90 "markup.rl"
begin
doctype_begin = p
end
line 189 "markup.rl"
begin
cdata_begin = p
end
hen 38 then
line 37 "markup.rl"
begin
end
line 43 "markup.rl"
begin
pcdata = MarkupString.raw(pcdata) unless has_entities
delegate.text(pcdata)
end
line 142 "markup.rl"
begin
end
line 178 "markup.rl"
begin
end
line 118 "markup.rl"
begin
instruction_begin = p
end
line 104 "markup.rl"
begin
comment_begin = p
end
line 90 "markup.rl"
begin
doctype_begin = p
end
line 189 "markup.rl"
begin
cdata_begin = p
end
hen 36 then
line 53 "markup.rl"
begin
characters_end = p
pcdata << data.byteslice(characters_begin...characters_end)
end
line 37 "markup.rl"
begin
end
line 43 "markup.rl"
begin
pcdata = MarkupString.raw(pcdata) unless has_entities
delegate.text(pcdata)
end
line 142 "markup.rl"
begin
end
line 178 "markup.rl"
begin
end
line 118 "markup.rl"
begin
instruction_begin = p
end
line 104 "markup.rl"
begin
comment_begin = p
end
line 90 "markup.rl"
begin
doctype_begin = p
end
line 189 "markup.rl"
begin
cdata_begin = p
end
line 1529 "markup.rb"
nd
nd
nd
f _goto_level <= _again
f cs == 0
_goto_level = _out
next
nd
+= 1
f p != pe
_goto_level = _resume
next
nd
nd
f _goto_level <= _test_eof
f p == eof
case _markup_eof_actions[cs]
hen 27 then
line 59 "markup.rl"
begin
raise ParseError.new("could not parse entity", buffer, p)
end
hen 47 then
line 94 "markup.rl"
begin
doctype_end = p
delegate.doctype(data.byteslice(doctype_begin...doctype_end))
end
hen 22 then
line 100 "markup.rl"
begin
raise ParseError.new("could not parse doctype", buffer, p)
end
hen 43 then
line 108 "markup.rl"
begin
comment_end = p
delegate.comment(data.byteslice(comment_begin...comment_end))
end
hen 21 then
line 114 "markup.rl"
begin
raise ParseError.new("could not parse comment", buffer, p)
end
hen 59 then
line 128 "markup.rl"
begin
delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
end
hen 24 then
line 132 "markup.rl"
begin
raise ParseError.new("could not parse instruction", buffer, p)
end
hen 39 then
line 174 "markup.rl"
begin
delegate.open_tag_end(self_closing)
end
hen 55 then
line 181 "markup.rl"
begin
delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
end
hen 1 then
line 185 "markup.rl"
begin
raise ParseError.new("could not parse tag", buffer, p)
end
hen 51 then
line 193 "markup.rl"
begin
cdata_end = p
delegate.cdata(data.byteslice(cdata_begin...cdata_end))
end
hen 23 then
line 199 "markup.rl"
begin
raise ParseError.new("could not parse cdata", buffer, p)
end
hen 37 then
line 37 "markup.rl"
begin
end
line 43 "markup.rl"
begin
pcdata = MarkupString.raw(pcdata) unless has_entities
delegate.text(pcdata)
end
hen 35 then
line 53 "markup.rl"
begin
characters_end = p
pcdata << data.byteslice(characters_begin...characters_end)
end
line 37 "markup.rl"
begin
end
line 43 "markup.rl"
begin
pcdata = MarkupString.raw(pcdata) unless has_entities
delegate.text(pcdata)
end
line 1656 "markup.rb"
end
nd
nd
f _goto_level <= _out
break
nd
d
nd
line 237 "markup.rl"
if p != eof
raise ParseError.new("could not consume all input", buffer, p)
end
return nil
end