module Trenni::Fallback

def self.parse_query(buffer, delegate)

def self.parse_query(buffer, delegate)
	data = buffer.read
	bytes = data.bytes
	
	p = 0
	pe = eof = data.bytesize
	stack = []
	
	string_begin = string_end = nil
	integer_begin = integer_end = nil
	value_begin = value_end = nil
	encoded = false
	
	
line 262 "query.rb"
gin
 ||= 0
e ||= data.length
s = query_start
d
line 96 "query.rl"
	
line 271 "query.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 = _query_index_offsets[cs]
slen = _query_key_spans[cs]
wide = ( bytes[p])
trans = if (   _slen > 0 && 
	_query_trans_keys[_keys] <= _wide && 
	_wide <= _query_trans_keys[_keys + 1] 
    ) then
	_query_indicies[ _inds + _wide - _query_trans_keys[_keys] ] 
 else 
	_query_indicies[ _inds + _slen ]
 end
s = _query_trans_targs[_trans]
f _query_trans_actions[_trans] != 0
ase _query_trans_actions[_trans]
hen 1 then
line 24 "query.rl"
begin
string_begin = p
	end
hen 6 then
line 28 "query.rl"
begin
string_end = p

delegate.string(data.byteslice(string_begin...string_end), encoded)

encoded = false
	end
hen 7 then
line 40 "query.rl"
begin
integer_end = p

delegate.integer(data.byteslice(integer_begin...integer_end))
	end
hen 15 then
line 46 "query.rl"
begin
delegate.append
	end
hen 10 then
line 50 "query.rl"
begin
value_begin = p
	end
hen 13 then
line 62 "query.rl"
begin
delegate.pair
	end
hen 4 then
line 66 "query.rl"
begin
encoded = 1;
	end
hen 3 then
line 24 "query.rl"
begin
string_begin = p
	end
line 36 "query.rl"
begin
integer_begin = p
	end
hen 2 then
line 24 "query.rl"
begin
string_begin = p
	end
line 66 "query.rl"
begin
encoded = 1;
	end
hen 8 then
line 28 "query.rl"
begin
string_end = p

delegate.string(data.byteslice(string_begin...string_end), encoded)

encoded = false
	end
line 62 "query.rl"
begin
delegate.pair
	end
hen 5 then
line 36 "query.rl"
begin
integer_begin = p
	end
line 24 "query.rl"
begin
string_begin = p
	end
hen 14 then
line 46 "query.rl"
begin
delegate.append
	end
line 62 "query.rl"
begin
delegate.pair
	end
hen 11 then
line 50 "query.rl"
begin
value_begin = p
	end
line 66 "query.rl"
begin
encoded = 1;
	end
hen 12 then
line 54 "query.rl"
begin
value_end = p

delegate.assign(data.byteslice(value_begin...value_end), encoded)

encoded = false
	end
line 62 "query.rl"
begin
delegate.pair
	end
hen 9 then
line 50 "query.rl"
begin
value_begin = p
	end
line 54 "query.rl"
begin
value_end = p

delegate.assign(data.byteslice(value_begin...value_end), encoded)

encoded = false
	end
line 62 "query.rl"
begin
delegate.pair
	end
line 461 "query.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 _query_eof_actions[cs]
hen 13 then
line 62 "query.rl"
begin
delegate.pair
	end
hen 8 then
line 28 "query.rl"
begin
string_end = p

delegate.string(data.byteslice(string_begin...string_end), encoded)

encoded = false
	end
line 62 "query.rl"
begin
delegate.pair
	end
hen 14 then
line 46 "query.rl"
begin
delegate.append
	end
line 62 "query.rl"
begin
delegate.pair
	end
hen 12 then
line 54 "query.rl"
begin
value_end = p

delegate.assign(data.byteslice(value_begin...value_end), encoded)

encoded = false
	end
line 62 "query.rl"
begin
delegate.pair
	end
hen 9 then
line 50 "query.rl"
begin
value_begin = p
	end
line 54 "query.rl"
begin
value_end = p

delegate.assign(data.byteslice(value_begin...value_end), encoded)

encoded = false
	end
line 62 "query.rl"
begin
delegate.pair
	end
line 546 "query.rb"
 end
nd
nd
f _goto_level <= _out
break
nd
d
nd
line 97 "query.rl"
	
	if p != eof
		raise ParseError.new("could not consume all input", buffer, p)
	end
	
	return nil
end