myco 0.1.0.dev → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +7 -7
  2. data/LICENSE +1 -1
  3. data/README.md +79 -0
  4. data/lib/myco/backtrace.rb +1 -1
  5. data/lib/myco/bootstrap/component.rb +78 -39
  6. data/lib/myco/bootstrap/find_constant.rb +12 -1
  7. data/lib/myco/bootstrap/instance.rb +5 -12
  8. data/lib/myco/bootstrap/meme.rb +176 -28
  9. data/lib/myco/bootstrap.my +8 -7
  10. data/lib/myco/code_loader.rb +332 -0
  11. data/lib/myco/command/inoculate.my +83 -0
  12. data/lib/myco/command.my +26 -26
  13. data/lib/myco/core/BasicDecorators.my +62 -0
  14. data/lib/myco/core/BasicObject.my +12 -34
  15. data/lib/myco/core/Decorator.my +1 -0
  16. data/lib/myco/core/FileToplevel.my +0 -3
  17. data/lib/myco/core/Myco.my +4 -0
  18. data/lib/myco/core/Object.my +6 -4
  19. data/lib/myco/eval.rb +17 -18
  20. data/lib/myco/misc.rb +16 -0
  21. data/lib/myco/parser/ast/argument_assembly.rb +76 -0
  22. data/lib/myco/parser/ast/array_assembly.rb +57 -0
  23. data/lib/myco/parser/ast/branch_operator.rb +73 -0
  24. data/lib/myco/parser/ast/constant_access.rb +4 -18
  25. data/lib/myco/parser/ast/constant_define.rb +3 -3
  26. data/lib/myco/parser/ast/constant_reopen.rb +12 -13
  27. data/lib/myco/parser/ast/declare_category.rb +8 -6
  28. data/lib/myco/parser/ast/declare_decorator.rb +4 -4
  29. data/lib/myco/parser/ast/declare_file.rb +4 -4
  30. data/lib/myco/parser/ast/declare_meme.rb +53 -11
  31. data/lib/myco/parser/ast/declare_object.rb +9 -7
  32. data/lib/myco/parser/ast/declare_string.rb +5 -5
  33. data/lib/myco/parser/ast/invoke.rb +18 -36
  34. data/lib/myco/parser/ast/invoke_method.rb +28 -0
  35. data/lib/myco/parser/ast/local_variable_access_ambiguous.rb +9 -13
  36. data/lib/myco/parser/ast/misc.rb +128 -33
  37. data/lib/myco/parser/ast/myco_module_scope.rb +26 -0
  38. data/lib/myco/parser/ast/quest.rb +3 -3
  39. data/lib/myco/parser/ast/to_ruby/array_assembly.rb +15 -0
  40. data/lib/myco/parser/ast/to_ruby/block.rb +14 -0
  41. data/lib/myco/parser/ast/to_ruby/block_pass.rb +6 -0
  42. data/lib/myco/parser/ast/to_ruby/branch_operator.rb +9 -0
  43. data/lib/myco/parser/ast/to_ruby/constant_access.rb +10 -0
  44. data/lib/myco/parser/ast/to_ruby/constant_assignment.rb +6 -0
  45. data/lib/myco/parser/ast/to_ruby/constant_define.rb +9 -0
  46. data/lib/myco/parser/ast/to_ruby/constant_reopen.rb +6 -0
  47. data/lib/myco/parser/ast/to_ruby/declare_category.rb +7 -0
  48. data/lib/myco/parser/ast/to_ruby/declare_decorator.rb +6 -0
  49. data/lib/myco/parser/ast/to_ruby/declare_file.rb +6 -0
  50. data/lib/myco/parser/ast/to_ruby/declare_meme.rb +16 -0
  51. data/lib/myco/parser/ast/to_ruby/declare_object.rb +8 -0
  52. data/lib/myco/parser/ast/to_ruby/declare_string.rb +6 -0
  53. data/lib/myco/parser/ast/to_ruby/dynamic_string.rb +14 -0
  54. data/lib/myco/parser/ast/to_ruby/dynamic_symbol.rb +7 -0
  55. data/lib/myco/parser/ast/to_ruby/eval_expression.rb +6 -0
  56. data/lib/myco/parser/ast/to_ruby/false_literal.rb +6 -0
  57. data/lib/myco/parser/ast/to_ruby/hash_literal.rb +16 -0
  58. data/lib/myco/parser/ast/to_ruby/invoke.rb +6 -0
  59. data/lib/myco/parser/ast/to_ruby/invoke_method.rb +35 -0
  60. data/lib/myco/parser/ast/to_ruby/iter.rb +10 -0
  61. data/lib/myco/parser/ast/to_ruby/local_variable_access_ambiguous.rb +16 -0
  62. data/lib/myco/parser/ast/to_ruby/local_variable_assignment.rb +8 -0
  63. data/lib/myco/parser/ast/to_ruby/myco_module_scope.rb +8 -0
  64. data/lib/myco/parser/ast/to_ruby/null_literal.rb +6 -0
  65. data/lib/myco/parser/ast/to_ruby/parameters.rb +60 -0
  66. data/lib/myco/parser/ast/to_ruby/quest.rb +13 -0
  67. data/lib/myco/parser/ast/to_ruby/return.rb +7 -0
  68. data/lib/myco/parser/ast/to_ruby/scoped_constant.rb +11 -0
  69. data/lib/myco/parser/ast/to_ruby/self.rb +6 -0
  70. data/lib/myco/parser/ast/to_ruby/splat_value.rb +33 -0
  71. data/lib/myco/parser/ast/to_ruby/string_literal.rb +6 -0
  72. data/lib/myco/parser/ast/to_ruby/symbol_literal.rb +6 -0
  73. data/lib/myco/parser/ast/to_ruby/toplevel_constant.rb +11 -0
  74. data/lib/myco/parser/ast/to_ruby/true_literal.rb +6 -0
  75. data/lib/myco/parser/ast/to_ruby/void_literal.rb +6 -0
  76. data/lib/myco/parser/ast/to_ruby.rb +138 -0
  77. data/lib/myco/parser/ast.rb +6 -0
  78. data/lib/myco/parser/peg_parser.rb +361 -181
  79. data/lib/myco/parser.rb +27 -11
  80. data/lib/myco/tools/BasicCommand.my +42 -0
  81. data/lib/myco/tools/Generator.my +18 -0
  82. data/lib/myco/toolset.rb +0 -3
  83. data/lib/myco/version.rb +1 -4
  84. data/lib/myco.rb +2 -0
  85. metadata +230 -160
  86. data/lib/myco/parser/builder.output +0 -3995
  87. data/lib/myco/parser/builder.racc +0 -585
  88. data/lib/myco/parser/builder.rb +0 -1592
  89. data/lib/myco/parser/lexer.rb +0 -2306
  90. data/lib/myco/parser/lexer.rl +0 -393
  91. data/lib/myco/parser/lexer_char_classes.rl +0 -56
  92. data/lib/myco/parser/lexer_common.rb +0 -95
  93. data/lib/myco/parser/lexer_skeleton.rl +0 -154
  94. data/lib/myco/parser/peg_parser.kpeg +0 -759
  95. data/lib/myco/tools/OptionParser.my +0 -38
@@ -1,2306 +0,0 @@
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