module Trenni::Fallback
def self.parse_markup(buffer, delegate, entities)
line 214 "markup.rl"
def self.parse_markup(buffer, delegate, entities)
ata = buffer.read
ytes = data.bytes
p = 0
Must set pe here or it gets incorrectly set to data.length
e = eof = data.bytesize
tack = []
pcdata = nil
haracters_begin = characters_end = nil
ntity_begin = entity_end = nil
dentifier_begin = identifier_end = nil
octype_begin = doctype_end = nil
omment_begin = comment_end = nil
nstruction_begin = instruction_end = nil
data_begin = cdata_end = nil
as_entities = has_value = false
# line 458 "markup.rb"
egin
p ||= 0
pe ||= data.length
cs = markup_start
top = 0
nd
line 235 "markup.rl"
# line 468 "markup.rb"
egin
testEof = false
_slen, _trans, _keys, _inds, _acts, _nacts = nil
_goto_level = 0
_resume = 10
_eof_trans = 15
_again = 20
_test_eof = 30
_out = 40
while true
if _goto_level <= 0
if p == pe
_goto_level = _test_eof
next
end
if cs == 0
_goto_level = _out
next
end
end
if _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
cs = _markup_trans_targs[_trans]
if _markup_trans_actions[_trans] != 0
case _markup_trans_actions[_trans]
when 2 then
# line 24 "markup.rl"
begin
identifier_begin = p
end
when 9 then
# line 28 "markup.rl"
begin
identifier_end = p
end
when 17 then
# line 37 "markup.rl"
begin
end
when 16 then
# line 49 "markup.rl"
begin
characters_begin = p
end
when 27 then
# line 59 "markup.rl"
begin
raise ParseError.new("could not parse entity", buffer, p)
end
when 28 then
# line 63 "markup.rl"
begin
entity_begin = p
end
when 26 then
# line 125 "markup.rl"
begin
end
when 24 then
# line 132 "markup.rl"
begin
raise ParseError.new("could not parse instruction", buffer, p)
end
when 6 then
# line 145 "markup.rl"
begin
self_closing = true
end
when 1 then
# line 185 "markup.rl"
begin
raise ParseError.new("could not parse tag", buffer, p)
end
when 18 then
# line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
end
end
when 25 then
# line 28 "markup.rl"
begin
identifier_end = p
end
# line 122 "markup.rl"
begin
end
when 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
when 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
when 10 then
# line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
# line 49 "markup.rl"
begin
characters_begin = p
end
when 11 then
# line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
# line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
end
end
when 12 then
# line 53 "markup.rl"
begin
characters_end = p
pcdata << data.byteslice(characters_begin...characters_end)
end
# line 37 "markup.rl"
begin
end
when 13 then
# line 53 "markup.rl"
begin
characters_end = p
pcdata << data.byteslice(characters_begin...characters_end)
end
# line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
end
end
when 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 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
top -= 1
cs = stack[top]
_goto_level = _again
next
end
end
when 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 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
top -= 1
cs = stack[top]
_goto_level = _again
next
end
end
when 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 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
top -= 1
cs = stack[top]
_goto_level = _again
next
end
end
when 5 then
# line 149 "markup.rl"
begin
has_value = false
pcdata = ""
end
# line 24 "markup.rl"
begin
identifier_begin = p
end
when 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
when 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
when 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
when 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
when 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
when 33 then
# line 40 "markup.rl"
begin
end
# line 32 "markup.rl"
begin
pcdata = ""
has_entities = false
end
# line 10 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
end
end
when 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
when 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
when 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
when 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 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
end
end
when 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
when 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 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
end
end
when 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
when 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 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
end
end
when 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
when 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 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
end
end
when 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
when 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 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
end
end
when 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
when 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 "/Users/samuel/Documents/Programming/ioquatix/trenni/parsers/trenni/entities.rl"
begin
begin
stack[top] = cs
top+= 1
cs = 42
_goto_level = _again
next
end
end
when 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
when 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
when 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
when 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
when 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
when 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
when 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
when 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
when 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 1528 "markup.rb"
end
end
end
if _goto_level <= _again
if cs == 0
_goto_level = _out
next
end
p += 1
if p != pe
_goto_level = _resume
next
end
end
if _goto_level <= _test_eof
if p == eof
case _markup_eof_actions[cs]
when 27 then
# line 59 "markup.rl"
begin
raise ParseError.new("could not parse entity", buffer, p)
end
when 47 then
# line 94 "markup.rl"
begin
doctype_end = p
delegate.doctype(data.byteslice(doctype_begin...doctype_end))
end
when 22 then
# line 100 "markup.rl"
begin
raise ParseError.new("could not parse doctype", buffer, p)
end
when 43 then
# line 108 "markup.rl"
begin
comment_end = p
delegate.comment(data.byteslice(comment_begin...comment_end))
end
when 21 then
# line 114 "markup.rl"
begin
raise ParseError.new("could not parse comment", buffer, p)
end
when 59 then
# line 128 "markup.rl"
begin
delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
end
when 24 then
# line 132 "markup.rl"
begin
raise ParseError.new("could not parse instruction", buffer, p)
end
when 39 then
# line 174 "markup.rl"
begin
delegate.open_tag_end(self_closing)
end
when 55 then
# line 181 "markup.rl"
begin
delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
end
when 1 then
# line 185 "markup.rl"
begin
raise ParseError.new("could not parse tag", buffer, p)
end
when 51 then
# line 193 "markup.rl"
begin
cdata_end = p
delegate.cdata(data.byteslice(cdata_begin...cdata_end))
end
when 23 then
# line 199 "markup.rl"
begin
raise ParseError.new("could not parse cdata", buffer, p)
end
when 37 then
# line 37 "markup.rl"
begin
end
# line 43 "markup.rl"
begin
pcdata = MarkupString.raw(pcdata) unless has_entities
delegate.text(pcdata)
end
when 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 1655 "markup.rb"
end
end
end
if _goto_level <= _out
break
end
nd
d
line 236 "markup.rl"
if p != eof
aise ParseError.new("could not consume all input", buffer, p)
d
return nil