Files
liquid/lib/liquid/parser.rb
Tobias Lutke cd040dabd8 Implement naive recusrive descent
Ragel doesn't allow us to recurse so we simply
reinvoke the parser for each step.
2012-10-28 21:55:20 -04:00

1313 lines
40 KiB
Ruby

# line 1 "./lib/liquid/parser.rl"
# Parser for context#[] method. Generated through ragel from parser.rl
# Only modify parser.rl. Run rake ragel afterwards to generate this file.
#
#VERBOSE=true
# line 101 "./lib/liquid/parser.rl"
# % fix syntax highlighting
module Liquid
module Parser
# line 18 "./lib/liquid/parser.rb"
class << self
attr_accessor :_fsm_actions
private :_fsm_actions, :_fsm_actions=
end
self._fsm_actions = [
0, 1, 0, 1, 1, 1, 2, 1,
3, 1, 4, 1, 5, 1, 6, 1,
7, 1, 8, 1, 9, 1, 10, 1,
11, 1, 12, 1, 13, 1, 14, 1,
15, 2, 0, 11
]
class << self
attr_accessor :_fsm_trans_keys
private :_fsm_trans_keys, :_fsm_trans_keys=
end
self._fsm_trans_keys = [
0, 0, 34, 122, 34, 34,
39, 39, 34, 122, 34,
34, 34, 46, 34, 46,
34, 122, 39, 39, 39, 46,
39, 46, 34, 122, 48,
57, 46, 57, 46, 57,
34, 122, 0, 0, 48, 57,
41, 57, 65, 122, 93,
93, 93, 93, 65, 122,
93, 93, 0, 0, 48, 57,
41, 57, 41, 122, 41,
122, 41, 122, 41, 122,
41, 122, 41, 122, 41, 122,
41, 122, 41, 122, 41,
122, 41, 122, 41, 122,
41, 122, 41, 122, 46, 57,
46, 46, 45, 122, 45,
122, 45, 122, 45, 122,
45, 122, 45, 122, 45, 122,
45, 122, 45, 122, 45,
122, 45, 122, 45, 122,
45, 122, 45, 122, 48, 57,
48, 57, 93, 93, 93,
93, 0, 0, 34, 34,
39, 39, 46, 91, 45, 122,
46, 93, 45, 122, 45,
122, 45, 122, 45, 122,
45, 122, 45, 122, 45, 122,
45, 122, 45, 122, 45,
122, 45, 122, 45, 122,
45, 122, 45, 122, 45, 122,
45, 122, 45, 122, 45,
122, 45, 122, 45, 122,
45, 122, 45, 122, 45, 122,
45, 122, 45, 122, 45,
122, 45, 122, 46, 91,
46, 91, 45, 122, 93, 93,
45, 122, 45, 122, 45,
122, 45, 122, 45, 122,
45, 122, 45, 122, 45, 122,
45, 122, 45, 122, 45,
122, 45, 122, 45, 122,
0
]
class << self
attr_accessor :_fsm_key_spans
private :_fsm_key_spans, :_fsm_key_spans=
end
self._fsm_key_spans = [
0, 89, 1, 1, 89, 1, 13, 13,
89, 1, 8, 8, 89, 10, 12, 12,
89, 0, 10, 17, 58, 1, 1, 58,
1, 0, 10, 17, 82, 82, 82, 82,
82, 82, 82, 82, 82, 82, 82, 82,
82, 82, 12, 1, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 10, 10, 1, 1, 0, 1,
1, 46, 78, 48, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 46,
46, 78, 1, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78
]
class << self
attr_accessor :_fsm_index_offsets
private :_fsm_index_offsets, :_fsm_index_offsets=
end
self._fsm_index_offsets = [
0, 0, 90, 92, 94, 184, 186, 200,
214, 304, 306, 315, 324, 414, 425, 438,
451, 541, 542, 553, 571, 630, 632, 634,
693, 695, 696, 707, 725, 808, 891, 974,
1057, 1140, 1223, 1306, 1389, 1472, 1555, 1638,
1721, 1804, 1887, 1900, 1902, 1981, 2060, 2139,
2218, 2297, 2376, 2455, 2534, 2613, 2692, 2771,
2850, 2929, 3008, 3019, 3030, 3032, 3034, 3035,
3037, 3039, 3086, 3165, 3214, 3293, 3372, 3451,
3530, 3609, 3688, 3767, 3846, 3925, 4004, 4083,
4162, 4241, 4320, 4399, 4478, 4557, 4636, 4715,
4794, 4873, 4952, 5031, 5110, 5189, 5268, 5347,
5394, 5441, 5520, 5522, 5601, 5680, 5759, 5838,
5917, 5996, 6075, 6154, 6233, 6312, 6391, 6470
]
class << self
attr_accessor :_fsm_indicies
private :_fsm_indicies, :_fsm_indicies=
end
self._fsm_indicies = [
0, 1, 1, 1, 1, 2, 3, 1,
1, 4, 1, 4, 1, 1, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5,
1, 1, 1, 1, 1, 1, 1, 6,
6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6,
6, 7, 1, 1, 1, 1, 1, 6,
6, 6, 6, 6, 8, 6, 6, 6,
6, 6, 6, 6, 9, 6, 6, 6,
6, 6, 10, 6, 6, 6, 6, 6,
6, 1, 12, 11, 14, 13, 15, 1,
1, 1, 1, 16, 1, 1, 1, 17,
1, 17, 1, 1, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 1, 1,
1, 1, 1, 1, 1, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 1,
1, 1, 1, 1, 1, 19, 19, 19,
19, 19, 20, 19, 19, 19, 19, 19,
19, 19, 21, 19, 19, 19, 19, 19,
22, 19, 19, 19, 19, 19, 19, 1,
24, 23, 24, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 25, 23,
24, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 26, 23, 27, 23,
23, 23, 23, 15, 23, 23, 23, 15,
23, 15, 23, 23, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 23, 23,
23, 23, 23, 23, 23, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 23,
23, 23, 23, 23, 23, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 23,
29, 28, 29, 28, 28, 28, 28, 28,
28, 30, 28, 29, 28, 28, 28, 28,
28, 28, 31, 28, 16, 28, 28, 28,
28, 32, 28, 28, 28, 16, 28, 16,
28, 28, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 28, 28, 28, 28,
28, 28, 28, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 28, 28, 28,
28, 28, 28, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 28, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33,
1, 34, 1, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 1, 35, 1,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 1, 37, 1, 1, 1, 1,
37, 1, 1, 1, 38, 1, 38, 1,
1, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 1, 1, 1, 1, 1,
1, 1, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 1, 1, 1, 1,
1, 1, 40, 40, 40, 40, 40, 41,
40, 40, 40, 40, 40, 40, 40, 42,
40, 40, 40, 40, 40, 43, 40, 40,
40, 40, 40, 40, 1, 44, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45,
1, 46, 1, 1, 1, 1, 47, 1,
45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 1, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 1, 1, 1,
1, 1, 1, 48, 48, 48, 48, 48,
49, 48, 48, 48, 48, 48, 50, 48,
48, 48, 48, 48, 48, 51, 48, 48,
48, 48, 48, 48, 48, 1, 53, 52,
55, 54, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 54, 54, 55, 54,
54, 54, 56, 56, 56, 56, 56, 57,
56, 56, 56, 56, 56, 58, 56, 56,
56, 56, 56, 56, 59, 56, 56, 56,
56, 56, 56, 56, 54, 60, 52, 54,
61, 61, 61, 61, 61, 61, 61, 61,
61, 61, 1, 62, 1, 1, 1, 1,
1, 1, 61, 61, 61, 61, 61, 61,
61, 61, 61, 61, 1, 63, 1, 1,
1, 64, 1, 1, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 1, 1,
1, 1, 1, 1, 1, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 1,
1, 1, 1, 64, 1, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 1,
63, 1, 1, 1, 64, 1, 1, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 1, 1, 1, 1, 1, 1, 1,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 1, 1, 1, 1, 64, 1,
65, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 1, 63, 1, 1, 1, 64,
1, 1, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 1, 1, 1, 1,
1, 1, 1, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 1, 1, 1,
1, 64, 1, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 66, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 1, 63, 1,
1, 1, 64, 1, 1, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 1,
1, 1, 1, 1, 1, 1, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
1, 1, 1, 1, 64, 1, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
67, 64, 64, 64, 64, 64, 64, 64,
1, 63, 1, 1, 1, 64, 1, 1,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 1, 1, 1, 1, 1, 1,
1, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 1, 1, 1, 1, 64,
1, 64, 64, 64, 64, 68, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 1, 69, 1, 1, 1,
64, 1, 1, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 1, 1, 1,
1, 1, 1, 1, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 1, 1,
1, 1, 64, 1, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 1, 63,
1, 1, 1, 64, 1, 1, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
1, 1, 1, 1, 1, 1, 1, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 1, 1, 1, 1, 64, 1, 64,
64, 64, 64, 64, 64, 64, 64, 70,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 71, 64, 64, 64, 64,
64, 1, 63, 1, 1, 1, 64, 1,
1, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 1, 1, 1, 1, 1,
1, 1, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 1, 1, 1, 1,
64, 1, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 72, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 1, 73, 1, 1,
1, 64, 1, 1, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 1, 1,
1, 1, 1, 1, 1, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 1,
1, 1, 1, 64, 1, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 1,
63, 1, 1, 1, 64, 1, 1, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 1, 1, 1, 1, 1, 1, 1,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 1, 1, 1, 1, 64, 1,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 70, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 1, 63, 1, 1, 1, 64,
1, 1, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 1, 1, 1, 1,
1, 1, 1, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 1, 1, 1,
1, 64, 1, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 74, 64, 64, 64,
64, 64, 64, 64, 64, 1, 63, 1,
1, 1, 64, 1, 1, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 1,
1, 1, 1, 1, 1, 1, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
1, 1, 1, 1, 64, 1, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 75, 64, 64, 64, 64, 64,
1, 63, 1, 1, 1, 64, 1, 1,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 1, 1, 1, 1, 1, 1,
1, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 1, 1, 1, 1, 64,
1, 64, 64, 64, 64, 76, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 1, 77, 1, 1, 1,
64, 1, 1, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 1, 1, 1,
1, 1, 1, 1, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 1, 1,
1, 1, 64, 1, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 1, 78,
1, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 1, 35, 1, 79, 80,
1, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 1, 1, 1, 1, 1,
1, 1, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 1, 1, 1, 1,
79, 1, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 1, 79, 80, 1,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 1, 1, 1, 1, 1, 1,
1, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 1, 1, 1, 1, 79,
1, 81, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 1, 79, 80, 1, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 1, 1, 1, 1, 1, 1, 1,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 1, 1, 1, 1, 79, 1,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 82, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 1, 79, 80, 1, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
1, 1, 1, 1, 1, 1, 1, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 1, 1, 1, 1, 79, 1, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 83, 79, 79, 79, 79, 79, 79,
79, 1, 79, 80, 1, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 1,
1, 1, 1, 1, 1, 1, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
1, 1, 1, 1, 79, 1, 79, 79,
79, 79, 84, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
1, 79, 85, 1, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 1, 1,
1, 1, 1, 1, 1, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 1,
1, 1, 1, 79, 1, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 1,
79, 80, 1, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 1, 1, 1,
1, 1, 1, 1, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 1, 1,
1, 1, 79, 1, 79, 79, 79, 79,
79, 79, 79, 79, 86, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
87, 79, 79, 79, 79, 79, 1, 79,
80, 1, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 1, 1, 1, 1,
1, 1, 1, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 1, 1, 1,
1, 79, 1, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 88, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 1, 79, 89,
1, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 1, 1, 1, 1, 1,
1, 1, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 1, 1, 1, 1,
79, 1, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 1, 79, 80, 1,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 1, 1, 1, 1, 1, 1,
1, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 1, 1, 1, 1, 79,
1, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 86, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 1, 79, 80, 1, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 1, 1, 1, 1, 1, 1, 1,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 1, 1, 1, 1, 79, 1,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 90, 79, 79, 79, 79, 79, 79,
79, 79, 1, 79, 80, 1, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
1, 1, 1, 1, 1, 1, 1, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 1, 1, 1, 1, 79, 1, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 91, 79, 79, 79, 79,
79, 1, 79, 80, 1, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 1,
1, 1, 1, 1, 1, 1, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
1, 1, 1, 1, 79, 1, 79, 79,
79, 79, 92, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
1, 79, 93, 1, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 1, 1,
1, 1, 1, 1, 1, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 1,
1, 1, 1, 79, 1, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 1,
94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 1, 95, 95, 95, 95, 95,
95, 95, 95, 95, 95, 1, 97, 96,
99, 98, 98, 12, 11, 14, 13, 100,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 101, 1, 102, 103,
1, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 1, 1, 1, 1, 1,
1, 1, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 104, 1, 1, 1,
102, 1, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 1, 105, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 106, 54, 55, 54, 107, 108,
54, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 54, 54, 54, 54, 54,
54, 54, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 109, 54, 55, 54,
107, 54, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 54, 107, 108, 54,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 54, 54, 54, 54, 54, 54,
54, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 109, 54, 55, 54, 107,
54, 107, 107, 107, 107, 107, 107, 107,
107, 110, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 54, 107, 108, 54, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 54, 54, 54, 54, 54, 54, 54,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 109, 54, 55, 54, 107, 54,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 111, 107, 107, 107, 107, 107, 107,
107, 107, 54, 107, 108, 54, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
54, 54, 54, 54, 54, 54, 54, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 109, 54, 55, 54, 107, 54, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 112, 107, 107, 107, 107, 107, 107,
107, 54, 107, 108, 54, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 54,
54, 54, 54, 54, 54, 54, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
109, 54, 55, 54, 107, 54, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 113, 107, 107, 107, 107, 107, 107,
54, 107, 114, 54, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 54, 54,
54, 54, 54, 54, 54, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 115,
54, 55, 54, 107, 54, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 54,
107, 108, 54, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 54, 54, 54,
54, 54, 54, 54, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 109, 54,
55, 54, 107, 54, 116, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 54, 107,
108, 54, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 54, 54, 54, 54,
54, 54, 54, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 109, 54, 55,
54, 107, 54, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 117, 107, 107,
107, 107, 107, 107, 107, 54, 107, 108,
54, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 54, 54, 54, 54, 54,
54, 54, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 109, 54, 55, 54,
107, 54, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 118, 107, 107,
107, 107, 107, 107, 54, 107, 119, 54,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 54, 54, 54, 54, 54, 54,
54, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 120, 54, 55, 54, 107,
54, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 54, 107, 108, 54, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 54, 54, 54, 54, 54, 54, 54,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 109, 54, 55, 54, 107, 54,
107, 107, 107, 107, 107, 107, 107, 107,
121, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 54, 107, 108, 54, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
54, 54, 54, 54, 54, 54, 54, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 109, 54, 55, 54, 107, 54, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
122, 54, 107, 108, 54, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 54,
54, 54, 54, 54, 54, 54, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
109, 54, 55, 54, 107, 54, 107, 107,
107, 107, 123, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
54, 107, 124, 54, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 54, 54,
54, 54, 54, 54, 54, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 125,
54, 55, 54, 107, 54, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 54,
102, 103, 1, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 1, 1, 1,
1, 1, 1, 1, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 104, 1,
1, 1, 102, 1, 102, 102, 102, 102,
102, 102, 102, 102, 126, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 1, 102,
103, 1, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 1, 1, 1, 1,
1, 1, 1, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 104, 1, 1,
1, 102, 1, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 127, 102, 102, 102,
102, 102, 102, 102, 102, 1, 102, 103,
1, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 1, 1, 1, 1, 1,
1, 1, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 104, 1, 1, 1,
102, 1, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 128, 102, 102, 102,
102, 102, 102, 102, 1, 102, 103, 1,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 1, 1, 1, 1, 1, 1,
1, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 104, 1, 1, 1, 102,
1, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 129, 102, 102, 102,
102, 102, 102, 1, 102, 130, 1, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 1, 1, 1, 1, 1, 1, 1,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 131, 1, 1, 1, 102, 1,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 1, 102, 103, 1, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
1, 1, 1, 1, 1, 1, 1, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 104, 1, 1, 1, 102, 1, 132,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 1, 102, 103, 1, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 1,
1, 1, 1, 1, 1, 1, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
104, 1, 1, 1, 102, 1, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
133, 102, 102, 102, 102, 102, 102, 102,
1, 102, 103, 1, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 1, 1,
1, 1, 1, 1, 1, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 104,
1, 1, 1, 102, 1, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
134, 102, 102, 102, 102, 102, 102, 1,
102, 135, 1, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 1, 1, 1,
1, 1, 1, 1, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 136, 1,
1, 1, 102, 1, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 1, 102,
103, 1, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 1, 1, 1, 1,
1, 1, 1, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 104, 1, 1,
1, 102, 1, 102, 102, 102, 102, 102,
102, 102, 102, 137, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 1, 102, 103,
1, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 1, 1, 1, 1, 1,
1, 1, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 104, 1, 1, 1,
102, 1, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 138, 1, 102, 103, 1,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 1, 1, 1, 1, 1, 1,
1, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 104, 1, 1, 1, 102,
1, 102, 102, 102, 102, 139, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 1, 102, 140, 1, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 1, 1, 1, 1, 1, 1, 1,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 141, 1, 1, 1, 102, 1,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 1, 142, 1, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
143, 1, 144, 1, 95, 95, 95, 95,
95, 95, 95, 95, 95, 95, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 145,
1, 146, 147, 1, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 1, 1,
1, 1, 1, 1, 1, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 148,
1, 1, 1, 146, 1, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 1,
99, 98, 146, 147, 1, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 1,
1, 1, 1, 1, 1, 1, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
148, 1, 1, 1, 146, 1, 149, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
1, 146, 147, 1, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 1, 1,
1, 1, 1, 1, 1, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 148,
1, 1, 1, 146, 1, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
150, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 1,
146, 147, 1, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 1, 1, 1,
1, 1, 1, 1, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 148, 1,
1, 1, 146, 1, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 151, 146,
146, 146, 146, 146, 146, 146, 1, 146,
147, 1, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 1, 1, 1, 1,
1, 1, 1, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 148, 1, 1,
1, 146, 1, 146, 146, 146, 146, 152,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 1, 146, 153,
1, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 1, 1, 1, 1, 1,
1, 1, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 154, 1, 1, 1,
146, 1, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 1, 146, 147, 1,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 1, 1, 1, 1, 1, 1,
1, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 148, 1, 1, 1, 146,
1, 146, 146, 146, 146, 146, 146, 146,
146, 155, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 156, 146, 146,
146, 146, 146, 1, 146, 147, 1, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 1, 1, 1, 1, 1, 1, 1,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 148, 1, 1, 1, 146, 1,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 157, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 1, 146, 158, 1, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
1, 1, 1, 1, 1, 1, 1, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 159, 1, 1, 1, 146, 1, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 1, 146, 147, 1, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 1,
1, 1, 1, 1, 1, 1, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
148, 1, 1, 1, 146, 1, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 155, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
1, 146, 147, 1, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 1, 1,
1, 1, 1, 1, 1, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 148,
1, 1, 1, 146, 1, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 160, 146,
146, 146, 146, 146, 146, 146, 146, 1,
146, 147, 1, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 1, 1, 1,
1, 1, 1, 1, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 148, 1,
1, 1, 146, 1, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
161, 146, 146, 146, 146, 146, 1, 146,
147, 1, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 1, 1, 1, 1,
1, 1, 1, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 148, 1, 1,
1, 146, 1, 146, 146, 146, 146, 162,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 1, 146, 163,
1, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 1, 1, 1, 1, 1,
1, 1, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 164, 1, 1, 1,
146, 1, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 1, 0
]
class << self
attr_accessor :_fsm_trans_targs
private :_fsm_trans_targs, :_fsm_trans_targs=
end
self._fsm_trans_targs = [
2, 0, 3, 4, 58, 95, 97, 60,
99, 104, 108, 2, 63, 3, 64, 5,
9, 13, 14, 44, 45, 50, 54, 5,
6, 7, 8, 6, 9, 10, 11, 12,
10, 14, 15, 16, 42, 17, 18, 19,
28, 29, 34, 38, 17, 19, 65, 26,
66, 82, 87, 91, 22, 25, 22, 67,
68, 69, 74, 78, 67, 27, 65, 65,
28, 30, 31, 32, 33, 65, 35, 37,
36, 65, 39, 40, 41, 65, 43, 44,
43, 46, 47, 48, 49, 43, 51, 53,
52, 43, 55, 56, 57, 43, 95, 96,
61, 62, 61, 98, 20, 21, 66, 20,
21, 23, 24, 68, 23, 24, 70, 71,
72, 73, 23, 24, 75, 76, 77, 23,
24, 79, 80, 81, 23, 24, 83, 84,
85, 86, 20, 21, 88, 89, 90, 20,
21, 92, 93, 94, 20, 21, 59, 21,
20, 21, 97, 20, 21, 100, 101, 102,
103, 20, 21, 105, 107, 106, 20, 21,
109, 110, 111, 20, 21
]
class << self
attr_accessor :_fsm_trans_actions
private :_fsm_trans_actions, :_fsm_trans_actions=
end
self._fsm_trans_actions = [
1, 0, 1, 0, 1, 1, 1, 0,
1, 1, 1, 0, 0, 0, 0, 1,
1, 1, 1, 1, 1, 1, 1, 0,
0, 19, 0, 1, 0, 0, 19, 0,
1, 0, 9, 0, 0, 1, 1, 1,
1, 1, 1, 1, 0, 0, 9, 0,
1, 1, 1, 1, 1, 1, 0, 23,
1, 1, 1, 1, 33, 0, 11, 21,
0, 0, 0, 0, 0, 17, 0, 0,
0, 13, 0, 0, 0, 15, 11, 0,
21, 0, 0, 0, 0, 17, 0, 0,
0, 13, 0, 0, 0, 15, 0, 0,
1, 1, 0, 23, 7, 7, 0, 31,
31, 5, 5, 0, 31, 31, 0, 0,
0, 0, 25, 25, 0, 0, 0, 27,
27, 0, 0, 0, 29, 29, 0, 0,
0, 0, 25, 25, 0, 0, 0, 27,
27, 0, 0, 0, 29, 29, 0, 9,
11, 11, 0, 21, 21, 0, 0, 0,
0, 17, 17, 0, 0, 0, 13, 13,
0, 0, 0, 15, 15
]
class << self
attr_accessor :_fsm_eof_actions
private :_fsm_eof_actions, :_fsm_eof_actions=
end
self._fsm_eof_actions = [
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 19,
19, 7, 31, 5, 31, 31, 31, 31,
31, 25, 31, 31, 31, 27, 31, 31,
31, 29, 31, 31, 31, 31, 25, 31,
31, 31, 27, 31, 31, 31, 29, 9,
11, 21, 3, 21, 21, 21, 21, 17,
21, 21, 13, 21, 21, 21, 21, 15
]
class << self
attr_accessor :fsm_start
end
self.fsm_start = 1;
class << self
attr_accessor :fsm_first_final
end
self.fsm_first_final = 63;
class << self
attr_accessor :fsm_error
end
self.fsm_error = 0;
class << self
attr_accessor :fsm_en_main
end
self.fsm_en_main = 1;
# line 108 "./lib/liquid/parser.rl"
def self.emit(sym, type, data, tokens)
puts "emitting: #{type} #{sym} -> #{data.inspect}" if $VERBOSE
tokens.push [sym, data]
end
def self.parse(data, tokens = [])
puts "--> self.parse with #{data.inspect}, #{tokens.inspect}" if $VERBOSE
eof = data.length
# line 1058 "./lib/liquid/parser.rb"
begin
p ||= 0
pe ||= data.length
cs = fsm_start
end
# line 120 "./lib/liquid/parser.rl"
# line 1067 "./lib/liquid/parser.rb"
begin # ragel flat
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
_trigger_goto = false
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 = _fsm_index_offsets[cs]
_slen = _fsm_key_spans[cs]
_trans = if ( _slen > 0 &&
_fsm_trans_keys[_keys] <= data[p].ord &&
data[p].ord <= _fsm_trans_keys[_keys + 1]
) then
_fsm_indicies[ _inds + data[p].ord - _fsm_trans_keys[_keys] ]
else
_fsm_indicies[ _inds + _slen ]
end
cs = _fsm_trans_targs[_trans]
if _fsm_trans_actions[_trans] != 0
_acts = _fsm_trans_actions[_trans]
_nacts = _fsm_actions[_acts]
_acts += 1
while _nacts > 0
_nacts -= 1
_acts += 1
case _fsm_actions[_acts - 1]
when 0 then
# line 9 "./lib/liquid/parser.rl"
begin
mark = p
end
when 2 then
# line 17 "./lib/liquid/parser.rl"
begin
emit(:call, :instruction, nil, tokens)
end
when 3 then
# line 20 "./lib/liquid/parser.rl"
begin
emit(:range, :instruction, nil, tokens)
end
when 4 then
# line 39 "./lib/liquid/parser.rl"
begin
emit(:id, :integer, Integer(data[mark..p-1]), tokens) end
when 5 then
# line 41 "./lib/liquid/parser.rl"
begin
emit(:id, :float, Float(data[mark..p-1]), tokens) end
when 6 then
# line 43 "./lib/liquid/parser.rl"
begin
emit(:id, :nil, nil, tokens) end
when 7 then
# line 44 "./lib/liquid/parser.rl"
begin
emit(:id, :bool, true, tokens) end
when 8 then
# line 45 "./lib/liquid/parser.rl"
begin
emit(:id, :bool, false, tokens) end
when 9 then
# line 47 "./lib/liquid/parser.rl"
begin
emit(:id, :string, data[mark+1..p-2], tokens) end
when 10 then
# line 52 "./lib/liquid/parser.rl"
begin
emit(:id, :label, data[mark..p-1], tokens)
emit(:lookup, :variable, nil, tokens)
end
when 11 then
# line 62 "./lib/liquid/parser.rl"
begin
self.parse(data[mark..p-1], tokens)
end
when 12 then
# line 77 "./lib/liquid/parser.rl"
begin
emit(:buildin, :symbol, "first", tokens)
end
when 13 then
# line 81 "./lib/liquid/parser.rl"
begin
emit(:buildin, :symbol, "last", tokens)
end
when 14 then
# line 85 "./lib/liquid/parser.rl"
begin
emit(:buildin, :symbol, "size", tokens)
end
when 15 then
# line 89 "./lib/liquid/parser.rl"
begin
emit(:id, :label, data[mark..p-1], tokens)
emit(:call, :variable, nil, tokens)
end
# line 1190 "./lib/liquid/parser.rb"
end # action switch
end
end
if _trigger_goto
next
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
begin
__acts = _fsm_eof_actions[cs]
__nacts = _fsm_actions[__acts]
__acts += 1
while ( __nacts > 0 )
__nacts -= 1
__acts += 1
case ( _fsm_actions[__acts-1] )
when 1 then
# line 13 "./lib/liquid/parser.rl"
begin
emit(:lookup, :instruction, nil, tokens)
end
when 2 then
# line 17 "./lib/liquid/parser.rl"
begin
emit(:call, :instruction, nil, tokens)
end
when 3 then
# line 20 "./lib/liquid/parser.rl"
begin
emit(:range, :instruction, nil, tokens)
end
when 4 then
# line 39 "./lib/liquid/parser.rl"
begin
emit(:id, :integer, Integer(data[mark..p-1]), tokens) end
when 5 then
# line 41 "./lib/liquid/parser.rl"
begin
emit(:id, :float, Float(data[mark..p-1]), tokens) end
when 6 then
# line 43 "./lib/liquid/parser.rl"
begin
emit(:id, :nil, nil, tokens) end
when 7 then
# line 44 "./lib/liquid/parser.rl"
begin
emit(:id, :bool, true, tokens) end
when 8 then
# line 45 "./lib/liquid/parser.rl"
begin
emit(:id, :bool, false, tokens) end
when 9 then
# line 47 "./lib/liquid/parser.rl"
begin
emit(:id, :string, data[mark+1..p-2], tokens) end
when 10 then
# line 52 "./lib/liquid/parser.rl"
begin
emit(:id, :label, data[mark..p-1], tokens)
emit(:lookup, :variable, nil, tokens)
end
when 12 then
# line 77 "./lib/liquid/parser.rl"
begin
emit(:buildin, :symbol, "first", tokens)
end
when 13 then
# line 81 "./lib/liquid/parser.rl"
begin
emit(:buildin, :symbol, "last", tokens)
end
when 14 then
# line 85 "./lib/liquid/parser.rl"
begin
emit(:buildin, :symbol, "size", tokens)
end
when 15 then
# line 89 "./lib/liquid/parser.rl"
begin
emit(:id, :label, data[mark..p-1], tokens)
emit(:call, :variable, nil, tokens)
end
# line 1293 "./lib/liquid/parser.rb"
end
end
if _trigger_goto
next
end
end
end
end
if _goto_level <= _out
break
end
end
end
# line 121 "./lib/liquid/parser.rl"
puts "<-- #{tokens.inspect}" if $VERBOSE
return tokens
end
end
end