myco 0.1.0.dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +2 -0
- data/bin/myco +7 -0
- data/lib/myco/backtrace.rb +56 -0
- data/lib/myco/bootstrap/component.rb +142 -0
- data/lib/myco/bootstrap/empty_object.rb +4 -0
- data/lib/myco/bootstrap/file_toplevel.rb +5 -0
- data/lib/myco/bootstrap/find_constant.rb +86 -0
- data/lib/myco/bootstrap/instance.rb +52 -0
- data/lib/myco/bootstrap/meme.rb +160 -0
- data/lib/myco/bootstrap/void.rb +40 -0
- data/lib/myco/bootstrap.my +15 -0
- data/lib/myco/bootstrap.rb +10 -0
- data/lib/myco/command.my +33 -0
- data/lib/myco/core/BasicObject.my +46 -0
- data/lib/myco/core/Category.my +5 -0
- data/lib/myco/core/Decorator.my +18 -0
- data/lib/myco/core/FileToplevel.my +23 -0
- data/lib/myco/core/Object.my +24 -0
- data/lib/myco/core/Switch.my +31 -0
- data/lib/myco/eval.rb +63 -0
- data/lib/myco/parser/ast/constant_access.rb +29 -0
- data/lib/myco/parser/ast/constant_define.rb +40 -0
- data/lib/myco/parser/ast/constant_reopen.rb +47 -0
- data/lib/myco/parser/ast/declare_category.rb +51 -0
- data/lib/myco/parser/ast/declare_decorator.rb +35 -0
- data/lib/myco/parser/ast/declare_file.rb +54 -0
- data/lib/myco/parser/ast/declare_meme.rb +44 -0
- data/lib/myco/parser/ast/declare_object.rb +75 -0
- data/lib/myco/parser/ast/declare_string.rb +37 -0
- data/lib/myco/parser/ast/invoke.rb +66 -0
- data/lib/myco/parser/ast/local_variable_access_ambiguous.rb +38 -0
- data/lib/myco/parser/ast/misc.rb +61 -0
- data/lib/myco/parser/ast/myco_module_scope.rb +58 -0
- data/lib/myco/parser/ast/quest.rb +82 -0
- data/lib/myco/parser/ast.rb +15 -0
- data/lib/myco/parser/builder.output +3995 -0
- data/lib/myco/parser/builder.racc +585 -0
- data/lib/myco/parser/builder.rb +1592 -0
- data/lib/myco/parser/lexer.rb +2306 -0
- data/lib/myco/parser/lexer.rl +393 -0
- data/lib/myco/parser/lexer_char_classes.rl +56 -0
- data/lib/myco/parser/lexer_common.rb +95 -0
- data/lib/myco/parser/lexer_skeleton.rl +154 -0
- data/lib/myco/parser/peg_parser.kpeg +759 -0
- data/lib/myco/parser/peg_parser.rb +7094 -0
- data/lib/myco/parser.rb +40 -0
- data/lib/myco/tools/OptionParser.my +38 -0
- data/lib/myco/tools/mycompile.my +51 -0
- data/lib/myco/toolset.rb +16 -0
- data/lib/myco/version.rb +22 -0
- data/lib/myco.rb +15 -0
- metadata +247 -0
@@ -0,0 +1,2306 @@
|
|
1
|
+
|
2
|
+
# line 1 "lib/myco/parser/lexer_skeleton.rl"
|
3
|
+
|
4
|
+
##
|
5
|
+
# Basic Lexer skeleton - taken from gist:
|
6
|
+
# https://gist.github.com/YorickPeterse/10658884
|
7
|
+
# Originally from:
|
8
|
+
# https://github.com/YorickPeterse/oga/blob/master/lib/oga/xml/lexer.rl
|
9
|
+
#
|
10
|
+
# License for the source gist reproduced below.
|
11
|
+
|
12
|
+
# Copyright (c) 2014, Yorick Peterse
|
13
|
+
#
|
14
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
15
|
+
# of this software and associated documentation files (the "Software"), to deal
|
16
|
+
# in the Software without restriction, including without limitation the rights
|
17
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
18
|
+
# copies of the Software, and to permit persons to whom the Software is
|
19
|
+
# furnished to do so, subject to the following conditions:
|
20
|
+
#
|
21
|
+
# The above copyright notice and this permission notice shall be included in
|
22
|
+
# all copies or substantial portions of the Software.
|
23
|
+
#
|
24
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
25
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
26
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
27
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
28
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
29
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
30
|
+
# THE SOFTWARE.
|
31
|
+
|
32
|
+
|
33
|
+
# line 32 "lib/myco/parser/lexer_skeleton.rl"
|
34
|
+
class CodeTools::Parser
|
35
|
+
class Lexer
|
36
|
+
|
37
|
+
# line 38 "lib/myco/parser/lexer.rb"
|
38
|
+
class << self
|
39
|
+
attr_accessor :_lexer_actions
|
40
|
+
private :_lexer_actions, :_lexer_actions=
|
41
|
+
end
|
42
|
+
self._lexer_actions = [
|
43
|
+
0, 1, 0, 1, 2, 1, 3, 1,
|
44
|
+
5, 1, 6, 1, 7, 1, 10, 1,
|
45
|
+
11, 1, 12, 1, 13, 1, 15, 1,
|
46
|
+
17, 1, 18, 1, 20, 1, 21, 1,
|
47
|
+
22, 1, 23, 1, 27, 1, 28, 1,
|
48
|
+
35, 1, 38, 1, 42, 1, 43, 1,
|
49
|
+
45, 1, 47, 1, 48, 1, 49, 1,
|
50
|
+
53, 1, 54, 1, 56, 1, 57, 1,
|
51
|
+
58, 1, 64, 1, 65, 1, 66, 1,
|
52
|
+
67, 1, 68, 1, 69, 1, 70, 1,
|
53
|
+
71, 1, 72, 1, 76, 1, 77, 1,
|
54
|
+
78, 1, 79, 1, 80, 1, 86, 1,
|
55
|
+
87, 1, 88, 1, 89, 1, 90, 1,
|
56
|
+
91, 1, 92, 1, 93, 1, 94, 1,
|
57
|
+
95, 1, 96, 1, 97, 1, 98, 1,
|
58
|
+
99, 1, 110, 1, 111, 1, 112, 1,
|
59
|
+
113, 1, 114, 1, 115, 1, 116, 1,
|
60
|
+
117, 1, 118, 1, 119, 1, 120, 1,
|
61
|
+
121, 1, 122, 1, 123, 1, 124, 1,
|
62
|
+
125, 1, 126, 1, 127, 1, 128, 1,
|
63
|
+
129, 1, 130, 1, 131, 1, 132, 1,
|
64
|
+
136, 1, 137, 1, 138, 1, 139, 1,
|
65
|
+
140, 1, 141, 1, 142, 1, 143, 1,
|
66
|
+
146, 1, 147, 1, 148, 1, 149, 1,
|
67
|
+
150, 1, 151, 1, 152, 2, 0, 55,
|
68
|
+
2, 0, 77, 2, 0, 126, 2, 2,
|
69
|
+
3, 2, 4, 61, 2, 4, 83, 2,
|
70
|
+
4, 145, 2, 8, 62, 2, 8, 84,
|
71
|
+
2, 10, 11, 2, 12, 13, 2, 14,
|
72
|
+
63, 2, 14, 85, 2, 16, 144, 2,
|
73
|
+
17, 18, 2, 19, 144, 2, 24, 26,
|
74
|
+
2, 24, 29, 2, 25, 20, 2, 28,
|
75
|
+
0, 2, 28, 20, 2, 31, 32, 2,
|
76
|
+
32, 38, 2, 33, 34, 2, 36, 37,
|
77
|
+
2, 42, 0, 2, 42, 43, 2, 44,
|
78
|
+
135, 2, 46, 100, 2, 49, 1, 2,
|
79
|
+
49, 9, 2, 49, 50, 2, 49, 51,
|
80
|
+
2, 49, 52, 2, 49, 73, 2, 49,
|
81
|
+
74, 2, 49, 75, 2, 49, 101, 2,
|
82
|
+
49, 102, 2, 49, 103, 2, 49, 104,
|
83
|
+
2, 49, 105, 2, 49, 106, 2, 49,
|
84
|
+
107, 2, 49, 108, 2, 49, 109, 3,
|
85
|
+
24, 26, 0, 3, 24, 26, 27, 3,
|
86
|
+
24, 26, 35, 3, 24, 29, 0, 3,
|
87
|
+
24, 29, 27, 3, 24, 29, 35, 3,
|
88
|
+
28, 39, 40, 3, 31, 24, 26, 3,
|
89
|
+
33, 34, 0, 3, 36, 37, 59, 3,
|
90
|
+
36, 37, 81, 3, 36, 37, 133, 3,
|
91
|
+
39, 40, 60, 3, 39, 40, 82, 3,
|
92
|
+
39, 40, 134, 3, 45, 46, 100, 3,
|
93
|
+
49, 21, 50, 3, 49, 21, 73, 3,
|
94
|
+
49, 21, 101, 3, 49, 23, 50, 3,
|
95
|
+
49, 23, 73, 3, 49, 23, 101, 3,
|
96
|
+
49, 25, 20, 3, 49, 41, 108, 4,
|
97
|
+
24, 26, 39, 40, 4, 24, 29, 39,
|
98
|
+
40, 4, 28, 0, 39, 40, 4, 33,
|
99
|
+
34, 25, 20, 4, 49, 28, 20, 50,
|
100
|
+
4, 49, 28, 20, 73, 4, 49, 28,
|
101
|
+
20, 101, 5, 24, 26, 0, 39, 40,
|
102
|
+
5, 24, 29, 0, 39, 40, 5, 36,
|
103
|
+
37, 39, 40, 59, 5, 36, 37, 39,
|
104
|
+
40, 81, 5, 36, 37, 39, 40, 133,
|
105
|
+
5, 49, 24, 26, 27, 50, 5, 49,
|
106
|
+
24, 26, 27, 73, 5, 49, 24, 26,
|
107
|
+
27, 101, 5, 49, 24, 29, 27, 50,
|
108
|
+
5, 49, 24, 29, 27, 73, 5, 49,
|
109
|
+
24, 29, 27, 101, 5, 49, 30, 25,
|
110
|
+
20, 51, 5, 49, 30, 25, 20, 74,
|
111
|
+
5, 49, 30, 25, 20, 107, 6, 49,
|
112
|
+
33, 34, 25, 20, 50, 6, 49, 33,
|
113
|
+
34, 25, 20, 73, 6, 49, 33, 34,
|
114
|
+
25, 20, 101
|
115
|
+
]
|
116
|
+
|
117
|
+
class << self
|
118
|
+
attr_accessor :_lexer_key_offsets
|
119
|
+
private :_lexer_key_offsets, :_lexer_key_offsets=
|
120
|
+
end
|
121
|
+
self._lexer_key_offsets = [
|
122
|
+
0, 0, 2, 5, 23, 30, 33, 38,
|
123
|
+
45, 52, 53, 55, 73, 74, 76, 77,
|
124
|
+
79, 87, 94, 101, 102, 104, 122, 128,
|
125
|
+
135, 142, 143, 145, 163, 164, 166, 167,
|
126
|
+
169, 176, 192, 197, 208, 213, 224, 226,
|
127
|
+
229, 247, 254, 257, 262, 269, 276, 277,
|
128
|
+
279, 297, 298, 300, 301, 303, 311, 318,
|
129
|
+
325, 326, 328, 346, 352, 359, 366, 367,
|
130
|
+
369, 387, 388, 390, 391, 393, 400, 416,
|
131
|
+
421, 432, 437, 448, 453, 455, 458, 460,
|
132
|
+
462, 464, 467, 485, 492, 495, 500, 507,
|
133
|
+
514, 515, 517, 535, 536, 538, 539, 541,
|
134
|
+
549, 556, 563, 564, 566, 584, 590, 597,
|
135
|
+
604, 605, 607, 625, 626, 628, 629, 631,
|
136
|
+
638, 662, 671, 673, 673, 677, 678, 680,
|
137
|
+
683, 683, 702, 706, 711, 729, 736, 740,
|
138
|
+
745, 763, 767, 772, 775, 779, 784, 795,
|
139
|
+
795, 805, 821, 830, 855, 864, 866, 866,
|
140
|
+
870, 871, 873, 876, 876, 895, 899, 904,
|
141
|
+
922, 929, 933, 938, 956, 960, 965, 968,
|
142
|
+
972, 977, 988, 988, 998, 1014, 1023, 1030,
|
143
|
+
1034, 1038, 1039, 1040, 1041, 1090, 1106, 1106,
|
144
|
+
1110, 1112, 1112, 1116, 1117, 1118, 1121, 1123,
|
145
|
+
1130, 1139, 1139, 1141, 1144, 1144, 1145, 1146,
|
146
|
+
1148, 1149, 1168, 1172, 1177, 1195, 1202, 1206,
|
147
|
+
1211, 1229, 1233, 1238, 1241, 1245, 1250, 1251,
|
148
|
+
1268, 1285, 1302, 1319, 1336, 1353, 1370, 1387,
|
149
|
+
1404, 1421, 1438, 1455, 1472, 1489, 1506, 1523
|
150
|
+
]
|
151
|
+
|
152
|
+
class << self
|
153
|
+
attr_accessor :_lexer_trans_keys
|
154
|
+
private :_lexer_trans_keys, :_lexer_trans_keys=
|
155
|
+
end
|
156
|
+
self._lexer_trans_keys = [
|
157
|
+
34, 92, 0, 4, 26, 10, 32, 44,
|
158
|
+
58, 96, 123, 0, 8, 9, 13, 14,
|
159
|
+
47, 59, 64, 91, 94, 124, 127, 10,
|
160
|
+
32, 44, 58, 123, 9, 13, 32, 9,
|
161
|
+
13, 10, 32, 123, 9, 13, 10, 32,
|
162
|
+
58, 9, 13, 65, 90, 10, 32, 58,
|
163
|
+
9, 13, 65, 90, 58, 65, 90, 10,
|
164
|
+
32, 44, 58, 96, 123, 0, 8, 9,
|
165
|
+
13, 14, 47, 59, 64, 91, 94, 124,
|
166
|
+
127, 58, 65, 90, 58, 65, 90, 10,
|
167
|
+
32, 44, 58, 60, 123, 9, 13, 10,
|
168
|
+
32, 58, 9, 13, 65, 90, 10, 32,
|
169
|
+
58, 9, 13, 65, 90, 58, 65, 90,
|
170
|
+
10, 32, 44, 58, 96, 123, 0, 8,
|
171
|
+
9, 13, 14, 47, 59, 64, 91, 94,
|
172
|
+
124, 127, 10, 32, 44, 123, 9, 13,
|
173
|
+
10, 32, 58, 9, 13, 65, 90, 10,
|
174
|
+
32, 58, 9, 13, 65, 90, 58, 65,
|
175
|
+
90, 10, 32, 44, 58, 96, 123, 0,
|
176
|
+
8, 9, 13, 14, 47, 59, 64, 91,
|
177
|
+
94, 124, 127, 58, 65, 90, 58, 65,
|
178
|
+
90, 10, 32, 58, 9, 13, 65, 90,
|
179
|
+
9, 32, 93, 96, 0, 10, 11, 13,
|
180
|
+
14, 47, 58, 64, 91, 94, 123, 127,
|
181
|
+
9, 32, 93, 11, 13, 9, 32, 96,
|
182
|
+
0, 10, 11, 13, 14, 94, 123, 127,
|
183
|
+
9, 32, 58, 11, 13, 9, 32, 96,
|
184
|
+
0, 10, 11, 13, 14, 94, 123, 127,
|
185
|
+
34, 92, 0, 4, 26, 10, 32, 44,
|
186
|
+
58, 96, 123, 0, 8, 9, 13, 14,
|
187
|
+
47, 59, 64, 91, 94, 124, 127, 10,
|
188
|
+
32, 44, 58, 123, 9, 13, 32, 9,
|
189
|
+
13, 10, 32, 123, 9, 13, 10, 32,
|
190
|
+
58, 9, 13, 65, 90, 10, 32, 58,
|
191
|
+
9, 13, 65, 90, 58, 65, 90, 10,
|
192
|
+
32, 44, 58, 96, 123, 0, 8, 9,
|
193
|
+
13, 14, 47, 59, 64, 91, 94, 124,
|
194
|
+
127, 58, 65, 90, 58, 65, 90, 10,
|
195
|
+
32, 44, 58, 60, 123, 9, 13, 10,
|
196
|
+
32, 58, 9, 13, 65, 90, 10, 32,
|
197
|
+
58, 9, 13, 65, 90, 58, 65, 90,
|
198
|
+
10, 32, 44, 58, 96, 123, 0, 8,
|
199
|
+
9, 13, 14, 47, 59, 64, 91, 94,
|
200
|
+
124, 127, 10, 32, 44, 123, 9, 13,
|
201
|
+
10, 32, 58, 9, 13, 65, 90, 10,
|
202
|
+
32, 58, 9, 13, 65, 90, 58, 65,
|
203
|
+
90, 10, 32, 44, 58, 96, 123, 0,
|
204
|
+
8, 9, 13, 14, 47, 59, 64, 91,
|
205
|
+
94, 124, 127, 58, 65, 90, 58, 65,
|
206
|
+
90, 10, 32, 58, 9, 13, 65, 90,
|
207
|
+
9, 32, 93, 96, 0, 10, 11, 13,
|
208
|
+
14, 47, 58, 64, 91, 94, 123, 127,
|
209
|
+
9, 32, 93, 11, 13, 9, 32, 96,
|
210
|
+
0, 10, 11, 13, 14, 94, 123, 127,
|
211
|
+
9, 32, 58, 11, 13, 9, 32, 96,
|
212
|
+
0, 10, 11, 13, 14, 94, 123, 127,
|
213
|
+
10, 32, 40, 9, 13, 34, 92, 0,
|
214
|
+
4, 26, 48, 57, 34, 92, 34, 92,
|
215
|
+
0, 4, 26, 10, 32, 44, 58, 96,
|
216
|
+
123, 0, 8, 9, 13, 14, 47, 59,
|
217
|
+
64, 91, 94, 124, 127, 10, 32, 44,
|
218
|
+
58, 123, 9, 13, 32, 9, 13, 10,
|
219
|
+
32, 123, 9, 13, 10, 32, 58, 9,
|
220
|
+
13, 65, 90, 10, 32, 58, 9, 13,
|
221
|
+
65, 90, 58, 65, 90, 10, 32, 44,
|
222
|
+
58, 96, 123, 0, 8, 9, 13, 14,
|
223
|
+
47, 59, 64, 91, 94, 124, 127, 58,
|
224
|
+
65, 90, 58, 65, 90, 10, 32, 44,
|
225
|
+
58, 60, 123, 9, 13, 10, 32, 58,
|
226
|
+
9, 13, 65, 90, 10, 32, 58, 9,
|
227
|
+
13, 65, 90, 58, 65, 90, 10, 32,
|
228
|
+
44, 58, 96, 123, 0, 8, 9, 13,
|
229
|
+
14, 47, 59, 64, 91, 94, 124, 127,
|
230
|
+
10, 32, 44, 123, 9, 13, 10, 32,
|
231
|
+
58, 9, 13, 65, 90, 10, 32, 58,
|
232
|
+
9, 13, 65, 90, 58, 65, 90, 10,
|
233
|
+
32, 44, 58, 96, 123, 0, 8, 9,
|
234
|
+
13, 14, 47, 59, 64, 91, 94, 124,
|
235
|
+
127, 58, 65, 90, 58, 65, 90, 10,
|
236
|
+
32, 58, 9, 13, 65, 90, 0, 4,
|
237
|
+
10, 26, 32, 34, 35, 58, 59, 91,
|
238
|
+
96, 105, 1, 8, 9, 13, 14, 64,
|
239
|
+
65, 90, 92, 94, 123, 127, 96, 0,
|
240
|
+
47, 58, 64, 91, 94, 123, 127, 34,
|
241
|
+
92, 0, 4, 10, 26, 58, 65, 90,
|
242
|
+
32, 9, 13, 10, 32, 44, 58, 60,
|
243
|
+
96, 123, 0, 8, 9, 13, 14, 47,
|
244
|
+
59, 64, 91, 94, 124, 127, 32, 58,
|
245
|
+
9, 13, 32, 9, 13, 65, 90, 10,
|
246
|
+
32, 44, 58, 96, 123, 0, 8, 9,
|
247
|
+
13, 14, 47, 59, 64, 91, 94, 124,
|
248
|
+
127, 10, 32, 58, 9, 13, 65, 90,
|
249
|
+
32, 58, 9, 13, 32, 9, 13, 65,
|
250
|
+
90, 10, 32, 44, 58, 96, 123, 0,
|
251
|
+
8, 9, 13, 14, 47, 59, 64, 91,
|
252
|
+
94, 124, 127, 32, 58, 9, 13, 32,
|
253
|
+
9, 13, 65, 90, 32, 9, 13, 32,
|
254
|
+
58, 9, 13, 32, 9, 13, 65, 90,
|
255
|
+
9, 32, 96, 0, 10, 11, 13, 14,
|
256
|
+
94, 123, 127, 96, 100, 0, 47, 58,
|
257
|
+
64, 91, 94, 123, 127, 9, 32, 58,
|
258
|
+
96, 0, 10, 11, 13, 14, 47, 59,
|
259
|
+
64, 91, 94, 123, 127, 96, 0, 47,
|
260
|
+
58, 64, 91, 94, 123, 127, 0, 4,
|
261
|
+
10, 26, 32, 34, 35, 58, 59, 91,
|
262
|
+
96, 105, 125, 1, 8, 9, 13, 14,
|
263
|
+
64, 65, 90, 92, 94, 123, 127, 96,
|
264
|
+
0, 47, 58, 64, 91, 94, 123, 127,
|
265
|
+
34, 92, 0, 4, 10, 26, 58, 65,
|
266
|
+
90, 32, 9, 13, 10, 32, 44, 58,
|
267
|
+
60, 96, 123, 0, 8, 9, 13, 14,
|
268
|
+
47, 59, 64, 91, 94, 124, 127, 32,
|
269
|
+
58, 9, 13, 32, 9, 13, 65, 90,
|
270
|
+
10, 32, 44, 58, 96, 123, 0, 8,
|
271
|
+
9, 13, 14, 47, 59, 64, 91, 94,
|
272
|
+
124, 127, 10, 32, 58, 9, 13, 65,
|
273
|
+
90, 32, 58, 9, 13, 32, 9, 13,
|
274
|
+
65, 90, 10, 32, 44, 58, 96, 123,
|
275
|
+
0, 8, 9, 13, 14, 47, 59, 64,
|
276
|
+
91, 94, 124, 127, 32, 58, 9, 13,
|
277
|
+
32, 9, 13, 65, 90, 32, 9, 13,
|
278
|
+
32, 58, 9, 13, 32, 9, 13, 65,
|
279
|
+
90, 9, 32, 96, 0, 10, 11, 13,
|
280
|
+
14, 94, 123, 127, 96, 100, 0, 47,
|
281
|
+
58, 64, 91, 94, 123, 127, 9, 32,
|
282
|
+
58, 96, 0, 10, 11, 13, 14, 47,
|
283
|
+
59, 64, 91, 94, 123, 127, 96, 0,
|
284
|
+
47, 58, 64, 91, 94, 123, 127, 10,
|
285
|
+
32, 35, 123, 124, 9, 13, 10, 32,
|
286
|
+
9, 13, 0, 4, 10, 26, 10, 10,
|
287
|
+
10, 0, 4, 10, 26, 32, 34, 35,
|
288
|
+
37, 38, 40, 41, 42, 43, 44, 45,
|
289
|
+
46, 47, 58, 59, 60, 61, 62, 63,
|
290
|
+
64, 91, 92, 93, 94, 96, 102, 110,
|
291
|
+
115, 116, 118, 123, 124, 125, 1, 8,
|
292
|
+
9, 13, 14, 39, 48, 57, 65, 90,
|
293
|
+
126, 127, 10, 32, 40, 96, 0, 8,
|
294
|
+
9, 13, 14, 47, 58, 64, 91, 94,
|
295
|
+
123, 127, 9, 32, 11, 13, 34, 92,
|
296
|
+
0, 4, 10, 26, 38, 42, 46, 48,
|
297
|
+
57, 48, 57, 34, 58, 96, 0, 94,
|
298
|
+
123, 127, 96, 0, 47, 58, 64, 91,
|
299
|
+
94, 123, 127, 65, 90, 32, 9, 13,
|
300
|
+
61, 62, 61, 126, 61, 10, 32, 44,
|
301
|
+
58, 60, 96, 123, 0, 8, 9, 13,
|
302
|
+
14, 47, 59, 64, 91, 94, 124, 127,
|
303
|
+
32, 58, 9, 13, 32, 9, 13, 65,
|
304
|
+
90, 10, 32, 44, 58, 96, 123, 0,
|
305
|
+
8, 9, 13, 14, 47, 59, 64, 91,
|
306
|
+
94, 124, 127, 10, 32, 58, 9, 13,
|
307
|
+
65, 90, 32, 58, 9, 13, 32, 9,
|
308
|
+
13, 65, 90, 10, 32, 44, 58, 96,
|
309
|
+
123, 0, 8, 9, 13, 14, 47, 59,
|
310
|
+
64, 91, 94, 124, 127, 32, 58, 9,
|
311
|
+
13, 32, 9, 13, 65, 90, 32, 9,
|
312
|
+
13, 32, 58, 9, 13, 32, 9, 13,
|
313
|
+
65, 90, 10, 10, 32, 40, 96, 97,
|
314
|
+
0, 8, 9, 13, 14, 47, 58, 64,
|
315
|
+
91, 94, 123, 127, 10, 32, 40, 96,
|
316
|
+
108, 0, 8, 9, 13, 14, 47, 58,
|
317
|
+
64, 91, 94, 123, 127, 10, 32, 40,
|
318
|
+
96, 115, 0, 8, 9, 13, 14, 47,
|
319
|
+
58, 64, 91, 94, 123, 127, 10, 32,
|
320
|
+
40, 96, 101, 0, 8, 9, 13, 14,
|
321
|
+
47, 58, 64, 91, 94, 123, 127, 10,
|
322
|
+
32, 40, 96, 117, 0, 8, 9, 13,
|
323
|
+
14, 47, 58, 64, 91, 94, 123, 127,
|
324
|
+
10, 32, 40, 96, 108, 0, 8, 9,
|
325
|
+
13, 14, 47, 58, 64, 91, 94, 123,
|
326
|
+
127, 10, 32, 40, 96, 108, 0, 8,
|
327
|
+
9, 13, 14, 47, 58, 64, 91, 94,
|
328
|
+
123, 127, 10, 32, 40, 96, 101, 0,
|
329
|
+
8, 9, 13, 14, 47, 58, 64, 91,
|
330
|
+
94, 123, 127, 10, 32, 40, 96, 108,
|
331
|
+
0, 8, 9, 13, 14, 47, 58, 64,
|
332
|
+
91, 94, 123, 127, 10, 32, 40, 96,
|
333
|
+
102, 0, 8, 9, 13, 14, 47, 58,
|
334
|
+
64, 91, 94, 123, 127, 10, 32, 40,
|
335
|
+
96, 114, 0, 8, 9, 13, 14, 47,
|
336
|
+
58, 64, 91, 94, 123, 127, 10, 32,
|
337
|
+
40, 96, 117, 0, 8, 9, 13, 14,
|
338
|
+
47, 58, 64, 91, 94, 123, 127, 10,
|
339
|
+
32, 40, 96, 101, 0, 8, 9, 13,
|
340
|
+
14, 47, 58, 64, 91, 94, 123, 127,
|
341
|
+
10, 32, 40, 96, 111, 0, 8, 9,
|
342
|
+
13, 14, 47, 58, 64, 91, 94, 123,
|
343
|
+
127, 10, 32, 40, 96, 105, 0, 8,
|
344
|
+
9, 13, 14, 47, 58, 64, 91, 94,
|
345
|
+
123, 127, 10, 32, 40, 96, 100, 0,
|
346
|
+
8, 9, 13, 14, 47, 58, 64, 91,
|
347
|
+
94, 123, 127, 124, 0
|
348
|
+
]
|
349
|
+
|
350
|
+
class << self
|
351
|
+
attr_accessor :_lexer_single_lengths
|
352
|
+
private :_lexer_single_lengths, :_lexer_single_lengths=
|
353
|
+
end
|
354
|
+
self._lexer_single_lengths = [
|
355
|
+
0, 2, 3, 6, 5, 1, 3, 3,
|
356
|
+
3, 1, 0, 6, 1, 0, 1, 0,
|
357
|
+
6, 3, 3, 1, 0, 6, 4, 3,
|
358
|
+
3, 1, 0, 6, 1, 0, 1, 0,
|
359
|
+
3, 4, 3, 3, 3, 3, 2, 3,
|
360
|
+
6, 5, 1, 3, 3, 3, 1, 0,
|
361
|
+
6, 1, 0, 1, 0, 6, 3, 3,
|
362
|
+
1, 0, 6, 4, 3, 3, 1, 0,
|
363
|
+
6, 1, 0, 1, 0, 3, 4, 3,
|
364
|
+
3, 3, 3, 3, 2, 3, 0, 2,
|
365
|
+
2, 3, 6, 5, 1, 3, 3, 3,
|
366
|
+
1, 0, 6, 1, 0, 1, 0, 6,
|
367
|
+
3, 3, 1, 0, 6, 4, 3, 3,
|
368
|
+
1, 0, 6, 1, 0, 1, 0, 3,
|
369
|
+
12, 1, 2, 0, 4, 1, 0, 1,
|
370
|
+
0, 7, 2, 1, 6, 3, 2, 1,
|
371
|
+
6, 2, 1, 1, 2, 1, 3, 0,
|
372
|
+
2, 4, 1, 13, 1, 2, 0, 4,
|
373
|
+
1, 0, 1, 0, 7, 2, 1, 6,
|
374
|
+
3, 2, 1, 6, 2, 1, 1, 2,
|
375
|
+
1, 3, 0, 2, 4, 1, 5, 2,
|
376
|
+
4, 1, 1, 1, 37, 4, 0, 2,
|
377
|
+
2, 0, 4, 1, 1, 1, 0, 3,
|
378
|
+
1, 0, 0, 1, 0, 1, 1, 2,
|
379
|
+
1, 7, 2, 1, 6, 3, 2, 1,
|
380
|
+
6, 2, 1, 1, 2, 1, 1, 5,
|
381
|
+
5, 5, 5, 5, 5, 5, 5, 5,
|
382
|
+
5, 5, 5, 5, 5, 5, 5, 1
|
383
|
+
]
|
384
|
+
|
385
|
+
class << self
|
386
|
+
attr_accessor :_lexer_range_lengths
|
387
|
+
private :_lexer_range_lengths, :_lexer_range_lengths=
|
388
|
+
end
|
389
|
+
self._lexer_range_lengths = [
|
390
|
+
0, 0, 0, 6, 1, 1, 1, 2,
|
391
|
+
2, 0, 1, 6, 0, 1, 0, 1,
|
392
|
+
1, 2, 2, 0, 1, 6, 1, 2,
|
393
|
+
2, 0, 1, 6, 0, 1, 0, 1,
|
394
|
+
2, 6, 1, 4, 1, 4, 0, 0,
|
395
|
+
6, 1, 1, 1, 2, 2, 0, 1,
|
396
|
+
6, 0, 1, 0, 1, 1, 2, 2,
|
397
|
+
0, 1, 6, 1, 2, 2, 0, 1,
|
398
|
+
6, 0, 1, 0, 1, 2, 6, 1,
|
399
|
+
4, 1, 4, 1, 0, 0, 1, 0,
|
400
|
+
0, 0, 6, 1, 1, 1, 2, 2,
|
401
|
+
0, 1, 6, 0, 1, 0, 1, 1,
|
402
|
+
2, 2, 0, 1, 6, 1, 2, 2,
|
403
|
+
0, 1, 6, 0, 1, 0, 1, 2,
|
404
|
+
6, 4, 0, 0, 0, 0, 1, 1,
|
405
|
+
0, 6, 1, 2, 6, 2, 1, 2,
|
406
|
+
6, 1, 2, 1, 1, 2, 4, 0,
|
407
|
+
4, 6, 4, 6, 4, 0, 0, 0,
|
408
|
+
0, 1, 1, 0, 6, 1, 2, 6,
|
409
|
+
2, 1, 2, 6, 1, 2, 1, 1,
|
410
|
+
2, 4, 0, 4, 6, 4, 1, 1,
|
411
|
+
0, 0, 0, 0, 6, 6, 0, 1,
|
412
|
+
0, 0, 0, 0, 0, 1, 1, 2,
|
413
|
+
4, 0, 1, 1, 0, 0, 0, 0,
|
414
|
+
0, 6, 1, 2, 6, 2, 1, 2,
|
415
|
+
6, 1, 2, 1, 1, 2, 0, 6,
|
416
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
417
|
+
6, 6, 6, 6, 6, 6, 6, 0
|
418
|
+
]
|
419
|
+
|
420
|
+
class << self
|
421
|
+
attr_accessor :_lexer_index_offsets
|
422
|
+
private :_lexer_index_offsets, :_lexer_index_offsets=
|
423
|
+
end
|
424
|
+
self._lexer_index_offsets = [
|
425
|
+
0, 0, 3, 7, 20, 27, 30, 35,
|
426
|
+
41, 47, 49, 51, 64, 66, 68, 70,
|
427
|
+
72, 80, 86, 92, 94, 96, 109, 115,
|
428
|
+
121, 127, 129, 131, 144, 146, 148, 150,
|
429
|
+
152, 158, 169, 174, 182, 187, 195, 198,
|
430
|
+
202, 215, 222, 225, 230, 236, 242, 244,
|
431
|
+
246, 259, 261, 263, 265, 267, 275, 281,
|
432
|
+
287, 289, 291, 304, 310, 316, 322, 324,
|
433
|
+
326, 339, 341, 343, 345, 347, 353, 364,
|
434
|
+
369, 377, 382, 390, 395, 398, 402, 404,
|
435
|
+
407, 410, 414, 427, 434, 437, 442, 448,
|
436
|
+
454, 456, 458, 471, 473, 475, 477, 479,
|
437
|
+
487, 493, 499, 501, 503, 516, 522, 528,
|
438
|
+
534, 536, 538, 551, 553, 555, 557, 559,
|
439
|
+
565, 584, 590, 593, 594, 599, 601, 603,
|
440
|
+
606, 607, 621, 625, 629, 642, 648, 652,
|
441
|
+
656, 669, 673, 677, 680, 684, 688, 696,
|
442
|
+
697, 704, 715, 721, 741, 747, 750, 751,
|
443
|
+
756, 758, 760, 763, 764, 778, 782, 786,
|
444
|
+
799, 805, 809, 813, 826, 830, 834, 837,
|
445
|
+
841, 845, 853, 854, 861, 872, 878, 885,
|
446
|
+
889, 894, 896, 898, 900, 944, 955, 956,
|
447
|
+
960, 963, 964, 969, 971, 973, 976, 978,
|
448
|
+
984, 990, 991, 993, 996, 997, 999, 1001,
|
449
|
+
1004, 1006, 1020, 1024, 1028, 1041, 1047, 1051,
|
450
|
+
1055, 1068, 1072, 1076, 1079, 1083, 1087, 1089,
|
451
|
+
1101, 1113, 1125, 1137, 1149, 1161, 1173, 1185,
|
452
|
+
1197, 1209, 1221, 1233, 1245, 1257, 1269, 1281
|
453
|
+
]
|
454
|
+
|
455
|
+
class << self
|
456
|
+
attr_accessor :_lexer_indicies
|
457
|
+
private :_lexer_indicies, :_lexer_indicies=
|
458
|
+
end
|
459
|
+
self._lexer_indicies = [
|
460
|
+
2, 3, 1, 0, 0, 0, 1, 7,
|
461
|
+
6, 8, 9, 4, 10, 4, 6, 4,
|
462
|
+
4, 4, 4, 5, 13, 12, 14, 4,
|
463
|
+
15, 12, 11, 4, 4, 16, 13, 17,
|
464
|
+
15, 17, 4, 19, 18, 20, 18, 21,
|
465
|
+
4, 23, 22, 24, 22, 25, 4, 26,
|
466
|
+
4, 27, 4, 30, 29, 31, 32, 4,
|
467
|
+
33, 4, 29, 4, 4, 4, 4, 28,
|
468
|
+
34, 4, 35, 4, 36, 4, 37, 4,
|
469
|
+
13, 39, 14, 38, 40, 15, 39, 11,
|
470
|
+
42, 41, 43, 41, 44, 16, 46, 45,
|
471
|
+
47, 45, 48, 38, 49, 38, 50, 38,
|
472
|
+
7, 52, 53, 54, 38, 10, 38, 52,
|
473
|
+
38, 38, 38, 38, 51, 13, 55, 56,
|
474
|
+
15, 55, 4, 58, 57, 59, 57, 60,
|
475
|
+
4, 62, 61, 63, 61, 64, 4, 65,
|
476
|
+
4, 66, 4, 30, 68, 69, 70, 4,
|
477
|
+
33, 4, 68, 4, 4, 4, 4, 67,
|
478
|
+
71, 4, 72, 4, 73, 38, 74, 38,
|
479
|
+
42, 41, 75, 41, 76, 38, 78, 78,
|
480
|
+
79, 0, 0, 78, 0, 0, 0, 0,
|
481
|
+
77, 80, 80, 81, 80, 0, 83, 83,
|
482
|
+
0, 0, 83, 0, 0, 82, 85, 85,
|
483
|
+
86, 85, 84, 86, 86, 84, 84, 86,
|
484
|
+
84, 84, 87, 90, 91, 89, 88, 88,
|
485
|
+
88, 89, 95, 94, 96, 97, 92, 98,
|
486
|
+
92, 94, 92, 92, 92, 92, 93, 101,
|
487
|
+
100, 102, 92, 103, 100, 99, 92, 92,
|
488
|
+
104, 101, 105, 103, 105, 92, 107, 106,
|
489
|
+
108, 106, 109, 92, 111, 110, 112, 110,
|
490
|
+
113, 92, 114, 92, 115, 92, 118, 117,
|
491
|
+
119, 120, 92, 121, 92, 117, 92, 92,
|
492
|
+
92, 92, 116, 122, 92, 123, 92, 124,
|
493
|
+
92, 125, 92, 101, 127, 102, 126, 128,
|
494
|
+
103, 127, 99, 130, 129, 131, 129, 132,
|
495
|
+
104, 134, 133, 135, 133, 136, 126, 137,
|
496
|
+
126, 138, 126, 95, 140, 141, 142, 126,
|
497
|
+
98, 126, 140, 126, 126, 126, 126, 139,
|
498
|
+
101, 143, 144, 103, 143, 92, 146, 145,
|
499
|
+
147, 145, 148, 92, 150, 149, 151, 149,
|
500
|
+
152, 92, 153, 92, 154, 92, 118, 156,
|
501
|
+
157, 158, 92, 121, 92, 156, 92, 92,
|
502
|
+
92, 92, 155, 159, 92, 160, 92, 161,
|
503
|
+
126, 162, 126, 130, 129, 163, 129, 164,
|
504
|
+
126, 166, 166, 167, 88, 88, 166, 88,
|
505
|
+
88, 88, 88, 165, 168, 168, 169, 168,
|
506
|
+
88, 171, 171, 88, 88, 171, 88, 88,
|
507
|
+
170, 173, 173, 174, 173, 172, 174, 174,
|
508
|
+
172, 172, 174, 172, 172, 175, 178, 177,
|
509
|
+
179, 177, 176, 182, 183, 181, 180, 180,
|
510
|
+
180, 181, 185, 184, 187, 188, 186, 190,
|
511
|
+
191, 189, 180, 180, 180, 189, 194, 193,
|
512
|
+
195, 196, 176, 197, 176, 193, 176, 176,
|
513
|
+
176, 176, 192, 200, 199, 201, 176, 202,
|
514
|
+
199, 198, 176, 176, 203, 200, 204, 202,
|
515
|
+
204, 176, 206, 205, 207, 205, 208, 176,
|
516
|
+
210, 209, 211, 209, 212, 176, 213, 176,
|
517
|
+
214, 176, 217, 216, 218, 219, 176, 220,
|
518
|
+
176, 216, 176, 176, 176, 176, 215, 221,
|
519
|
+
176, 222, 176, 223, 176, 224, 176, 200,
|
520
|
+
226, 201, 225, 227, 202, 226, 198, 229,
|
521
|
+
228, 230, 228, 231, 203, 233, 232, 234,
|
522
|
+
232, 235, 225, 236, 225, 237, 225, 194,
|
523
|
+
239, 240, 241, 225, 197, 225, 239, 225,
|
524
|
+
225, 225, 225, 238, 200, 242, 243, 202,
|
525
|
+
242, 176, 245, 244, 246, 244, 247, 176,
|
526
|
+
249, 248, 250, 248, 251, 176, 252, 176,
|
527
|
+
253, 176, 217, 255, 256, 257, 176, 220,
|
528
|
+
176, 255, 176, 176, 176, 176, 254, 258,
|
529
|
+
176, 259, 176, 260, 225, 261, 225, 229,
|
530
|
+
228, 262, 228, 263, 225, 265, 265, 268,
|
531
|
+
265, 267, 269, 270, 271, 272, 274, 266,
|
532
|
+
275, 266, 267, 266, 273, 266, 266, 264,
|
533
|
+
276, 276, 276, 276, 276, 264, 279, 280,
|
534
|
+
278, 281, 282, 282, 282, 282, 270, 284,
|
535
|
+
283, 286, 285, 287, 287, 16, 288, 7,
|
536
|
+
291, 8, 9, 292, 289, 10, 289, 291,
|
537
|
+
289, 289, 289, 289, 290, 287, 293, 287,
|
538
|
+
16, 287, 287, 294, 16, 297, 296, 298,
|
539
|
+
299, 16, 300, 16, 296, 16, 16, 16,
|
540
|
+
16, 295, 302, 301, 303, 301, 304, 16,
|
541
|
+
287, 305, 287, 16, 287, 287, 306, 16,
|
542
|
+
309, 308, 310, 311, 16, 312, 16, 308,
|
543
|
+
16, 16, 16, 16, 307, 287, 313, 287,
|
544
|
+
16, 287, 287, 314, 16, 315, 315, 316,
|
545
|
+
287, 317, 287, 16, 287, 287, 318, 16,
|
546
|
+
320, 320, 277, 277, 320, 277, 277, 319,
|
547
|
+
321, 276, 322, 276, 276, 276, 276, 264,
|
548
|
+
323, 323, 324, 276, 276, 323, 276, 276,
|
549
|
+
276, 276, 264, 325, 325, 325, 325, 325,
|
550
|
+
326, 328, 328, 331, 328, 330, 332, 333,
|
551
|
+
334, 328, 336, 329, 337, 338, 329, 330,
|
552
|
+
329, 335, 329, 329, 327, 339, 339, 339,
|
553
|
+
339, 339, 327, 342, 343, 341, 344, 345,
|
554
|
+
345, 345, 345, 333, 347, 346, 349, 348,
|
555
|
+
350, 350, 104, 351, 95, 354, 96, 97,
|
556
|
+
355, 352, 98, 352, 354, 352, 352, 352,
|
557
|
+
352, 353, 350, 356, 350, 104, 350, 350,
|
558
|
+
357, 104, 360, 359, 361, 362, 104, 363,
|
559
|
+
104, 359, 104, 104, 104, 104, 358, 365,
|
560
|
+
364, 366, 364, 367, 104, 350, 368, 350,
|
561
|
+
104, 350, 350, 369, 104, 372, 371, 373,
|
562
|
+
374, 104, 375, 104, 371, 104, 104, 104,
|
563
|
+
104, 370, 350, 376, 350, 104, 350, 350,
|
564
|
+
377, 104, 378, 378, 379, 350, 380, 350,
|
565
|
+
104, 350, 350, 381, 104, 383, 383, 340,
|
566
|
+
340, 383, 340, 340, 382, 384, 339, 385,
|
567
|
+
339, 339, 339, 339, 327, 386, 386, 387,
|
568
|
+
339, 339, 386, 339, 339, 339, 339, 327,
|
569
|
+
388, 388, 388, 388, 388, 389, 392, 391,
|
570
|
+
393, 394, 395, 391, 390, 392, 391, 391,
|
571
|
+
396, 397, 397, 397, 397, 393, 398, 399,
|
572
|
+
400, 401, 402, 403, 405, 405, 408, 405,
|
573
|
+
407, 409, 410, 411, 412, 413, 414, 415,
|
574
|
+
416, 417, 418, 419, 420, 422, 423, 424,
|
575
|
+
425, 426, 427, 406, 429, 430, 431, 406,
|
576
|
+
406, 432, 433, 434, 435, 436, 437, 438,
|
577
|
+
439, 406, 407, 406, 421, 428, 406, 404,
|
578
|
+
442, 441, 443, 176, 176, 441, 176, 176,
|
579
|
+
176, 176, 440, 444, 407, 407, 407, 445,
|
580
|
+
448, 449, 447, 450, 451, 451, 451, 451,
|
581
|
+
410, 453, 452, 455, 454, 457, 421, 456,
|
582
|
+
185, 458, 460, 461, 446, 446, 446, 459,
|
583
|
+
462, 462, 462, 462, 462, 463, 464, 466,
|
584
|
+
465, 467, 467, 203, 468, 470, 469, 471,
|
585
|
+
469, 426, 471, 472, 471, 469, 194, 475,
|
586
|
+
195, 196, 476, 473, 197, 473, 475, 473,
|
587
|
+
473, 473, 473, 474, 467, 477, 467, 203,
|
588
|
+
467, 467, 478, 203, 481, 480, 482, 483,
|
589
|
+
203, 484, 203, 480, 203, 203, 203, 203,
|
590
|
+
479, 486, 485, 487, 485, 488, 203, 467,
|
591
|
+
489, 467, 203, 467, 467, 490, 203, 493,
|
592
|
+
492, 494, 495, 203, 496, 203, 492, 203,
|
593
|
+
203, 203, 203, 491, 467, 497, 467, 203,
|
594
|
+
467, 467, 498, 203, 499, 499, 500, 467,
|
595
|
+
501, 467, 203, 467, 467, 502, 203, 503,
|
596
|
+
446, 442, 441, 443, 504, 505, 504, 441,
|
597
|
+
504, 504, 504, 504, 440, 442, 441, 443,
|
598
|
+
504, 506, 504, 441, 504, 504, 504, 504,
|
599
|
+
440, 442, 441, 443, 504, 507, 504, 441,
|
600
|
+
504, 504, 504, 504, 440, 442, 441, 443,
|
601
|
+
504, 508, 504, 441, 504, 504, 504, 504,
|
602
|
+
440, 442, 441, 443, 504, 509, 504, 441,
|
603
|
+
504, 504, 504, 504, 440, 442, 441, 443,
|
604
|
+
504, 510, 504, 441, 504, 504, 504, 504,
|
605
|
+
440, 442, 441, 443, 504, 511, 504, 441,
|
606
|
+
504, 504, 504, 504, 440, 442, 441, 443,
|
607
|
+
504, 512, 504, 441, 504, 504, 504, 504,
|
608
|
+
440, 442, 441, 443, 504, 513, 504, 441,
|
609
|
+
504, 504, 504, 504, 440, 442, 441, 443,
|
610
|
+
504, 514, 504, 441, 504, 504, 504, 504,
|
611
|
+
440, 442, 441, 443, 504, 515, 504, 441,
|
612
|
+
504, 504, 504, 504, 440, 442, 441, 443,
|
613
|
+
504, 516, 504, 441, 504, 504, 504, 504,
|
614
|
+
440, 442, 441, 443, 504, 517, 504, 441,
|
615
|
+
504, 504, 504, 504, 440, 442, 441, 443,
|
616
|
+
504, 518, 504, 441, 504, 504, 504, 504,
|
617
|
+
440, 442, 441, 443, 504, 519, 504, 441,
|
618
|
+
504, 504, 504, 504, 440, 442, 441, 443,
|
619
|
+
504, 520, 504, 441, 504, 504, 504, 504,
|
620
|
+
440, 522, 521, 0
|
621
|
+
]
|
622
|
+
|
623
|
+
class << self
|
624
|
+
attr_accessor :_lexer_trans_targs
|
625
|
+
private :_lexer_trans_targs, :_lexer_trans_targs=
|
626
|
+
end
|
627
|
+
self._lexer_trans_targs = [
|
628
|
+
112, 1, 115, 2, 112, 3, 4, 6,
|
629
|
+
7, 14, 120, 5, 4, 6, 7, 120,
|
630
|
+
119, 6, 8, 8, 9, 11, 8, 8,
|
631
|
+
9, 11, 10, 11, 11, 4, 6, 7,
|
632
|
+
12, 120, 13, 11, 15, 3, 112, 16,
|
633
|
+
17, 18, 18, 122, 124, 18, 18, 19,
|
634
|
+
21, 20, 21, 21, 22, 23, 30, 22,
|
635
|
+
23, 24, 24, 25, 27, 24, 24, 25,
|
636
|
+
27, 26, 27, 27, 22, 23, 28, 29,
|
637
|
+
27, 31, 21, 19, 21, 33, 34, 135,
|
638
|
+
34, 135, 33, 35, 112, 36, 37, 138,
|
639
|
+
139, 38, 142, 39, 139, 40, 41, 43,
|
640
|
+
44, 51, 147, 42, 41, 43, 44, 147,
|
641
|
+
146, 43, 45, 45, 46, 48, 45, 45,
|
642
|
+
46, 48, 47, 48, 48, 41, 43, 44,
|
643
|
+
49, 147, 50, 48, 52, 40, 139, 53,
|
644
|
+
54, 55, 55, 149, 151, 55, 55, 56,
|
645
|
+
58, 57, 58, 58, 59, 60, 67, 59,
|
646
|
+
60, 61, 61, 62, 64, 61, 61, 62,
|
647
|
+
64, 63, 64, 64, 59, 60, 65, 66,
|
648
|
+
64, 68, 58, 56, 58, 70, 71, 162,
|
649
|
+
71, 162, 70, 72, 139, 73, 74, 165,
|
650
|
+
172, 75, 75, 174, 172, 76, 177, 77,
|
651
|
+
172, 182, 80, 185, 81, 80, 185, 81,
|
652
|
+
82, 83, 85, 86, 93, 188, 84, 83,
|
653
|
+
85, 86, 188, 187, 85, 87, 87, 88,
|
654
|
+
90, 87, 87, 88, 90, 89, 90, 90,
|
655
|
+
83, 85, 86, 91, 188, 92, 90, 94,
|
656
|
+
82, 172, 95, 96, 97, 97, 194, 196,
|
657
|
+
97, 97, 98, 100, 99, 100, 100, 101,
|
658
|
+
102, 109, 101, 102, 103, 103, 104, 106,
|
659
|
+
103, 103, 104, 106, 105, 106, 106, 101,
|
660
|
+
102, 107, 108, 106, 110, 100, 98, 100,
|
661
|
+
113, 112, 112, 112, 112, 114, 116, 117,
|
662
|
+
112, 121, 134, 136, 112, 112, 1, 115,
|
663
|
+
2, 112, 112, 112, 118, 112, 3, 112,
|
664
|
+
112, 112, 121, 16, 32, 123, 124, 124,
|
665
|
+
22, 6, 125, 132, 131, 24, 24, 126,
|
666
|
+
128, 127, 128, 128, 22, 6, 125, 129,
|
667
|
+
131, 130, 128, 112, 119, 133, 124, 33,
|
668
|
+
35, 112, 137, 36, 37, 112, 138, 140,
|
669
|
+
139, 139, 139, 139, 141, 143, 144, 148,
|
670
|
+
161, 163, 139, 139, 139, 38, 142, 39,
|
671
|
+
139, 139, 139, 145, 139, 40, 139, 139,
|
672
|
+
139, 148, 53, 69, 150, 151, 151, 59,
|
673
|
+
43, 152, 159, 158, 61, 61, 153, 155,
|
674
|
+
154, 155, 155, 59, 43, 152, 156, 158,
|
675
|
+
157, 155, 139, 146, 160, 151, 70, 72,
|
676
|
+
139, 164, 73, 74, 139, 165, 166, 167,
|
677
|
+
167, 168, 166, 166, 166, 166, 170, 0,
|
678
|
+
169, 171, 169, 171, 173, 172, 172, 175,
|
679
|
+
172, 176, 178, 172, 179, 172, 172, 180,
|
680
|
+
172, 172, 172, 172, 172, 181, 183, 172,
|
681
|
+
189, 191, 192, 172, 193, 172, 206, 172,
|
682
|
+
207, 211, 214, 217, 220, 172, 223, 172,
|
683
|
+
173, 75, 75, 174, 172, 172, 172, 76,
|
684
|
+
177, 77, 172, 172, 172, 172, 172, 172,
|
685
|
+
172, 78, 172, 184, 79, 186, 172, 184,
|
686
|
+
172, 172, 82, 172, 172, 172, 190, 172,
|
687
|
+
172, 172, 193, 95, 111, 195, 196, 196,
|
688
|
+
101, 85, 197, 204, 203, 103, 103, 198,
|
689
|
+
200, 199, 200, 200, 101, 85, 197, 201,
|
690
|
+
203, 202, 200, 172, 187, 205, 196, 172,
|
691
|
+
172, 208, 209, 210, 173, 212, 213, 173,
|
692
|
+
215, 216, 173, 218, 219, 173, 221, 222,
|
693
|
+
173, 172, 172
|
694
|
+
]
|
695
|
+
|
696
|
+
class << self
|
697
|
+
attr_accessor :_lexer_trans_actions
|
698
|
+
private :_lexer_trans_actions, :_lexer_trans_actions=
|
699
|
+
end
|
700
|
+
self._lexer_trans_actions = [
|
701
|
+
79, 0, 5, 0, 81, 0, 245, 335,
|
702
|
+
339, 31, 343, 41, 0, 1, 35, 39,
|
703
|
+
0, 0, 37, 254, 257, 257, 0, 1,
|
704
|
+
27, 27, 0, 29, 0, 248, 347, 351,
|
705
|
+
31, 355, 0, 33, 0, 33, 77, 0,
|
706
|
+
263, 266, 367, 446, 550, 0, 1, 251,
|
707
|
+
251, 0, 29, 0, 245, 339, 31, 0,
|
708
|
+
35, 37, 254, 257, 257, 0, 1, 27,
|
709
|
+
27, 0, 29, 0, 248, 351, 31, 0,
|
710
|
+
33, 0, 33, 446, 446, 0, 17, 227,
|
711
|
+
0, 19, 15, 0, 75, 0, 0, 11,
|
712
|
+
107, 0, 5, 0, 109, 0, 245, 335,
|
713
|
+
339, 31, 343, 41, 0, 1, 35, 39,
|
714
|
+
0, 0, 37, 254, 257, 257, 0, 1,
|
715
|
+
27, 27, 0, 29, 0, 248, 347, 351,
|
716
|
+
31, 355, 0, 33, 0, 33, 105, 0,
|
717
|
+
263, 266, 367, 446, 557, 0, 1, 251,
|
718
|
+
251, 0, 29, 0, 245, 339, 31, 0,
|
719
|
+
35, 37, 254, 257, 257, 0, 1, 27,
|
720
|
+
27, 0, 29, 0, 248, 351, 31, 0,
|
721
|
+
33, 0, 33, 446, 446, 0, 17, 227,
|
722
|
+
0, 19, 15, 0, 103, 0, 0, 11,
|
723
|
+
195, 0, 1, 45, 193, 0, 5, 0,
|
724
|
+
189, 0, 23, 239, 23, 0, 25, 0,
|
725
|
+
0, 245, 335, 339, 31, 343, 41, 0,
|
726
|
+
1, 35, 39, 0, 0, 37, 254, 257,
|
727
|
+
257, 0, 1, 27, 27, 0, 29, 0,
|
728
|
+
248, 347, 351, 31, 355, 0, 33, 0,
|
729
|
+
33, 191, 0, 263, 266, 367, 446, 564,
|
730
|
+
0, 1, 251, 251, 0, 29, 0, 245,
|
731
|
+
339, 31, 0, 35, 37, 254, 257, 257,
|
732
|
+
0, 1, 27, 27, 0, 29, 0, 248,
|
733
|
+
351, 31, 0, 33, 0, 33, 446, 446,
|
734
|
+
0, 59, 61, 55, 197, 284, 0, 251,
|
735
|
+
57, 532, 287, 7, 65, 73, 3, 206,
|
736
|
+
3, 209, 63, 71, 296, 69, 29, 383,
|
737
|
+
371, 67, 293, 363, 260, 0, 399, 290,
|
738
|
+
431, 466, 496, 31, 343, 359, 441, 257,
|
739
|
+
451, 0, 399, 290, 436, 472, 514, 31,
|
740
|
+
355, 0, 411, 478, 269, 0, 411, 224,
|
741
|
+
13, 230, 53, 9, 9, 218, 0, 0,
|
742
|
+
85, 89, 83, 200, 284, 0, 251, 538,
|
743
|
+
287, 7, 87, 93, 101, 3, 206, 3,
|
744
|
+
212, 91, 99, 305, 97, 29, 387, 375,
|
745
|
+
95, 302, 363, 260, 0, 403, 299, 431,
|
746
|
+
466, 502, 31, 343, 359, 441, 257, 456,
|
747
|
+
0, 403, 299, 436, 472, 520, 31, 355,
|
748
|
+
0, 415, 484, 269, 0, 415, 224, 13,
|
749
|
+
233, 53, 9, 9, 221, 0, 113, 0,
|
750
|
+
1, 0, 115, 111, 117, 119, 1, 0,
|
751
|
+
395, 47, 281, 0, 427, 153, 161, 0,
|
752
|
+
203, 284, 0, 137, 0, 121, 157, 0,
|
753
|
+
131, 149, 133, 127, 135, 53, 423, 151,
|
754
|
+
0, 0, 0, 129, 544, 123, 0, 159,
|
755
|
+
427, 427, 427, 427, 427, 125, 0, 155,
|
756
|
+
329, 43, 272, 275, 278, 163, 187, 3,
|
757
|
+
206, 3, 215, 165, 183, 143, 179, 139,
|
758
|
+
167, 0, 169, 21, 21, 332, 236, 0,
|
759
|
+
242, 175, 29, 391, 379, 181, 0, 141,
|
760
|
+
177, 171, 326, 363, 260, 0, 407, 308,
|
761
|
+
431, 466, 508, 31, 343, 359, 441, 257,
|
762
|
+
461, 0, 407, 308, 436, 472, 526, 31,
|
763
|
+
355, 0, 419, 490, 269, 0, 419, 147,
|
764
|
+
173, 329, 329, 329, 323, 329, 329, 314,
|
765
|
+
329, 329, 311, 329, 329, 320, 329, 329,
|
766
|
+
317, 185, 145
|
767
|
+
]
|
768
|
+
|
769
|
+
class << self
|
770
|
+
attr_accessor :_lexer_to_state_actions
|
771
|
+
private :_lexer_to_state_actions, :_lexer_to_state_actions=
|
772
|
+
end
|
773
|
+
self._lexer_to_state_actions = [
|
774
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
775
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
776
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
777
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
778
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
779
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
780
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
781
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
782
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
783
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
784
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
785
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
786
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
787
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
788
|
+
49, 0, 0, 0, 0, 0, 0, 0,
|
789
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
790
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
791
|
+
0, 0, 0, 49, 0, 0, 0, 0,
|
792
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
793
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
794
|
+
0, 0, 0, 0, 0, 0, 49, 0,
|
795
|
+
0, 49, 0, 0, 49, 0, 0, 0,
|
796
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
797
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
798
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
799
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
800
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
801
|
+
0, 0, 0, 0, 0, 0, 0, 0
|
802
|
+
]
|
803
|
+
|
804
|
+
class << self
|
805
|
+
attr_accessor :_lexer_from_state_actions
|
806
|
+
private :_lexer_from_state_actions, :_lexer_from_state_actions=
|
807
|
+
end
|
808
|
+
self._lexer_from_state_actions = [
|
809
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
810
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
811
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
812
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
813
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
814
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
815
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
816
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
817
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
818
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
819
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
820
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
821
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
822
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
823
|
+
51, 0, 0, 0, 0, 0, 0, 0,
|
824
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
825
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
826
|
+
0, 0, 0, 51, 0, 0, 0, 0,
|
827
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
828
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
829
|
+
0, 0, 0, 0, 0, 0, 51, 0,
|
830
|
+
0, 51, 0, 0, 51, 0, 0, 0,
|
831
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
832
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
833
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
834
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
835
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
836
|
+
0, 0, 0, 0, 0, 0, 0, 0
|
837
|
+
]
|
838
|
+
|
839
|
+
class << self
|
840
|
+
attr_accessor :_lexer_eof_trans
|
841
|
+
private :_lexer_eof_trans, :_lexer_eof_trans=
|
842
|
+
end
|
843
|
+
self._lexer_eof_trans = [
|
844
|
+
0, 1, 1, 5, 5, 5, 5, 5,
|
845
|
+
5, 5, 5, 5, 5, 5, 5, 5,
|
846
|
+
39, 39, 39, 39, 39, 39, 5, 5,
|
847
|
+
5, 5, 5, 5, 5, 5, 39, 39,
|
848
|
+
39, 1, 1, 1, 85, 85, 89, 89,
|
849
|
+
93, 93, 93, 93, 93, 93, 93, 93,
|
850
|
+
93, 93, 93, 93, 93, 127, 127, 127,
|
851
|
+
127, 127, 127, 93, 93, 93, 93, 93,
|
852
|
+
93, 93, 93, 127, 127, 127, 89, 89,
|
853
|
+
89, 173, 173, 177, 181, 181, 185, 181,
|
854
|
+
181, 181, 177, 177, 177, 177, 177, 177,
|
855
|
+
177, 177, 177, 177, 177, 177, 177, 226,
|
856
|
+
226, 226, 226, 226, 226, 177, 177, 177,
|
857
|
+
177, 177, 177, 177, 177, 226, 226, 226,
|
858
|
+
0, 277, 278, 282, 283, 284, 286, 288,
|
859
|
+
289, 290, 288, 288, 288, 288, 288, 288,
|
860
|
+
288, 288, 288, 316, 288, 288, 278, 322,
|
861
|
+
277, 277, 326, 0, 340, 341, 345, 346,
|
862
|
+
347, 349, 351, 352, 353, 351, 351, 351,
|
863
|
+
351, 351, 351, 351, 351, 351, 379, 351,
|
864
|
+
351, 341, 385, 340, 340, 389, 0, 397,
|
865
|
+
398, 0, 401, 403, 0, 177, 445, 446,
|
866
|
+
447, 451, 452, 453, 455, 457, 459, 447,
|
867
|
+
463, 465, 466, 468, 469, 470, 470, 473,
|
868
|
+
470, 474, 468, 468, 468, 468, 468, 468,
|
869
|
+
468, 468, 468, 500, 468, 468, 447, 505,
|
870
|
+
505, 505, 505, 505, 505, 505, 505, 505,
|
871
|
+
505, 505, 505, 505, 505, 505, 505, 522
|
872
|
+
]
|
873
|
+
|
874
|
+
class << self
|
875
|
+
attr_accessor :lexer_start
|
876
|
+
end
|
877
|
+
self.lexer_start = 112;
|
878
|
+
class << self
|
879
|
+
attr_accessor :lexer_first_final
|
880
|
+
end
|
881
|
+
self.lexer_first_final = 112;
|
882
|
+
class << self
|
883
|
+
attr_accessor :lexer_error
|
884
|
+
end
|
885
|
+
self.lexer_error = 0;
|
886
|
+
|
887
|
+
class << self
|
888
|
+
attr_accessor :lexer_en_main
|
889
|
+
end
|
890
|
+
self.lexer_en_main = 112;
|
891
|
+
class << self
|
892
|
+
attr_accessor :lexer_en_decl_body
|
893
|
+
end
|
894
|
+
self.lexer_en_decl_body = 139;
|
895
|
+
class << self
|
896
|
+
attr_accessor :lexer_en_pre_meme
|
897
|
+
end
|
898
|
+
self.lexer_en_pre_meme = 166;
|
899
|
+
class << self
|
900
|
+
attr_accessor :lexer_en_dstr_body
|
901
|
+
end
|
902
|
+
self.lexer_en_dstr_body = 169;
|
903
|
+
class << self
|
904
|
+
attr_accessor :lexer_en_meme_body
|
905
|
+
end
|
906
|
+
self.lexer_en_meme_body = 172;
|
907
|
+
|
908
|
+
|
909
|
+
# line 36 "lib/myco/parser/lexer_skeleton.rl"
|
910
|
+
##
|
911
|
+
# @param [String] data The data to lex.
|
912
|
+
#
|
913
|
+
def initialize(data)
|
914
|
+
@data = data.unpack('U*') << 0
|
915
|
+
|
916
|
+
reset
|
917
|
+
end
|
918
|
+
|
919
|
+
##
|
920
|
+
# Resets the internal state of the lexer. Typically you don't need to
|
921
|
+
# call this method yourself as its called by #lex after lexing a given
|
922
|
+
# String.
|
923
|
+
#
|
924
|
+
def reset
|
925
|
+
@line = 1
|
926
|
+
@ts = nil
|
927
|
+
@te = nil
|
928
|
+
@tokens = []
|
929
|
+
@stack = []
|
930
|
+
@top = 0
|
931
|
+
@cs = self.class.lexer_start
|
932
|
+
@act = 0
|
933
|
+
@elements = []
|
934
|
+
@eof = @data.length
|
935
|
+
@p = 0
|
936
|
+
@pe = @eof
|
937
|
+
reset_common
|
938
|
+
end
|
939
|
+
|
940
|
+
##
|
941
|
+
# Lexes the supplied String and returns an Array of tokens. Each token is
|
942
|
+
# an Array in the following format:
|
943
|
+
#
|
944
|
+
# [TYPE, VALUE]
|
945
|
+
#
|
946
|
+
# The type is a symbol, the value is either nil or a String.
|
947
|
+
#
|
948
|
+
# This method resets the internal state of the lexer after consuming the
|
949
|
+
# input.
|
950
|
+
#
|
951
|
+
# @param [String] data The string to consume.
|
952
|
+
# @return [Array]
|
953
|
+
# @see #advance
|
954
|
+
#
|
955
|
+
def lex
|
956
|
+
tokens = []
|
957
|
+
|
958
|
+
while token = advance
|
959
|
+
tokens << token
|
960
|
+
end
|
961
|
+
|
962
|
+
reset
|
963
|
+
|
964
|
+
return tokens
|
965
|
+
end
|
966
|
+
|
967
|
+
##
|
968
|
+
# Advances through the input and generates the corresponding tokens.
|
969
|
+
#
|
970
|
+
# This method does *not* reset the internal state of the lexer.
|
971
|
+
#
|
972
|
+
# @param [String] data The String to consume.
|
973
|
+
# @return [Array]
|
974
|
+
#
|
975
|
+
def advance
|
976
|
+
_lexer_actions = self.class.send :_lexer_actions
|
977
|
+
_lexer_range_lengths = self.class.send :_lexer_range_lengths
|
978
|
+
_lexer_trans_actions = self.class.send :_lexer_trans_actions
|
979
|
+
_lexer_key_offsets = self.class.send :_lexer_key_offsets
|
980
|
+
_lexer_index_offsets = self.class.send :_lexer_index_offsets
|
981
|
+
_lexer_to_state_actions = self.class.send :_lexer_to_state_actions
|
982
|
+
_lexer_trans_keys = self.class.send :_lexer_trans_keys
|
983
|
+
_lexer_from_state_actions = self.class.send :_lexer_from_state_actions
|
984
|
+
_lexer_single_lengths = self.class.send :_lexer_single_lengths
|
985
|
+
_lexer_trans_targs = self.class.send :_lexer_trans_targs
|
986
|
+
_lexer_eof_trans = self.class.send :_lexer_eof_trans
|
987
|
+
_lexer_indicies = self.class.send :_lexer_indicies
|
988
|
+
|
989
|
+
|
990
|
+
# line 991 "lib/myco/parser/lexer.rb"
|
991
|
+
begin
|
992
|
+
_klen, _trans, _keys, _acts, _nacts = nil
|
993
|
+
_goto_level = 0
|
994
|
+
_resume = 10
|
995
|
+
_eof_trans = 15
|
996
|
+
_again = 20
|
997
|
+
_test_eof = 30
|
998
|
+
_out = 40
|
999
|
+
while true
|
1000
|
+
_trigger_goto = false
|
1001
|
+
if _goto_level <= 0
|
1002
|
+
if @p == @pe
|
1003
|
+
_goto_level = _test_eof
|
1004
|
+
next
|
1005
|
+
end
|
1006
|
+
if @cs == 0
|
1007
|
+
_goto_level = _out
|
1008
|
+
next
|
1009
|
+
end
|
1010
|
+
end
|
1011
|
+
if _goto_level <= _resume
|
1012
|
+
_acts = _lexer_from_state_actions[ @cs]
|
1013
|
+
_nacts = _lexer_actions[_acts]
|
1014
|
+
_acts += 1
|
1015
|
+
while _nacts > 0
|
1016
|
+
_nacts -= 1
|
1017
|
+
_acts += 1
|
1018
|
+
case _lexer_actions[_acts - 1]
|
1019
|
+
when 48 then
|
1020
|
+
# line 1 "NONE"
|
1021
|
+
begin
|
1022
|
+
@ts = @p
|
1023
|
+
end
|
1024
|
+
# line 1025 "lib/myco/parser/lexer.rb"
|
1025
|
+
end # from state action switch
|
1026
|
+
end
|
1027
|
+
if _trigger_goto
|
1028
|
+
next
|
1029
|
+
end
|
1030
|
+
_keys = _lexer_key_offsets[ @cs]
|
1031
|
+
_trans = _lexer_index_offsets[ @cs]
|
1032
|
+
_klen = _lexer_single_lengths[ @cs]
|
1033
|
+
_break_match = false
|
1034
|
+
|
1035
|
+
begin
|
1036
|
+
if _klen > 0
|
1037
|
+
_lower = _keys
|
1038
|
+
_upper = _keys + _klen - 1
|
1039
|
+
|
1040
|
+
loop do
|
1041
|
+
break if _upper < _lower
|
1042
|
+
_mid = _lower + ( (_upper - _lower) >> 1 )
|
1043
|
+
|
1044
|
+
if ( (@data[@p] || 0)) < _lexer_trans_keys[_mid]
|
1045
|
+
_upper = _mid - 1
|
1046
|
+
elsif ( (@data[@p] || 0)) > _lexer_trans_keys[_mid]
|
1047
|
+
_lower = _mid + 1
|
1048
|
+
else
|
1049
|
+
_trans += (_mid - _keys)
|
1050
|
+
_break_match = true
|
1051
|
+
break
|
1052
|
+
end
|
1053
|
+
end # loop
|
1054
|
+
break if _break_match
|
1055
|
+
_keys += _klen
|
1056
|
+
_trans += _klen
|
1057
|
+
end
|
1058
|
+
_klen = _lexer_range_lengths[ @cs]
|
1059
|
+
if _klen > 0
|
1060
|
+
_lower = _keys
|
1061
|
+
_upper = _keys + (_klen << 1) - 2
|
1062
|
+
loop do
|
1063
|
+
break if _upper < _lower
|
1064
|
+
_mid = _lower + (((_upper-_lower) >> 1) & ~1)
|
1065
|
+
if ( (@data[@p] || 0)) < _lexer_trans_keys[_mid]
|
1066
|
+
_upper = _mid - 2
|
1067
|
+
elsif ( (@data[@p] || 0)) > _lexer_trans_keys[_mid+1]
|
1068
|
+
_lower = _mid + 2
|
1069
|
+
else
|
1070
|
+
_trans += ((_mid - _keys) >> 1)
|
1071
|
+
_break_match = true
|
1072
|
+
break
|
1073
|
+
end
|
1074
|
+
end # loop
|
1075
|
+
break if _break_match
|
1076
|
+
_trans += _klen
|
1077
|
+
end
|
1078
|
+
end while false
|
1079
|
+
_trans = _lexer_indicies[_trans]
|
1080
|
+
end
|
1081
|
+
if _goto_level <= _eof_trans
|
1082
|
+
@cs = _lexer_trans_targs[_trans]
|
1083
|
+
if _lexer_trans_actions[_trans] != 0
|
1084
|
+
_acts = _lexer_trans_actions[_trans]
|
1085
|
+
_nacts = _lexer_actions[_acts]
|
1086
|
+
_acts += 1
|
1087
|
+
while _nacts > 0
|
1088
|
+
_nacts -= 1
|
1089
|
+
_acts += 1
|
1090
|
+
case _lexer_actions[_acts - 1]
|
1091
|
+
when 0 then
|
1092
|
+
# line 147 "lib/myco/parser/lexer_skeleton.rl"
|
1093
|
+
begin
|
1094
|
+
do_nl end
|
1095
|
+
when 1 then
|
1096
|
+
# line 20 "lib/myco/parser/lexer.rl"
|
1097
|
+
begin
|
1098
|
+
note_begin :string end
|
1099
|
+
when 2 then
|
1100
|
+
# line 21 "lib/myco/parser/lexer.rl"
|
1101
|
+
begin
|
1102
|
+
note :string, :T_STRING_BEGIN; note :string end
|
1103
|
+
when 3 then
|
1104
|
+
# line 22 "lib/myco/parser/lexer.rl"
|
1105
|
+
begin
|
1106
|
+
note :string, :T_STRING_BODY; note :string end
|
1107
|
+
when 4 then
|
1108
|
+
# line 23 "lib/myco/parser/lexer.rl"
|
1109
|
+
begin
|
1110
|
+
note :string, :T_STRING_END end
|
1111
|
+
when 5 then
|
1112
|
+
# line 29 "lib/myco/parser/lexer.rl"
|
1113
|
+
begin
|
1114
|
+
note_begin :declid end
|
1115
|
+
when 6 then
|
1116
|
+
# line 30 "lib/myco/parser/lexer.rl"
|
1117
|
+
begin
|
1118
|
+
note :declid, :T_DECLID_TAG end
|
1119
|
+
when 7 then
|
1120
|
+
# line 33 "lib/myco/parser/lexer.rl"
|
1121
|
+
begin
|
1122
|
+
note :declid end
|
1123
|
+
when 8 then
|
1124
|
+
# line 34 "lib/myco/parser/lexer.rl"
|
1125
|
+
begin
|
1126
|
+
note :declid, :T_DECLID_VALUE end
|
1127
|
+
when 9 then
|
1128
|
+
# line 40 "lib/myco/parser/lexer.rl"
|
1129
|
+
begin
|
1130
|
+
note_begin :category end
|
1131
|
+
when 10 then
|
1132
|
+
# line 41 "lib/myco/parser/lexer.rl"
|
1133
|
+
begin
|
1134
|
+
note :category, :T_CATEGORY_BEGIN end
|
1135
|
+
when 11 then
|
1136
|
+
# line 42 "lib/myco/parser/lexer.rl"
|
1137
|
+
begin
|
1138
|
+
note :category end
|
1139
|
+
when 12 then
|
1140
|
+
# line 43 "lib/myco/parser/lexer.rl"
|
1141
|
+
begin
|
1142
|
+
note :category, :T_CATEGORY_BODY end
|
1143
|
+
when 13 then
|
1144
|
+
# line 44 "lib/myco/parser/lexer.rl"
|
1145
|
+
begin
|
1146
|
+
note :category end
|
1147
|
+
when 14 then
|
1148
|
+
# line 45 "lib/myco/parser/lexer.rl"
|
1149
|
+
begin
|
1150
|
+
note :category, :T_CATEGORY_END end
|
1151
|
+
when 15 then
|
1152
|
+
# line 52 "lib/myco/parser/lexer.rl"
|
1153
|
+
begin
|
1154
|
+
note_begin :symbol end
|
1155
|
+
when 16 then
|
1156
|
+
# line 55 "lib/myco/parser/lexer.rl"
|
1157
|
+
begin
|
1158
|
+
note :symbol, :T_SYMBOL; end
|
1159
|
+
when 17 then
|
1160
|
+
# line 58 "lib/myco/parser/lexer.rl"
|
1161
|
+
begin
|
1162
|
+
note :symbol, :T_SYMSTR_BEGIN; note :symbol end
|
1163
|
+
when 18 then
|
1164
|
+
# line 59 "lib/myco/parser/lexer.rl"
|
1165
|
+
begin
|
1166
|
+
note :symbol, :T_SYMSTR_BODY; note :symbol end
|
1167
|
+
when 19 then
|
1168
|
+
# line 60 "lib/myco/parser/lexer.rl"
|
1169
|
+
begin
|
1170
|
+
note :symbol, :T_SYMSTR_END; end
|
1171
|
+
when 20 then
|
1172
|
+
# line 71 "lib/myco/parser/lexer.rl"
|
1173
|
+
begin
|
1174
|
+
note_begin :sconstant end
|
1175
|
+
when 21 then
|
1176
|
+
# line 73 "lib/myco/parser/lexer.rl"
|
1177
|
+
begin
|
1178
|
+
note :sconstant, :T_SCOPE; note :sconstant end
|
1179
|
+
when 22 then
|
1180
|
+
# line 75 "lib/myco/parser/lexer.rl"
|
1181
|
+
begin
|
1182
|
+
note :sconstant, :T_CONSTANT; note :sconstant end
|
1183
|
+
when 23 then
|
1184
|
+
# line 76 "lib/myco/parser/lexer.rl"
|
1185
|
+
begin
|
1186
|
+
note :sconstant, :T_SCOPE; note :sconstant end
|
1187
|
+
when 24 then
|
1188
|
+
# line 78 "lib/myco/parser/lexer.rl"
|
1189
|
+
begin
|
1190
|
+
note :sconstant, :T_CONSTANT end
|
1191
|
+
when 25 then
|
1192
|
+
# line 84 "lib/myco/parser/lexer.rl"
|
1193
|
+
begin
|
1194
|
+
note_begin :constant_list, nil end
|
1195
|
+
when 26 then
|
1196
|
+
# line 85 "lib/myco/parser/lexer.rl"
|
1197
|
+
begin
|
1198
|
+
xfer_notes :sconstant, :constant_list end
|
1199
|
+
when 27 then
|
1200
|
+
# line 87 "lib/myco/parser/lexer.rl"
|
1201
|
+
begin
|
1202
|
+
note :constant_list end
|
1203
|
+
when 28 then
|
1204
|
+
# line 88 "lib/myco/parser/lexer.rl"
|
1205
|
+
begin
|
1206
|
+
note :constant_list, :T_CONST_SEP end
|
1207
|
+
when 29 then
|
1208
|
+
# line 90 "lib/myco/parser/lexer.rl"
|
1209
|
+
begin
|
1210
|
+
xfer_notes :sconstant, :constant_list end
|
1211
|
+
when 30 then
|
1212
|
+
# line 97 "lib/myco/parser/lexer.rl"
|
1213
|
+
begin
|
1214
|
+
note_begin :cdefn_begin end
|
1215
|
+
when 31 then
|
1216
|
+
# line 98 "lib/myco/parser/lexer.rl"
|
1217
|
+
begin
|
1218
|
+
note :cdefn_begin, :T_CONSTANT end
|
1219
|
+
when 32 then
|
1220
|
+
# line 99 "lib/myco/parser/lexer.rl"
|
1221
|
+
begin
|
1222
|
+
note :cdefn_begin end
|
1223
|
+
when 33 then
|
1224
|
+
# line 100 "lib/myco/parser/lexer.rl"
|
1225
|
+
begin
|
1226
|
+
note :cdefn_begin, :T_DEFINE end
|
1227
|
+
when 34 then
|
1228
|
+
# line 101 "lib/myco/parser/lexer.rl"
|
1229
|
+
begin
|
1230
|
+
|
1231
|
+
emit_notes :cdefn_begin
|
1232
|
+
end
|
1233
|
+
when 35 then
|
1234
|
+
# line 110 "lib/myco/parser/lexer.rl"
|
1235
|
+
begin
|
1236
|
+
note_begin :decl_begin end
|
1237
|
+
when 36 then
|
1238
|
+
# line 111 "lib/myco/parser/lexer.rl"
|
1239
|
+
begin
|
1240
|
+
note :decl_begin, :T_DECLARE_BEGIN end
|
1241
|
+
when 37 then
|
1242
|
+
# line 112 "lib/myco/parser/lexer.rl"
|
1243
|
+
begin
|
1244
|
+
|
1245
|
+
emit_notes :constant_list
|
1246
|
+
emit_notes :decl_begin
|
1247
|
+
end
|
1248
|
+
when 38 then
|
1249
|
+
# line 141 "lib/myco/parser/lexer.rl"
|
1250
|
+
begin
|
1251
|
+
mark :space end
|
1252
|
+
when 39 then
|
1253
|
+
# line 142 "lib/myco/parser/lexer.rl"
|
1254
|
+
begin
|
1255
|
+
grab :delim, kram(:space) end
|
1256
|
+
when 40 then
|
1257
|
+
# line 143 "lib/myco/parser/lexer.rl"
|
1258
|
+
begin
|
1259
|
+
|
1260
|
+
emit_notes :constant_list
|
1261
|
+
|
1262
|
+
start, stop = @stored[:delim]
|
1263
|
+
emit :T_DECLSTR_BEGIN, start, stop
|
1264
|
+
|
1265
|
+
# Table of replacement characters to use when calculating
|
1266
|
+
# the ending delimiter from the starting delimiter.
|
1267
|
+
# Directional characters are replaced with their opposite.
|
1268
|
+
@dstr_replace_table ||= %w{
|
1269
|
+
< > ( ) { } [ ]
|
1270
|
+
}
|
1271
|
+
|
1272
|
+
# Calculate the ending delimiter to look for and store it
|
1273
|
+
@dstr_delim = text(start, stop) \
|
1274
|
+
.split(/(?<=[^a-zA-Z])|(?=[^a-zA-Z])/)
|
1275
|
+
.map { |str|
|
1276
|
+
idx = @dstr_replace_table.find_index(str)
|
1277
|
+
idx.nil? ? str :
|
1278
|
+
(idx.odd? ? @dstr_replace_table[idx-1] : @dstr_replace_table[idx+1])
|
1279
|
+
}
|
1280
|
+
.reverse
|
1281
|
+
.join ''
|
1282
|
+
end
|
1283
|
+
when 41 then
|
1284
|
+
# line 171 "lib/myco/parser/lexer.rl"
|
1285
|
+
begin
|
1286
|
+
note_begin :args_begin end
|
1287
|
+
when 42 then
|
1288
|
+
# line 172 "lib/myco/parser/lexer.rl"
|
1289
|
+
begin
|
1290
|
+
note :args_begin, :T_IDENTIFIER end
|
1291
|
+
when 43 then
|
1292
|
+
# line 173 "lib/myco/parser/lexer.rl"
|
1293
|
+
begin
|
1294
|
+
note :args_begin end
|
1295
|
+
when 44 then
|
1296
|
+
# line 174 "lib/myco/parser/lexer.rl"
|
1297
|
+
begin
|
1298
|
+
note :args_begin, :T_ARGS_BEGIN end
|
1299
|
+
when 45 then
|
1300
|
+
# line 252 "lib/myco/parser/lexer.rl"
|
1301
|
+
begin
|
1302
|
+
mark :newline end
|
1303
|
+
when 46 then
|
1304
|
+
# line 253 "lib/myco/parser/lexer.rl"
|
1305
|
+
begin
|
1306
|
+
grab :line, kram(:newline) end
|
1307
|
+
when 49 then
|
1308
|
+
# line 1 "NONE"
|
1309
|
+
begin
|
1310
|
+
@te = @p+1
|
1311
|
+
end
|
1312
|
+
when 50 then
|
1313
|
+
# line 185 "lib/myco/parser/lexer.rl"
|
1314
|
+
begin
|
1315
|
+
@act = 4; end
|
1316
|
+
when 51 then
|
1317
|
+
# line 191 "lib/myco/parser/lexer.rl"
|
1318
|
+
begin
|
1319
|
+
@act = 9; end
|
1320
|
+
when 52 then
|
1321
|
+
# line 192 "lib/myco/parser/lexer.rl"
|
1322
|
+
begin
|
1323
|
+
@act = 10; end
|
1324
|
+
when 53 then
|
1325
|
+
# line 181 "lib/myco/parser/lexer.rl"
|
1326
|
+
begin
|
1327
|
+
@te = @p+1
|
1328
|
+
end
|
1329
|
+
when 54 then
|
1330
|
+
# line 196 "lib/myco/parser/lexer.rl"
|
1331
|
+
begin
|
1332
|
+
@te = @p+1
|
1333
|
+
begin emit :T_EXPR_SEP end
|
1334
|
+
end
|
1335
|
+
when 55 then
|
1336
|
+
# line 197 "lib/myco/parser/lexer.rl"
|
1337
|
+
begin
|
1338
|
+
@te = @p+1
|
1339
|
+
begin emit :T_EXPR_SEP end
|
1340
|
+
end
|
1341
|
+
when 56 then
|
1342
|
+
# line 199 "lib/myco/parser/lexer.rl"
|
1343
|
+
begin
|
1344
|
+
@te = @p+1
|
1345
|
+
begin emit :T_DECLARE_END end
|
1346
|
+
end
|
1347
|
+
when 57 then
|
1348
|
+
# line 200 "lib/myco/parser/lexer.rl"
|
1349
|
+
begin
|
1350
|
+
@te = @p+1
|
1351
|
+
begin error :main end
|
1352
|
+
end
|
1353
|
+
when 58 then
|
1354
|
+
# line 182 "lib/myco/parser/lexer.rl"
|
1355
|
+
begin
|
1356
|
+
@te = @p
|
1357
|
+
@p = @p - 1; end
|
1358
|
+
when 59 then
|
1359
|
+
# line 184 "lib/myco/parser/lexer.rl"
|
1360
|
+
begin
|
1361
|
+
@te = @p
|
1362
|
+
@p = @p - 1; begin begin
|
1363
|
+
@stack[ @top] = @cs
|
1364
|
+
@top+= 1
|
1365
|
+
@cs = 139
|
1366
|
+
_trigger_goto = true
|
1367
|
+
_goto_level = _again
|
1368
|
+
break
|
1369
|
+
end
|
1370
|
+
end
|
1371
|
+
end
|
1372
|
+
when 60 then
|
1373
|
+
# line 185 "lib/myco/parser/lexer.rl"
|
1374
|
+
begin
|
1375
|
+
@te = @p
|
1376
|
+
@p = @p - 1; begin begin
|
1377
|
+
@stack[ @top] = @cs
|
1378
|
+
@top+= 1
|
1379
|
+
@cs = 169
|
1380
|
+
_trigger_goto = true
|
1381
|
+
_goto_level = _again
|
1382
|
+
break
|
1383
|
+
end
|
1384
|
+
end
|
1385
|
+
end
|
1386
|
+
when 61 then
|
1387
|
+
# line 187 "lib/myco/parser/lexer.rl"
|
1388
|
+
begin
|
1389
|
+
@te = @p
|
1390
|
+
@p = @p - 1; begin emit_notes :string end
|
1391
|
+
end
|
1392
|
+
when 62 then
|
1393
|
+
# line 188 "lib/myco/parser/lexer.rl"
|
1394
|
+
begin
|
1395
|
+
@te = @p
|
1396
|
+
@p = @p - 1; begin emit_notes :declid end
|
1397
|
+
end
|
1398
|
+
when 63 then
|
1399
|
+
# line 189 "lib/myco/parser/lexer.rl"
|
1400
|
+
begin
|
1401
|
+
@te = @p
|
1402
|
+
@p = @p - 1; begin emit_notes :category end
|
1403
|
+
end
|
1404
|
+
when 64 then
|
1405
|
+
# line 190 "lib/myco/parser/lexer.rl"
|
1406
|
+
begin
|
1407
|
+
@te = @p
|
1408
|
+
@p = @p - 1; begin emit :T_IDENTIFIER end
|
1409
|
+
end
|
1410
|
+
when 65 then
|
1411
|
+
# line 191 "lib/myco/parser/lexer.rl"
|
1412
|
+
begin
|
1413
|
+
@te = @p
|
1414
|
+
@p = @p - 1; begin emit :T_CONSTANT end
|
1415
|
+
end
|
1416
|
+
when 66 then
|
1417
|
+
# line 192 "lib/myco/parser/lexer.rl"
|
1418
|
+
begin
|
1419
|
+
@te = @p
|
1420
|
+
@p = @p - 1; begin emit :T_SCOPE end
|
1421
|
+
end
|
1422
|
+
when 67 then
|
1423
|
+
# line 194 "lib/myco/parser/lexer.rl"
|
1424
|
+
begin
|
1425
|
+
@te = @p
|
1426
|
+
@p = @p - 1; begin begin
|
1427
|
+
@stack[ @top] = @cs
|
1428
|
+
@top+= 1
|
1429
|
+
@cs = 166
|
1430
|
+
_trigger_goto = true
|
1431
|
+
_goto_level = _again
|
1432
|
+
break
|
1433
|
+
end
|
1434
|
+
end
|
1435
|
+
end
|
1436
|
+
when 68 then
|
1437
|
+
# line 200 "lib/myco/parser/lexer.rl"
|
1438
|
+
begin
|
1439
|
+
@te = @p
|
1440
|
+
@p = @p - 1; begin error :main end
|
1441
|
+
end
|
1442
|
+
when 69 then
|
1443
|
+
# line 190 "lib/myco/parser/lexer.rl"
|
1444
|
+
begin
|
1445
|
+
begin @p = (( @te))-1; end
|
1446
|
+
begin emit :T_IDENTIFIER end
|
1447
|
+
end
|
1448
|
+
when 70 then
|
1449
|
+
# line 191 "lib/myco/parser/lexer.rl"
|
1450
|
+
begin
|
1451
|
+
begin @p = (( @te))-1; end
|
1452
|
+
begin emit :T_CONSTANT end
|
1453
|
+
end
|
1454
|
+
when 71 then
|
1455
|
+
# line 200 "lib/myco/parser/lexer.rl"
|
1456
|
+
begin
|
1457
|
+
begin @p = (( @te))-1; end
|
1458
|
+
begin error :main end
|
1459
|
+
end
|
1460
|
+
when 72 then
|
1461
|
+
# line 1 "NONE"
|
1462
|
+
begin
|
1463
|
+
case @act
|
1464
|
+
when 4 then
|
1465
|
+
begin begin @p = (( @te))-1; end
|
1466
|
+
begin
|
1467
|
+
@stack[ @top] = @cs
|
1468
|
+
@top+= 1
|
1469
|
+
@cs = 169
|
1470
|
+
_trigger_goto = true
|
1471
|
+
_goto_level = _again
|
1472
|
+
break
|
1473
|
+
end
|
1474
|
+
end
|
1475
|
+
when 9 then
|
1476
|
+
begin begin @p = (( @te))-1; end
|
1477
|
+
emit :T_CONSTANT end
|
1478
|
+
when 10 then
|
1479
|
+
begin begin @p = (( @te))-1; end
|
1480
|
+
emit :T_SCOPE end
|
1481
|
+
end
|
1482
|
+
end
|
1483
|
+
when 73 then
|
1484
|
+
# line 213 "lib/myco/parser/lexer.rl"
|
1485
|
+
begin
|
1486
|
+
@act = 20; end
|
1487
|
+
when 74 then
|
1488
|
+
# line 219 "lib/myco/parser/lexer.rl"
|
1489
|
+
begin
|
1490
|
+
@act = 25; end
|
1491
|
+
when 75 then
|
1492
|
+
# line 220 "lib/myco/parser/lexer.rl"
|
1493
|
+
begin
|
1494
|
+
@act = 26; end
|
1495
|
+
when 76 then
|
1496
|
+
# line 207 "lib/myco/parser/lexer.rl"
|
1497
|
+
begin
|
1498
|
+
@te = @p+1
|
1499
|
+
end
|
1500
|
+
when 77 then
|
1501
|
+
# line 210 "lib/myco/parser/lexer.rl"
|
1502
|
+
begin
|
1503
|
+
@te = @p+1
|
1504
|
+
begin emit :T_EXPR_SEP end
|
1505
|
+
end
|
1506
|
+
when 78 then
|
1507
|
+
# line 224 "lib/myco/parser/lexer.rl"
|
1508
|
+
begin
|
1509
|
+
@te = @p+1
|
1510
|
+
begin emit :T_DECLARE_END; begin
|
1511
|
+
@top -= 1
|
1512
|
+
@cs = @stack[ @top]
|
1513
|
+
_trigger_goto = true
|
1514
|
+
_goto_level = _again
|
1515
|
+
break
|
1516
|
+
end
|
1517
|
+
end
|
1518
|
+
end
|
1519
|
+
when 79 then
|
1520
|
+
# line 226 "lib/myco/parser/lexer.rl"
|
1521
|
+
begin
|
1522
|
+
@te = @p+1
|
1523
|
+
begin error :decl_body end
|
1524
|
+
end
|
1525
|
+
when 80 then
|
1526
|
+
# line 208 "lib/myco/parser/lexer.rl"
|
1527
|
+
begin
|
1528
|
+
@te = @p
|
1529
|
+
@p = @p - 1; end
|
1530
|
+
when 81 then
|
1531
|
+
# line 212 "lib/myco/parser/lexer.rl"
|
1532
|
+
begin
|
1533
|
+
@te = @p
|
1534
|
+
@p = @p - 1; begin begin
|
1535
|
+
@stack[ @top] = @cs
|
1536
|
+
@top+= 1
|
1537
|
+
@cs = 139
|
1538
|
+
_trigger_goto = true
|
1539
|
+
_goto_level = _again
|
1540
|
+
break
|
1541
|
+
end
|
1542
|
+
end
|
1543
|
+
end
|
1544
|
+
when 82 then
|
1545
|
+
# line 213 "lib/myco/parser/lexer.rl"
|
1546
|
+
begin
|
1547
|
+
@te = @p
|
1548
|
+
@p = @p - 1; begin begin
|
1549
|
+
@stack[ @top] = @cs
|
1550
|
+
@top+= 1
|
1551
|
+
@cs = 169
|
1552
|
+
_trigger_goto = true
|
1553
|
+
_goto_level = _again
|
1554
|
+
break
|
1555
|
+
end
|
1556
|
+
end
|
1557
|
+
end
|
1558
|
+
when 83 then
|
1559
|
+
# line 215 "lib/myco/parser/lexer.rl"
|
1560
|
+
begin
|
1561
|
+
@te = @p
|
1562
|
+
@p = @p - 1; begin emit_notes :string end
|
1563
|
+
end
|
1564
|
+
when 84 then
|
1565
|
+
# line 216 "lib/myco/parser/lexer.rl"
|
1566
|
+
begin
|
1567
|
+
@te = @p
|
1568
|
+
@p = @p - 1; begin emit_notes :declid end
|
1569
|
+
end
|
1570
|
+
when 85 then
|
1571
|
+
# line 217 "lib/myco/parser/lexer.rl"
|
1572
|
+
begin
|
1573
|
+
@te = @p
|
1574
|
+
@p = @p - 1; begin emit_notes :category end
|
1575
|
+
end
|
1576
|
+
when 86 then
|
1577
|
+
# line 218 "lib/myco/parser/lexer.rl"
|
1578
|
+
begin
|
1579
|
+
@te = @p
|
1580
|
+
@p = @p - 1; begin emit :T_IDENTIFIER end
|
1581
|
+
end
|
1582
|
+
when 87 then
|
1583
|
+
# line 219 "lib/myco/parser/lexer.rl"
|
1584
|
+
begin
|
1585
|
+
@te = @p
|
1586
|
+
@p = @p - 1; begin emit :T_CONSTANT end
|
1587
|
+
end
|
1588
|
+
when 88 then
|
1589
|
+
# line 220 "lib/myco/parser/lexer.rl"
|
1590
|
+
begin
|
1591
|
+
@te = @p
|
1592
|
+
@p = @p - 1; begin emit :T_SCOPE end
|
1593
|
+
end
|
1594
|
+
when 89 then
|
1595
|
+
# line 222 "lib/myco/parser/lexer.rl"
|
1596
|
+
begin
|
1597
|
+
@te = @p
|
1598
|
+
@p = @p - 1; begin begin
|
1599
|
+
@stack[ @top] = @cs
|
1600
|
+
@top+= 1
|
1601
|
+
@cs = 166
|
1602
|
+
_trigger_goto = true
|
1603
|
+
_goto_level = _again
|
1604
|
+
break
|
1605
|
+
end
|
1606
|
+
end
|
1607
|
+
end
|
1608
|
+
when 90 then
|
1609
|
+
# line 226 "lib/myco/parser/lexer.rl"
|
1610
|
+
begin
|
1611
|
+
@te = @p
|
1612
|
+
@p = @p - 1; begin error :decl_body end
|
1613
|
+
end
|
1614
|
+
when 91 then
|
1615
|
+
# line 218 "lib/myco/parser/lexer.rl"
|
1616
|
+
begin
|
1617
|
+
begin @p = (( @te))-1; end
|
1618
|
+
begin emit :T_IDENTIFIER end
|
1619
|
+
end
|
1620
|
+
when 92 then
|
1621
|
+
# line 219 "lib/myco/parser/lexer.rl"
|
1622
|
+
begin
|
1623
|
+
begin @p = (( @te))-1; end
|
1624
|
+
begin emit :T_CONSTANT end
|
1625
|
+
end
|
1626
|
+
when 93 then
|
1627
|
+
# line 226 "lib/myco/parser/lexer.rl"
|
1628
|
+
begin
|
1629
|
+
begin @p = (( @te))-1; end
|
1630
|
+
begin error :decl_body end
|
1631
|
+
end
|
1632
|
+
when 94 then
|
1633
|
+
# line 1 "NONE"
|
1634
|
+
begin
|
1635
|
+
case @act
|
1636
|
+
when 20 then
|
1637
|
+
begin begin @p = (( @te))-1; end
|
1638
|
+
begin
|
1639
|
+
@stack[ @top] = @cs
|
1640
|
+
@top+= 1
|
1641
|
+
@cs = 169
|
1642
|
+
_trigger_goto = true
|
1643
|
+
_goto_level = _again
|
1644
|
+
break
|
1645
|
+
end
|
1646
|
+
end
|
1647
|
+
when 25 then
|
1648
|
+
begin begin @p = (( @te))-1; end
|
1649
|
+
emit :T_CONSTANT end
|
1650
|
+
when 26 then
|
1651
|
+
begin begin @p = (( @te))-1; end
|
1652
|
+
emit :T_SCOPE end
|
1653
|
+
end
|
1654
|
+
end
|
1655
|
+
when 95 then
|
1656
|
+
# line 237 "lib/myco/parser/lexer.rl"
|
1657
|
+
begin
|
1658
|
+
@te = @p+1
|
1659
|
+
begin emit :T_PARAMS_BEGIN; bpush :param; begin
|
1660
|
+
@stack[ @top] = @cs
|
1661
|
+
@top+= 1
|
1662
|
+
@cs = 172
|
1663
|
+
_trigger_goto = true
|
1664
|
+
_goto_level = _again
|
1665
|
+
break
|
1666
|
+
end
|
1667
|
+
end
|
1668
|
+
end
|
1669
|
+
when 96 then
|
1670
|
+
# line 241 "lib/myco/parser/lexer.rl"
|
1671
|
+
begin
|
1672
|
+
@te = @p+1
|
1673
|
+
begin @p = @p - 1; emit :T_MEME_BEGIN, @ts, @ts; bpush :meml; begin
|
1674
|
+
@cs = 172
|
1675
|
+
_trigger_goto = true
|
1676
|
+
_goto_level = _again
|
1677
|
+
break
|
1678
|
+
end
|
1679
|
+
end
|
1680
|
+
end
|
1681
|
+
when 97 then
|
1682
|
+
# line 242 "lib/myco/parser/lexer.rl"
|
1683
|
+
begin
|
1684
|
+
@te = @p+1
|
1685
|
+
begin emit :T_MEME_BEGIN; bpush :meme; begin
|
1686
|
+
@cs = 172
|
1687
|
+
_trigger_goto = true
|
1688
|
+
_goto_level = _again
|
1689
|
+
break
|
1690
|
+
end
|
1691
|
+
end
|
1692
|
+
end
|
1693
|
+
when 98 then
|
1694
|
+
# line 233 "lib/myco/parser/lexer.rl"
|
1695
|
+
begin
|
1696
|
+
@te = @p
|
1697
|
+
@p = @p - 1; end
|
1698
|
+
when 99 then
|
1699
|
+
# line 234 "lib/myco/parser/lexer.rl"
|
1700
|
+
begin
|
1701
|
+
@te = @p
|
1702
|
+
@p = @p - 1; end
|
1703
|
+
when 100 then
|
1704
|
+
# line 254 "lib/myco/parser/lexer.rl"
|
1705
|
+
begin
|
1706
|
+
@te = @p
|
1707
|
+
@p = @p - 1; begin
|
1708
|
+
start, stop = @stored[:line];
|
1709
|
+
line_text = text start, stop
|
1710
|
+
|
1711
|
+
raise "No known delimiter for string declaration." \
|
1712
|
+
if @dstr_delim.nil?
|
1713
|
+
|
1714
|
+
if (line_text =~ /^(\s*)(\S+)/; $2==@dstr_delim)
|
1715
|
+
emit :T_DECLSTR_BODY, *@dstr_body_start, start
|
1716
|
+
@dstr_body_start = nil
|
1717
|
+
@dstr_delim = nil
|
1718
|
+
|
1719
|
+
emit :T_DECLSTR_END, start+$1.size, stop
|
1720
|
+
begin
|
1721
|
+
@top -= 1
|
1722
|
+
@cs = @stack[ @top]
|
1723
|
+
_trigger_goto = true
|
1724
|
+
_goto_level = _again
|
1725
|
+
break
|
1726
|
+
end
|
1727
|
+
|
1728
|
+
else
|
1729
|
+
@dstr_body_start ||= start
|
1730
|
+
end
|
1731
|
+
end
|
1732
|
+
end
|
1733
|
+
when 101 then
|
1734
|
+
# line 282 "lib/myco/parser/lexer.rl"
|
1735
|
+
begin
|
1736
|
+
@act = 40; end
|
1737
|
+
when 102 then
|
1738
|
+
# line 289 "lib/myco/parser/lexer.rl"
|
1739
|
+
begin
|
1740
|
+
@act = 45; end
|
1741
|
+
when 103 then
|
1742
|
+
# line 290 "lib/myco/parser/lexer.rl"
|
1743
|
+
begin
|
1744
|
+
@act = 46; end
|
1745
|
+
when 104 then
|
1746
|
+
# line 291 "lib/myco/parser/lexer.rl"
|
1747
|
+
begin
|
1748
|
+
@act = 47; end
|
1749
|
+
when 105 then
|
1750
|
+
# line 292 "lib/myco/parser/lexer.rl"
|
1751
|
+
begin
|
1752
|
+
@act = 48; end
|
1753
|
+
when 106 then
|
1754
|
+
# line 293 "lib/myco/parser/lexer.rl"
|
1755
|
+
begin
|
1756
|
+
@act = 49; end
|
1757
|
+
when 107 then
|
1758
|
+
# line 296 "lib/myco/parser/lexer.rl"
|
1759
|
+
begin
|
1760
|
+
@act = 52; end
|
1761
|
+
when 108 then
|
1762
|
+
# line 297 "lib/myco/parser/lexer.rl"
|
1763
|
+
begin
|
1764
|
+
@act = 53; end
|
1765
|
+
when 109 then
|
1766
|
+
# line 300 "lib/myco/parser/lexer.rl"
|
1767
|
+
begin
|
1768
|
+
@act = 56; end
|
1769
|
+
when 110 then
|
1770
|
+
# line 285 "lib/myco/parser/lexer.rl"
|
1771
|
+
begin
|
1772
|
+
@te = @p+1
|
1773
|
+
begin emit :T_PAREN_BEGIN; bpush :paren; begin
|
1774
|
+
@stack[ @top] = @cs
|
1775
|
+
@top+= 1
|
1776
|
+
@cs = 172
|
1777
|
+
_trigger_goto = true
|
1778
|
+
_goto_level = _again
|
1779
|
+
break
|
1780
|
+
end
|
1781
|
+
end
|
1782
|
+
end
|
1783
|
+
when 111 then
|
1784
|
+
# line 286 "lib/myco/parser/lexer.rl"
|
1785
|
+
begin
|
1786
|
+
@te = @p+1
|
1787
|
+
begin emit :T_ARRAY_BEGIN; bpush :array; begin
|
1788
|
+
@stack[ @top] = @cs
|
1789
|
+
@top+= 1
|
1790
|
+
@cs = 172
|
1791
|
+
_trigger_goto = true
|
1792
|
+
_goto_level = _again
|
1793
|
+
break
|
1794
|
+
end
|
1795
|
+
end
|
1796
|
+
end
|
1797
|
+
when 112 then
|
1798
|
+
# line 287 "lib/myco/parser/lexer.rl"
|
1799
|
+
begin
|
1800
|
+
@te = @p+1
|
1801
|
+
begin emit :T_MEME_BEGIN; bpush :meme; begin
|
1802
|
+
@stack[ @top] = @cs
|
1803
|
+
@top+= 1
|
1804
|
+
@cs = 172
|
1805
|
+
_trigger_goto = true
|
1806
|
+
_goto_level = _again
|
1807
|
+
break
|
1808
|
+
end
|
1809
|
+
end
|
1810
|
+
end
|
1811
|
+
when 113 then
|
1812
|
+
# line 298 "lib/myco/parser/lexer.rl"
|
1813
|
+
begin
|
1814
|
+
@te = @p+1
|
1815
|
+
begin emit :T_DOT end
|
1816
|
+
end
|
1817
|
+
when 114 then
|
1818
|
+
# line 299 "lib/myco/parser/lexer.rl"
|
1819
|
+
begin
|
1820
|
+
@te = @p+1
|
1821
|
+
begin emit :T_QUEST end
|
1822
|
+
end
|
1823
|
+
when 115 then
|
1824
|
+
# line 302 "lib/myco/parser/lexer.rl"
|
1825
|
+
begin
|
1826
|
+
@te = @p+1
|
1827
|
+
begin emit :T_OP_PLUS end
|
1828
|
+
end
|
1829
|
+
when 116 then
|
1830
|
+
# line 303 "lib/myco/parser/lexer.rl"
|
1831
|
+
begin
|
1832
|
+
@te = @p+1
|
1833
|
+
begin emit :T_OP_MINUS end
|
1834
|
+
end
|
1835
|
+
when 117 then
|
1836
|
+
# line 305 "lib/myco/parser/lexer.rl"
|
1837
|
+
begin
|
1838
|
+
@te = @p+1
|
1839
|
+
begin emit :T_OP_DIV end
|
1840
|
+
end
|
1841
|
+
when 118 then
|
1842
|
+
# line 306 "lib/myco/parser/lexer.rl"
|
1843
|
+
begin
|
1844
|
+
@te = @p+1
|
1845
|
+
begin emit :T_OP_MOD end
|
1846
|
+
end
|
1847
|
+
when 119 then
|
1848
|
+
# line 307 "lib/myco/parser/lexer.rl"
|
1849
|
+
begin
|
1850
|
+
@te = @p+1
|
1851
|
+
begin emit :T_OP_EXP end
|
1852
|
+
end
|
1853
|
+
when 120 then
|
1854
|
+
# line 309 "lib/myco/parser/lexer.rl"
|
1855
|
+
begin
|
1856
|
+
@te = @p+1
|
1857
|
+
begin emit :T_OP_COMPARE end
|
1858
|
+
end
|
1859
|
+
when 121 then
|
1860
|
+
# line 310 "lib/myco/parser/lexer.rl"
|
1861
|
+
begin
|
1862
|
+
@te = @p+1
|
1863
|
+
begin emit :T_OP_AND end
|
1864
|
+
end
|
1865
|
+
when 122 then
|
1866
|
+
# line 311 "lib/myco/parser/lexer.rl"
|
1867
|
+
begin
|
1868
|
+
@te = @p+1
|
1869
|
+
begin emit :T_OP_OR end
|
1870
|
+
end
|
1871
|
+
when 123 then
|
1872
|
+
# line 316 "lib/myco/parser/lexer.rl"
|
1873
|
+
begin
|
1874
|
+
@te = @p+1
|
1875
|
+
end
|
1876
|
+
when 124 then
|
1877
|
+
# line 327 "lib/myco/parser/lexer.rl"
|
1878
|
+
begin
|
1879
|
+
@te = @p+1
|
1880
|
+
begin
|
1881
|
+
case bthis
|
1882
|
+
when :args; emit :T_ARG_SEP
|
1883
|
+
when :param; emit :T_ARG_SEP
|
1884
|
+
when :array; emit :T_ARG_SEP
|
1885
|
+
else; error :meme_body
|
1886
|
+
end
|
1887
|
+
end
|
1888
|
+
end
|
1889
|
+
when 125 then
|
1890
|
+
# line 336 "lib/myco/parser/lexer.rl"
|
1891
|
+
begin
|
1892
|
+
@te = @p+1
|
1893
|
+
begin
|
1894
|
+
case bthis
|
1895
|
+
when :meme; emit :T_EXPR_SEP
|
1896
|
+
when :meml; emit :T_EXPR_SEP
|
1897
|
+
when :paren; emit :T_EXPR_SEP
|
1898
|
+
else; error :meme_body
|
1899
|
+
end
|
1900
|
+
end
|
1901
|
+
end
|
1902
|
+
when 126 then
|
1903
|
+
# line 345 "lib/myco/parser/lexer.rl"
|
1904
|
+
begin
|
1905
|
+
@te = @p+1
|
1906
|
+
begin
|
1907
|
+
case bthis
|
1908
|
+
when :meme; emit :T_EXPR_SEP
|
1909
|
+
when :meml; emit :T_MEME_END, @ts, @ts; @p = @p - 1; bpop; begin
|
1910
|
+
@top -= 1
|
1911
|
+
@cs = @stack[ @top]
|
1912
|
+
_trigger_goto = true
|
1913
|
+
_goto_level = _again
|
1914
|
+
break
|
1915
|
+
end
|
1916
|
+
|
1917
|
+
when :paren; emit :T_EXPR_SEP
|
1918
|
+
when :args; emit :T_ARG_SEP
|
1919
|
+
when :param; emit :T_ARG_SEP
|
1920
|
+
when :array; emit :T_ARG_SEP
|
1921
|
+
else; error :meme_body
|
1922
|
+
end
|
1923
|
+
end
|
1924
|
+
end
|
1925
|
+
when 127 then
|
1926
|
+
# line 357 "lib/myco/parser/lexer.rl"
|
1927
|
+
begin
|
1928
|
+
@te = @p+1
|
1929
|
+
begin
|
1930
|
+
case bthis
|
1931
|
+
when :meme; emit :T_MEME_END; bpop; begin
|
1932
|
+
@top -= 1
|
1933
|
+
@cs = @stack[ @top]
|
1934
|
+
_trigger_goto = true
|
1935
|
+
_goto_level = _again
|
1936
|
+
break
|
1937
|
+
end
|
1938
|
+
|
1939
|
+
else; error :meme_body
|
1940
|
+
end
|
1941
|
+
end
|
1942
|
+
end
|
1943
|
+
when 128 then
|
1944
|
+
# line 364 "lib/myco/parser/lexer.rl"
|
1945
|
+
begin
|
1946
|
+
@te = @p+1
|
1947
|
+
begin
|
1948
|
+
case bthis
|
1949
|
+
when :args; emit :T_ARGS_END; bpop; begin
|
1950
|
+
@top -= 1
|
1951
|
+
@cs = @stack[ @top]
|
1952
|
+
_trigger_goto = true
|
1953
|
+
_goto_level = _again
|
1954
|
+
break
|
1955
|
+
end
|
1956
|
+
|
1957
|
+
when :paren; emit :T_PAREN_END; bpop; begin
|
1958
|
+
@top -= 1
|
1959
|
+
@cs = @stack[ @top]
|
1960
|
+
_trigger_goto = true
|
1961
|
+
_goto_level = _again
|
1962
|
+
break
|
1963
|
+
end
|
1964
|
+
|
1965
|
+
else; error :meme_body
|
1966
|
+
end
|
1967
|
+
end
|
1968
|
+
end
|
1969
|
+
when 129 then
|
1970
|
+
# line 372 "lib/myco/parser/lexer.rl"
|
1971
|
+
begin
|
1972
|
+
@te = @p+1
|
1973
|
+
begin
|
1974
|
+
case bthis
|
1975
|
+
when :array; emit :T_ARRAY_END; bpop; begin
|
1976
|
+
@top -= 1
|
1977
|
+
@cs = @stack[ @top]
|
1978
|
+
_trigger_goto = true
|
1979
|
+
_goto_level = _again
|
1980
|
+
break
|
1981
|
+
end
|
1982
|
+
|
1983
|
+
else; error :meme_body
|
1984
|
+
end
|
1985
|
+
end
|
1986
|
+
end
|
1987
|
+
when 130 then
|
1988
|
+
# line 389 "lib/myco/parser/lexer.rl"
|
1989
|
+
begin
|
1990
|
+
@te = @p+1
|
1991
|
+
begin error :meme_body end
|
1992
|
+
end
|
1993
|
+
when 131 then
|
1994
|
+
# line 278 "lib/myco/parser/lexer.rl"
|
1995
|
+
begin
|
1996
|
+
@te = @p
|
1997
|
+
@p = @p - 1; end
|
1998
|
+
when 132 then
|
1999
|
+
# line 279 "lib/myco/parser/lexer.rl"
|
2000
|
+
begin
|
2001
|
+
@te = @p
|
2002
|
+
@p = @p - 1; end
|
2003
|
+
when 133 then
|
2004
|
+
# line 281 "lib/myco/parser/lexer.rl"
|
2005
|
+
begin
|
2006
|
+
@te = @p
|
2007
|
+
@p = @p - 1; begin begin
|
2008
|
+
@stack[ @top] = @cs
|
2009
|
+
@top+= 1
|
2010
|
+
@cs = 139
|
2011
|
+
_trigger_goto = true
|
2012
|
+
_goto_level = _again
|
2013
|
+
break
|
2014
|
+
end
|
2015
|
+
end
|
2016
|
+
end
|
2017
|
+
when 134 then
|
2018
|
+
# line 282 "lib/myco/parser/lexer.rl"
|
2019
|
+
begin
|
2020
|
+
@te = @p
|
2021
|
+
@p = @p - 1; begin begin
|
2022
|
+
@stack[ @top] = @cs
|
2023
|
+
@top+= 1
|
2024
|
+
@cs = 169
|
2025
|
+
_trigger_goto = true
|
2026
|
+
_goto_level = _again
|
2027
|
+
break
|
2028
|
+
end
|
2029
|
+
end
|
2030
|
+
end
|
2031
|
+
when 135 then
|
2032
|
+
# line 284 "lib/myco/parser/lexer.rl"
|
2033
|
+
begin
|
2034
|
+
@te = @p
|
2035
|
+
@p = @p - 1; begin emit_notes :args_begin; bpush :args; begin
|
2036
|
+
@stack[ @top] = @cs
|
2037
|
+
@top+= 1
|
2038
|
+
@cs = 172
|
2039
|
+
_trigger_goto = true
|
2040
|
+
_goto_level = _again
|
2041
|
+
break
|
2042
|
+
end
|
2043
|
+
end
|
2044
|
+
end
|
2045
|
+
when 136 then
|
2046
|
+
# line 294 "lib/myco/parser/lexer.rl"
|
2047
|
+
begin
|
2048
|
+
@te = @p
|
2049
|
+
@p = @p - 1; begin emit :T_INTEGER end
|
2050
|
+
end
|
2051
|
+
when 137 then
|
2052
|
+
# line 295 "lib/myco/parser/lexer.rl"
|
2053
|
+
begin
|
2054
|
+
@te = @p
|
2055
|
+
@p = @p - 1; begin emit :T_FLOAT end
|
2056
|
+
end
|
2057
|
+
when 138 then
|
2058
|
+
# line 296 "lib/myco/parser/lexer.rl"
|
2059
|
+
begin
|
2060
|
+
@te = @p
|
2061
|
+
@p = @p - 1; begin emit :T_CONSTANT end
|
2062
|
+
end
|
2063
|
+
when 139 then
|
2064
|
+
# line 297 "lib/myco/parser/lexer.rl"
|
2065
|
+
begin
|
2066
|
+
@te = @p
|
2067
|
+
@p = @p - 1; begin emit :T_IDENTIFIER end
|
2068
|
+
end
|
2069
|
+
when 140 then
|
2070
|
+
# line 300 "lib/myco/parser/lexer.rl"
|
2071
|
+
begin
|
2072
|
+
@te = @p
|
2073
|
+
@p = @p - 1; begin emit :T_SCOPE end
|
2074
|
+
end
|
2075
|
+
when 141 then
|
2076
|
+
# line 301 "lib/myco/parser/lexer.rl"
|
2077
|
+
begin
|
2078
|
+
@te = @p
|
2079
|
+
@p = @p - 1; begin emit :T_ASSIGN end
|
2080
|
+
end
|
2081
|
+
when 142 then
|
2082
|
+
# line 304 "lib/myco/parser/lexer.rl"
|
2083
|
+
begin
|
2084
|
+
@te = @p
|
2085
|
+
@p = @p - 1; begin emit :T_OP_MULT end
|
2086
|
+
end
|
2087
|
+
when 143 then
|
2088
|
+
# line 309 "lib/myco/parser/lexer.rl"
|
2089
|
+
begin
|
2090
|
+
@te = @p
|
2091
|
+
@p = @p - 1; begin emit :T_OP_COMPARE end
|
2092
|
+
end
|
2093
|
+
when 144 then
|
2094
|
+
# line 313 "lib/myco/parser/lexer.rl"
|
2095
|
+
begin
|
2096
|
+
@te = @p
|
2097
|
+
@p = @p - 1; begin emit_notes :symbol end
|
2098
|
+
end
|
2099
|
+
when 145 then
|
2100
|
+
# line 314 "lib/myco/parser/lexer.rl"
|
2101
|
+
begin
|
2102
|
+
@te = @p
|
2103
|
+
@p = @p - 1; begin emit_notes :string end
|
2104
|
+
end
|
2105
|
+
when 146 then
|
2106
|
+
# line 319 "lib/myco/parser/lexer.rl"
|
2107
|
+
begin
|
2108
|
+
@te = @p
|
2109
|
+
@p = @p - 1; begin
|
2110
|
+
case bthis
|
2111
|
+
when :param; emit :T_OP_TOPROC
|
2112
|
+
when :args; emit :T_OP_TOPROC
|
2113
|
+
else; error :meme_body
|
2114
|
+
end
|
2115
|
+
end
|
2116
|
+
end
|
2117
|
+
when 147 then
|
2118
|
+
# line 379 "lib/myco/parser/lexer.rl"
|
2119
|
+
begin
|
2120
|
+
@te = @p
|
2121
|
+
@p = @p - 1; begin
|
2122
|
+
case bthis
|
2123
|
+
when :param; emit :T_PARAMS_END; bpop; begin
|
2124
|
+
@top -= 1
|
2125
|
+
@cs = @stack[ @top]
|
2126
|
+
_trigger_goto = true
|
2127
|
+
_goto_level = _again
|
2128
|
+
break
|
2129
|
+
end
|
2130
|
+
|
2131
|
+
when :meme; emit :T_PARAMS_BEGIN; bpush :param; begin
|
2132
|
+
@stack[ @top] = @cs
|
2133
|
+
@top+= 1
|
2134
|
+
@cs = 172
|
2135
|
+
_trigger_goto = true
|
2136
|
+
_goto_level = _again
|
2137
|
+
break
|
2138
|
+
end
|
2139
|
+
|
2140
|
+
when :meml; emit :T_PARAMS_BEGIN; bpush :param; begin
|
2141
|
+
@stack[ @top] = @cs
|
2142
|
+
@top+= 1
|
2143
|
+
@cs = 172
|
2144
|
+
_trigger_goto = true
|
2145
|
+
_goto_level = _again
|
2146
|
+
break
|
2147
|
+
end
|
2148
|
+
|
2149
|
+
when :paren; emit :T_PARAMS_BEGIN; bpush :param; begin
|
2150
|
+
@stack[ @top] = @cs
|
2151
|
+
@top+= 1
|
2152
|
+
@cs = 172
|
2153
|
+
_trigger_goto = true
|
2154
|
+
_goto_level = _again
|
2155
|
+
break
|
2156
|
+
end
|
2157
|
+
|
2158
|
+
else; error :meme_body
|
2159
|
+
end
|
2160
|
+
end
|
2161
|
+
end
|
2162
|
+
when 148 then
|
2163
|
+
# line 389 "lib/myco/parser/lexer.rl"
|
2164
|
+
begin
|
2165
|
+
@te = @p
|
2166
|
+
@p = @p - 1; begin error :meme_body end
|
2167
|
+
end
|
2168
|
+
when 149 then
|
2169
|
+
# line 294 "lib/myco/parser/lexer.rl"
|
2170
|
+
begin
|
2171
|
+
begin @p = (( @te))-1; end
|
2172
|
+
begin emit :T_INTEGER end
|
2173
|
+
end
|
2174
|
+
when 150 then
|
2175
|
+
# line 296 "lib/myco/parser/lexer.rl"
|
2176
|
+
begin
|
2177
|
+
begin @p = (( @te))-1; end
|
2178
|
+
begin emit :T_CONSTANT end
|
2179
|
+
end
|
2180
|
+
when 151 then
|
2181
|
+
# line 389 "lib/myco/parser/lexer.rl"
|
2182
|
+
begin
|
2183
|
+
begin @p = (( @te))-1; end
|
2184
|
+
begin error :meme_body end
|
2185
|
+
end
|
2186
|
+
when 152 then
|
2187
|
+
# line 1 "NONE"
|
2188
|
+
begin
|
2189
|
+
case @act
|
2190
|
+
when 40 then
|
2191
|
+
begin begin @p = (( @te))-1; end
|
2192
|
+
begin
|
2193
|
+
@stack[ @top] = @cs
|
2194
|
+
@top+= 1
|
2195
|
+
@cs = 169
|
2196
|
+
_trigger_goto = true
|
2197
|
+
_goto_level = _again
|
2198
|
+
break
|
2199
|
+
end
|
2200
|
+
end
|
2201
|
+
when 45 then
|
2202
|
+
begin begin @p = (( @te))-1; end
|
2203
|
+
emit :T_SELF end
|
2204
|
+
when 46 then
|
2205
|
+
begin begin @p = (( @te))-1; end
|
2206
|
+
emit :T_NULL end
|
2207
|
+
when 47 then
|
2208
|
+
begin begin @p = (( @te))-1; end
|
2209
|
+
emit :T_VOID end
|
2210
|
+
when 48 then
|
2211
|
+
begin begin @p = (( @te))-1; end
|
2212
|
+
emit :T_TRUE end
|
2213
|
+
when 49 then
|
2214
|
+
begin begin @p = (( @te))-1; end
|
2215
|
+
emit :T_FALSE end
|
2216
|
+
when 52 then
|
2217
|
+
begin begin @p = (( @te))-1; end
|
2218
|
+
emit :T_CONSTANT end
|
2219
|
+
when 53 then
|
2220
|
+
begin begin @p = (( @te))-1; end
|
2221
|
+
emit :T_IDENTIFIER end
|
2222
|
+
when 56 then
|
2223
|
+
begin begin @p = (( @te))-1; end
|
2224
|
+
emit :T_SCOPE end
|
2225
|
+
end
|
2226
|
+
end
|
2227
|
+
# line 2228 "lib/myco/parser/lexer.rb"
|
2228
|
+
end # action switch
|
2229
|
+
end
|
2230
|
+
end
|
2231
|
+
if _trigger_goto
|
2232
|
+
next
|
2233
|
+
end
|
2234
|
+
end
|
2235
|
+
if _goto_level <= _again
|
2236
|
+
_acts = _lexer_to_state_actions[ @cs]
|
2237
|
+
_nacts = _lexer_actions[_acts]
|
2238
|
+
_acts += 1
|
2239
|
+
while _nacts > 0
|
2240
|
+
_nacts -= 1
|
2241
|
+
_acts += 1
|
2242
|
+
case _lexer_actions[_acts - 1]
|
2243
|
+
when 47 then
|
2244
|
+
# line 1 "NONE"
|
2245
|
+
begin
|
2246
|
+
@ts = nil; end
|
2247
|
+
# line 2248 "lib/myco/parser/lexer.rb"
|
2248
|
+
end # to state action switch
|
2249
|
+
end
|
2250
|
+
if _trigger_goto
|
2251
|
+
next
|
2252
|
+
end
|
2253
|
+
if @cs == 0
|
2254
|
+
_goto_level = _out
|
2255
|
+
next
|
2256
|
+
end
|
2257
|
+
@p += 1
|
2258
|
+
if @p != @pe
|
2259
|
+
_goto_level = _resume
|
2260
|
+
next
|
2261
|
+
end
|
2262
|
+
end
|
2263
|
+
if _goto_level <= _test_eof
|
2264
|
+
if @p == @eof
|
2265
|
+
if _lexer_eof_trans[ @cs] > 0
|
2266
|
+
_trans = _lexer_eof_trans[ @cs] - 1;
|
2267
|
+
_goto_level = _eof_trans
|
2268
|
+
next;
|
2269
|
+
end
|
2270
|
+
end
|
2271
|
+
end
|
2272
|
+
if _goto_level <= _out
|
2273
|
+
break
|
2274
|
+
end
|
2275
|
+
end
|
2276
|
+
end
|
2277
|
+
|
2278
|
+
# line 116 "lib/myco/parser/lexer_skeleton.rl"
|
2279
|
+
# %
|
2280
|
+
|
2281
|
+
return @tokens.shift
|
2282
|
+
end
|
2283
|
+
|
2284
|
+
private
|
2285
|
+
|
2286
|
+
##
|
2287
|
+
# Returns the text of the current buffer based on the supplied start and
|
2288
|
+
# stop position.
|
2289
|
+
#
|
2290
|
+
# By default `@ts` and `@te` are used as the start/stop position.
|
2291
|
+
#
|
2292
|
+
# @param [Fixnum] start
|
2293
|
+
# @param [Fixnum] stop
|
2294
|
+
# @return [String]
|
2295
|
+
#
|
2296
|
+
def text(start = @ts, stop = @te)
|
2297
|
+
return @data[start...stop].pack('U*')
|
2298
|
+
end
|
2299
|
+
|
2300
|
+
|
2301
|
+
|
2302
|
+
# line 151 "lib/myco/parser/lexer_skeleton.rl"
|
2303
|
+
|
2304
|
+
# %
|
2305
|
+
end
|
2306
|
+
end
|