hotcell 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,7 +8,7 @@ require 'racc/parser.rb'
8
8
  module Hotcell
9
9
  class Parser < Racc::Parser
10
10
 
11
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 194)
11
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 207)
12
12
  OPERATIONS = {
13
13
  '+' => :PLUS, '-' => :MINUS, '*' => :MULTIPLY, '**' => :POWER, '/' => :DIVIDE, '%' => :MODULO,
14
14
 
@@ -25,7 +25,10 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 194)
25
25
  NEWLINE_PRED = Set.new(BOPEN.values + OPERATIONS.values)
26
26
  NEWLINE_NEXT = Set.new(BCLOSE.values + [:NEWLINE])
27
27
 
28
- TAG_MODES = { '{{' => :normal, '{{!' => :silence }
28
+ TAG_MODES = {
29
+ '!' => :silence, '^' => :escape, 'e' => :escape,
30
+ '~' => :normal, 'r' => :normal
31
+ }
29
32
 
30
33
  def initialize source, options = {}
31
34
  @source = Source.wrap(source)
@@ -36,6 +39,7 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 194)
36
39
  @commands = options[:commands] || {}
37
40
  @blocks = options[:blocks] || {}
38
41
  @endblocks = Set.new(@blocks.keys.map { |identifer| "end#{identifer}" })
42
+ @escape_tags = !!options[:escape_tags]
39
43
 
40
44
  @substack = []
41
45
  @posstack = []
@@ -55,6 +59,11 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 194)
55
59
  reduced
56
60
  end
57
61
 
62
+ def tag_modes tag, default = :normal
63
+ mode = tag.gsub(/^{{/, '').first
64
+ TAG_MODES[mode] || default
65
+ end
66
+
58
67
  def parse
59
68
  if @tokens.size == 0
60
69
  build Joiner, :JOINER, position: 0
@@ -109,421 +118,443 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 194)
109
118
  ##### State transition tables begin ###
110
119
 
111
120
  racc_action_table = [
112
- 42, 10, 26, 106, 92, 141, 103, 92, 25, 24,
113
- 136, 103, 135, 104, 81, 82, 42, 59, 26, 134,
114
- 90, 60, 21, 22, 25, 24, 60, 132, 65, 7,
115
- 8, 104, 60, 131, 27, 87, 35, 36, 37, 38,
116
- 39, 40, 41, 43, 55, 127, 130, 106, 51, 52,
117
- 27, 105, 35, 36, 37, 38, 39, 40, 41, 43,
118
- 42, 129, 26, 7, 44, 60, 81, 82, 25, 24,
119
- 68, 142, 67, 69, 72, 63, 42, 61, 26, 81,
120
- 82, 49, 21, 22, 25, 24, 12, 14, 16, 106,
121
- 18, 81, 82, nil, 27, 68, 35, 36, 37, 38,
122
- 39, 40, 41, 43, 65, 81, 82, 81, 82, 68,
123
- 27, 68, 35, 36, 37, 38, 39, 40, 41, 43,
124
- 42, nil, 26, 51, 52, 7, 8, 50, 25, 24,
125
- nil, 81, 82, 81, 82, 68, 42, 68, 26, 67,
126
- 69, 72, 70, 71, 25, 24, 81, 82, 65, nil,
127
- 68, 7, 44, nil, 27, nil, 35, 36, 37, 38,
128
- 39, 40, 41, 43, 55, nil, nil, nil, nil, nil,
129
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
130
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
131
- nil, nil, nil, 81, 82, nil, 42, 68, 26, 67,
132
- 69, 72, 70, 71, 25, 24, nil, nil, 55, nil,
133
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
134
- 39, 40, 41, 43, 55, nil, nil, nil, nil, nil,
135
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
136
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
137
- nil, nil, nil, 81, 82, nil, 42, 68, 26, 67,
138
- 69, 72, 70, 71, 25, 24, nil, nil, 65, nil,
139
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
140
- 39, 40, 41, 43, 55, nil, nil, nil, nil, nil,
141
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
142
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
143
- nil, nil, nil, 81, 82, nil, 42, 68, 26, 67,
144
- 69, 72, 70, 71, 25, 24, nil, nil, 65, nil,
145
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
146
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
147
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
148
- 42, nil, 26, nil, nil, nil, 81, 82, 25, 24,
149
- 68, nil, 67, 69, 72, nil, 42, nil, 26, nil,
150
- nil, nil, nil, nil, 25, 24, nil, nil, 65, nil,
151
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
152
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
153
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
154
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
155
- nil, nil, nil, nil, nil, nil, 42, nil, 26, nil,
156
- nil, nil, nil, nil, 25, 24, nil, nil, 65, nil,
157
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
158
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
159
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
160
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
161
- nil, nil, nil, nil, nil, nil, 42, nil, 26, nil,
162
- nil, nil, nil, nil, 25, 24, nil, nil, 65, nil,
163
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
164
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
165
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
166
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
167
- nil, nil, nil, nil, nil, nil, 42, nil, 26, nil,
168
- nil, nil, nil, nil, 25, 24, nil, nil, 65, nil,
169
- nil, nil, nil, 88, 27, nil, 35, 36, 37, 38,
170
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
171
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
172
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
173
- nil, nil, nil, nil, nil, nil, 42, nil, 26, nil,
174
- nil, nil, 21, 22, 25, 24, 12, 14, 16, 93,
175
- 18, 95, 96, nil, 27, nil, 35, 36, 37, 38,
176
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
177
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
178
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
179
- nil, nil, nil, nil, nil, nil, 42, nil, 26, nil,
180
- nil, nil, nil, nil, 25, 24, nil, nil, 65, nil,
181
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
182
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
183
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
184
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
185
- nil, nil, nil, nil, nil, nil, 42, nil, 26, nil,
186
- nil, nil, nil, nil, 25, 24, nil, nil, 65, nil,
187
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
188
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
189
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
190
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
191
- nil, nil, nil, nil, nil, nil, 42, nil, 26, nil,
192
- nil, nil, nil, nil, 25, 24, nil, nil, 65, nil,
193
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
194
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
195
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
196
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
197
- nil, nil, nil, nil, nil, nil, 42, nil, 26, nil,
198
- nil, nil, nil, nil, 25, 24, nil, nil, 65, nil,
199
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
200
- 39, 40, 41, 43, 55, nil, nil, nil, nil, nil,
201
- 27, 110, 35, 36, 37, 38, 39, 40, 41, 43,
202
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
203
- nil, nil, nil, nil, nil, nil, 42, nil, 26, nil,
204
- nil, nil, nil, nil, 25, 24, nil, nil, 65, nil,
205
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
206
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
207
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
208
- 42, nil, 26, nil, nil, nil, nil, nil, 25, 24,
209
- nil, nil, nil, nil, nil, nil, 42, nil, 26, nil,
210
- nil, nil, nil, nil, 25, 24, nil, nil, 65, nil,
211
- nil, nil, nil, nil, 27, nil, 35, 36, 37, 38,
212
- 39, 40, 41, 43, 65, nil, nil, nil, nil, nil,
213
- 27, nil, 35, 36, 37, 38, 39, 40, 41, 43,
214
- 42, nil, 26, nil, nil, nil, 81, 82, 25, 24,
215
- 68, nil, 67, 69, 72, 70, 71, 75, 76, 77,
216
- 78, 79, 80, 73, 74, nil, nil, 14, 65, nil,
217
- 18, nil, nil, nil, 27, nil, 35, 36, 37, 38,
218
- 39, 40, 41, 43, 81, 82, nil, nil, 68, nil,
219
- 67, 69, 72, 70, 71, 75, 76, 77, 78, 79,
220
- 80, 73, 74, 81, 82, nil, nil, 68, nil, 67,
221
- 69, 72, 70, 71, 75, 76, 77, 78, 79, 80,
222
- 73, 74, 81, 82, nil, nil, 68, nil, 67, 69,
223
- 72, 70, 71, 75, 76, 77, 78, 79, 80, 73,
224
- 74, 81, 82, nil, nil, 68, nil, 67, 69, 72,
225
- 70, 71, 75, 76, 77, 78, 79, 80, 73, 74,
226
- 81, 82, nil, nil, 68, nil, 67, 69, 72, 70,
227
- 71, 75, 76, 77, 78, 79, 80, 73, 81, 82,
228
- nil, nil, 68, nil, 67, 69, 72, 70, 71, 75,
229
- 76, 77, 78, 79, 80, 81, 82, nil, nil, 68,
230
- nil, 67, 69, 72, 70, 71, 75, 76, 77, 78,
231
- -93, -93, 81, 82, nil, nil, 68, nil, 67, 69,
232
- 72, 70, 71, 75, 76, 77, 78, -93, -93 ]
121
+ 43, 10, 26, 108, 94, 134, 105, 60, 25, 24,
122
+ 82, 83, 144, 105, 69, 106, 94, 43, 133, 26,
123
+ 92, 61, 61, 21, 22, 25, 24, 135, 61, 66,
124
+ 7, 8, 52, 53, 139, 27, 89, 36, 37, 38,
125
+ 39, 40, 41, 42, 44, 132, 56, 82, 83, 82,
126
+ 83, 69, 27, 69, 36, 37, 38, 39, 40, 41,
127
+ 42, 44, 43, 138, 26, 82, 83, 137, 82, 83,
128
+ 25, 24, 69, 106, 68, 70, 73, 71, 72, 43,
129
+ 129, 26, 82, 83, 108, 21, 22, 25, 24, 12,
130
+ 14, 16, 61, 18, 82, 83, 145, 27, 69, 36,
131
+ 37, 38, 39, 40, 41, 42, 44, 107, 66, 52,
132
+ 53, 82, 83, 51, 27, 69, 36, 37, 38, 39,
133
+ 40, 41, 42, 44, 43, 64, 26, 7, 45, 7,
134
+ 8, 62, 25, 24, 7, 45, 50, 82, 83, 108,
135
+ 43, 69, 26, 68, 70, 73, 71, 72, 25, 24,
136
+ 82, 83, nil, 56, 69, nil, 68, 70, 73, 27,
137
+ nil, 36, 37, 38, 39, 40, 41, 42, 44, 66,
138
+ nil, nil, nil, nil, nil, 27, nil, 36, 37, 38,
139
+ 39, 40, 41, 42, 44, 43, nil, 26, nil, nil,
140
+ nil, nil, nil, 25, 24, nil, nil, nil, 82, 83,
141
+ nil, 43, 69, 26, 68, 70, 73, 71, 72, 25,
142
+ 24, 82, 83, nil, 56, 69, nil, 68, 70, 73,
143
+ 27, nil, 36, 37, 38, 39, 40, 41, 42, 44,
144
+ 56, nil, nil, nil, nil, nil, 27, nil, 36, 37,
145
+ 38, 39, 40, 41, 42, 44, 43, nil, 26, nil,
146
+ nil, nil, nil, nil, 25, 24, nil, nil, nil, 82,
147
+ 83, nil, 43, 69, 26, 68, 70, 73, 71, 72,
148
+ 25, 24, nil, nil, nil, 66, nil, nil, nil, nil,
149
+ nil, 27, nil, 36, 37, 38, 39, 40, 41, 42,
150
+ 44, 56, nil, nil, nil, nil, nil, 27, nil, 36,
151
+ 37, 38, 39, 40, 41, 42, 44, 43, nil, 26,
152
+ nil, nil, nil, nil, nil, 25, 24, nil, nil, nil,
153
+ nil, nil, nil, 43, nil, 26, nil, nil, nil, nil,
154
+ nil, 25, 24, nil, nil, nil, 66, nil, nil, nil,
155
+ nil, nil, 27, nil, 36, 37, 38, 39, 40, 41,
156
+ 42, 44, 66, nil, nil, nil, nil, nil, 27, nil,
157
+ 36, 37, 38, 39, 40, 41, 42, 44, 43, nil,
158
+ 26, nil, nil, nil, nil, nil, 25, 24, nil, nil,
159
+ nil, nil, nil, nil, 43, nil, 26, nil, nil, nil,
160
+ nil, nil, 25, 24, nil, nil, nil, 66, nil, nil,
161
+ nil, nil, nil, 27, nil, 36, 37, 38, 39, 40,
162
+ 41, 42, 44, 66, nil, nil, nil, nil, nil, 27,
163
+ nil, 36, 37, 38, 39, 40, 41, 42, 44, 43,
164
+ nil, 26, nil, nil, nil, nil, nil, 25, 24, nil,
165
+ nil, nil, nil, nil, nil, 43, nil, 26, nil, nil,
166
+ nil, nil, nil, 25, 24, nil, nil, nil, 66, nil,
167
+ nil, nil, nil, nil, 27, nil, 36, 37, 38, 39,
168
+ 40, 41, 42, 44, 66, nil, nil, nil, nil, nil,
169
+ 27, nil, 36, 37, 38, 39, 40, 41, 42, 44,
170
+ 43, nil, 26, nil, nil, nil, nil, nil, 25, 24,
171
+ nil, nil, nil, nil, nil, nil, 43, nil, 26, nil,
172
+ nil, nil, nil, nil, 25, 24, nil, nil, nil, 66,
173
+ nil, nil, nil, nil, nil, 27, nil, 36, 37, 38,
174
+ 39, 40, 41, 42, 44, 66, nil, nil, nil, nil,
175
+ nil, 27, nil, 36, 37, 38, 39, 40, 41, 42,
176
+ 44, 43, nil, 26, nil, nil, nil, nil, nil, 25,
177
+ 24, nil, nil, nil, nil, nil, nil, 43, nil, 26,
178
+ nil, nil, nil, nil, nil, 25, 24, nil, nil, nil,
179
+ 66, nil, nil, nil, nil, 90, 27, nil, 36, 37,
180
+ 38, 39, 40, 41, 42, 44, 66, nil, nil, nil,
181
+ nil, nil, 27, nil, 36, 37, 38, 39, 40, 41,
182
+ 42, 44, 43, nil, 26, nil, nil, nil, nil, nil,
183
+ 25, 24, nil, nil, nil, nil, nil, nil, nil, 43,
184
+ nil, 26, nil, nil, nil, 21, 22, 25, 24, 12,
185
+ 14, 16, 95, 18, 97, 98, nil, 27, nil, 36,
186
+ 37, 38, 39, 40, 41, 42, 44, nil, 66, nil,
187
+ nil, nil, nil, nil, 27, nil, 36, 37, 38, 39,
188
+ 40, 41, 42, 44, 43, nil, 26, nil, nil, nil,
189
+ nil, nil, 25, 24, nil, nil, nil, nil, nil, nil,
190
+ 43, nil, 26, nil, nil, nil, nil, nil, 25, 24,
191
+ nil, nil, nil, 66, nil, nil, nil, nil, nil, 27,
192
+ nil, 36, 37, 38, 39, 40, 41, 42, 44, 66,
193
+ nil, nil, nil, nil, nil, 27, nil, 36, 37, 38,
194
+ 39, 40, 41, 42, 44, 43, nil, 26, nil, nil,
195
+ nil, nil, nil, 25, 24, nil, nil, nil, nil, nil,
196
+ nil, 43, nil, 26, nil, nil, nil, nil, nil, 25,
197
+ 24, nil, nil, nil, 66, nil, nil, nil, nil, nil,
198
+ 27, nil, 36, 37, 38, 39, 40, 41, 42, 44,
199
+ 66, nil, nil, nil, nil, nil, 27, nil, 36, 37,
200
+ 38, 39, 40, 41, 42, 44, 43, nil, 26, nil,
201
+ nil, nil, nil, nil, 25, 24, nil, nil, nil, nil,
202
+ nil, nil, 43, nil, 26, nil, nil, nil, nil, nil,
203
+ 25, 24, nil, nil, nil, 66, nil, nil, nil, nil,
204
+ nil, 27, nil, 36, 37, 38, 39, 40, 41, 42,
205
+ 44, 66, nil, nil, nil, nil, nil, 27, nil, 36,
206
+ 37, 38, 39, 40, 41, 42, 44, 43, nil, 26,
207
+ nil, nil, nil, nil, nil, 25, 24, nil, nil, nil,
208
+ nil, nil, nil, 43, nil, 26, nil, nil, nil, nil,
209
+ nil, 25, 24, nil, nil, 14, 66, nil, 18, nil,
210
+ nil, nil, 27, nil, 36, 37, 38, 39, 40, 41,
211
+ 42, 44, 66, nil, nil, nil, nil, nil, 27, nil,
212
+ 36, 37, 38, 39, 40, 41, 42, 44, 43, nil,
213
+ 26, nil, nil, nil, nil, nil, 25, 24, nil, nil,
214
+ nil, nil, nil, nil, 43, nil, 26, nil, nil, nil,
215
+ nil, nil, 25, 24, nil, nil, nil, 66, nil, nil,
216
+ nil, nil, nil, 27, nil, 36, 37, 38, 39, 40,
217
+ 41, 42, 44, 66, nil, nil, nil, nil, nil, 27,
218
+ nil, 36, 37, 38, 39, 40, 41, 42, 44, 43,
219
+ nil, 26, nil, nil, nil, nil, nil, 25, 24, nil,
220
+ nil, nil, nil, nil, nil, 43, nil, 26, nil, nil,
221
+ nil, nil, nil, 25, 24, nil, nil, nil, 66, nil,
222
+ nil, nil, nil, nil, 27, nil, 36, 37, 38, 39,
223
+ 40, 41, 42, 44, 66, nil, nil, nil, nil, nil,
224
+ 27, nil, 36, 37, 38, 39, 40, 41, 42, 44,
225
+ 43, nil, 26, nil, nil, nil, nil, nil, 25, 24,
226
+ nil, nil, nil, nil, nil, nil, 43, nil, 26, nil,
227
+ nil, nil, nil, nil, 25, 24, nil, nil, nil, 66,
228
+ nil, nil, nil, nil, nil, 27, nil, 36, 37, 38,
229
+ 39, 40, 41, 42, 44, 56, nil, nil, nil, nil,
230
+ nil, 27, 112, 36, 37, 38, 39, 40, 41, 42,
231
+ 44, 82, 83, nil, nil, 69, nil, 68, 70, 73,
232
+ 71, 72, 76, 77, 78, 79, 80, 81, 74, 75,
233
+ -95, 82, 83, nil, nil, 69, nil, 68, 70, 73,
234
+ 71, 72, 76, 77, 78, 79, 80, 81, 74, 75,
235
+ 84, 82, 83, nil, nil, 69, nil, 68, 70, 73,
236
+ 71, 72, 76, 77, 78, 79, 80, 81, 74, 75,
237
+ 84, 82, 83, nil, nil, 69, nil, 68, 70, 73,
238
+ 71, 72, 76, 77, 78, 79, 80, 81, 74, 75,
239
+ 84, 82, 83, nil, nil, 69, nil, 68, 70, 73,
240
+ 71, 72, 76, 77, 78, 79, 80, 81, 74, 75,
241
+ 84, 82, 83, nil, nil, 69, nil, 68, 70, 73,
242
+ 71, 72, 76, 77, 78, 79, 80, 81, 74, 75,
243
+ 84, 82, 83, nil, nil, 69, nil, 68, 70, 73,
244
+ 71, 72, 76, 77, 78, 79, 80, 81, 74, 82,
245
+ 83, nil, nil, 69, nil, 68, 70, 73, 71, 72,
246
+ 76, 77, 78, 79, -95, -95, 82, 83, nil, nil,
247
+ 69, nil, 68, 70, 73, 71, 72, 76, 77, 78,
248
+ 79, -95, -95, 82, 83, nil, nil, 69, nil, 68,
249
+ 70, 73, 71, 72, 76, 77, 78, 79, 80, 81 ]
233
250
 
234
251
  racc_action_check = [
235
- 27, 1, 27, 91, 43, 111, 65, 106, 27, 27,
236
- 97, 55, 96, 55, 85, 85, 93, 16, 93, 94,
237
- 43, 65, 27, 27, 93, 93, 55, 91, 27, 1,
238
- 1, 92, 16, 89, 27, 27, 27, 27, 27, 27,
239
- 27, 27, 27, 27, 93, 81, 89, 57, 86, 86,
240
- 93, 56, 93, 93, 93, 93, 93, 93, 93, 93,
241
- 8, 86, 8, 9, 9, 127, 116, 116, 8, 8,
242
- 116, 128, 116, 116, 116, 20, 103, 17, 103, 84,
243
- 84, 10, 8, 8, 103, 103, 8, 8, 8, 139,
244
- 8, 117, 117, nil, 8, 117, 8, 8, 8, 8,
245
- 8, 8, 8, 8, 103, 114, 114, 83, 83, 114,
246
- 103, 83, 103, 103, 103, 103, 103, 103, 103, 103,
247
- 104, nil, 104, 13, 13, 0, 0, 13, 104, 104,
248
- nil, 113, 113, 122, 122, 113, 105, 122, 105, 122,
249
- 122, 122, 122, 122, 105, 105, 112, 112, 104, nil,
250
- 112, 45, 45, nil, 104, nil, 104, 104, 104, 104,
251
- 104, 104, 104, 104, 105, nil, nil, nil, nil, nil,
252
- 105, nil, 105, 105, 105, 105, 105, 105, 105, 105,
253
- 14, nil, 14, nil, nil, nil, nil, nil, 14, 14,
254
- nil, nil, nil, 123, 123, nil, 82, 123, 82, 123,
255
- 123, 123, 123, 123, 82, 82, nil, nil, 14, nil,
256
- nil, nil, nil, nil, 14, nil, 14, 14, 14, 14,
257
- 14, 14, 14, 14, 82, nil, nil, nil, nil, nil,
258
- 82, nil, 82, 82, 82, 82, 82, 82, 82, 82,
259
- 80, nil, 80, nil, nil, nil, nil, nil, 80, 80,
260
- nil, nil, nil, 120, 120, nil, 18, 120, 18, 120,
261
- 120, 120, 120, 120, 18, 18, nil, nil, 80, nil,
262
- nil, nil, nil, nil, 80, nil, 80, 80, 80, 80,
263
- 80, 80, 80, 80, 18, nil, nil, nil, nil, nil,
264
- 18, nil, 18, 18, 18, 18, 18, 18, 18, 18,
265
- 131, nil, 131, nil, nil, nil, nil, nil, 131, 131,
266
- nil, nil, nil, 121, 121, nil, 21, 121, 21, 121,
267
- 121, 121, 121, 121, 21, 21, nil, nil, 131, nil,
268
- nil, nil, nil, nil, 131, nil, 131, 131, 131, 131,
269
- 131, 131, 131, 131, 21, nil, nil, nil, nil, nil,
270
- 21, nil, 21, 21, 21, 21, 21, 21, 21, 21,
271
- 22, nil, 22, nil, nil, nil, 115, 115, 22, 22,
272
- 115, nil, 115, 115, 115, nil, 79, nil, 79, nil,
273
- nil, nil, nil, nil, 79, 79, nil, nil, 22, nil,
274
- nil, nil, nil, nil, 22, nil, 22, 22, 22, 22,
275
- 22, 22, 22, 22, 79, nil, nil, nil, nil, nil,
276
- 79, nil, 79, 79, 79, 79, 79, 79, 79, 79,
277
- 24, nil, 24, nil, nil, nil, nil, nil, 24, 24,
278
- nil, nil, nil, nil, nil, nil, 25, nil, 25, nil,
279
- nil, nil, nil, nil, 25, 25, nil, nil, 24, nil,
252
+ 27, 1, 27, 93, 44, 91, 66, 16, 27, 27,
253
+ 114, 114, 113, 56, 114, 56, 108, 95, 91, 95,
254
+ 44, 66, 16, 27, 27, 95, 95, 93, 56, 27,
255
+ 1, 1, 88, 88, 99, 27, 27, 27, 27, 27,
256
+ 27, 27, 27, 27, 27, 88, 95, 116, 116, 85,
257
+ 85, 116, 95, 85, 95, 95, 95, 95, 95, 95,
258
+ 95, 95, 8, 98, 8, 87, 87, 96, 122, 122,
259
+ 8, 8, 122, 94, 122, 122, 122, 122, 122, 106,
260
+ 82, 106, 86, 86, 58, 8, 8, 106, 106, 8,
261
+ 8, 8, 129, 8, 119, 119, 130, 8, 119, 8,
262
+ 8, 8, 8, 8, 8, 8, 8, 57, 106, 13,
263
+ 13, 115, 115, 13, 106, 115, 106, 106, 106, 106,
264
+ 106, 106, 106, 106, 107, 20, 107, 9, 9, 0,
265
+ 0, 17, 107, 107, 46, 46, 10, 123, 123, 142,
266
+ 84, 123, 84, 123, 123, 123, 123, 123, 84, 84,
267
+ 117, 117, nil, 107, 117, nil, 117, 117, 117, 107,
268
+ nil, 107, 107, 107, 107, 107, 107, 107, 107, 84,
269
+ nil, nil, nil, nil, nil, 84, nil, 84, 84, 84,
270
+ 84, 84, 84, 84, 84, 14, nil, 14, nil, nil,
271
+ nil, nil, nil, 14, 14, nil, nil, nil, 124, 124,
272
+ nil, 83, 124, 83, 124, 124, 124, 124, 124, 83,
273
+ 83, 118, 118, nil, 14, 118, nil, 118, 118, 118,
274
+ 14, nil, 14, 14, 14, 14, 14, 14, 14, 14,
275
+ 83, nil, nil, nil, nil, nil, 83, nil, 83, 83,
276
+ 83, 83, 83, 83, 83, 83, 81, nil, 81, nil,
277
+ nil, nil, nil, nil, 81, 81, nil, nil, nil, 125,
278
+ 125, nil, 18, 125, 18, 125, 125, 125, 125, 125,
279
+ 18, 18, nil, nil, nil, 81, nil, nil, nil, nil,
280
+ nil, 81, nil, 81, 81, 81, 81, 81, 81, 81,
281
+ 81, 18, nil, nil, nil, nil, nil, 18, nil, 18,
282
+ 18, 18, 18, 18, 18, 18, 18, 134, nil, 134,
283
+ nil, nil, nil, nil, nil, 134, 134, nil, nil, nil,
284
+ nil, nil, nil, 21, nil, 21, nil, nil, nil, nil,
285
+ nil, 21, 21, nil, nil, nil, 134, nil, nil, nil,
286
+ nil, nil, 134, nil, 134, 134, 134, 134, 134, 134,
287
+ 134, 134, 21, nil, nil, nil, nil, nil, 21, nil,
288
+ 21, 21, 21, 21, 21, 21, 21, 21, 22, nil,
289
+ 22, nil, nil, nil, nil, nil, 22, 22, nil, nil,
290
+ nil, nil, nil, nil, 80, nil, 80, nil, nil, nil,
291
+ nil, nil, 80, 80, nil, nil, nil, 22, nil, nil,
292
+ nil, nil, nil, 22, nil, 22, 22, 22, 22, 22,
293
+ 22, 22, 22, 80, nil, nil, nil, nil, nil, 80,
294
+ nil, 80, 80, 80, 80, 80, 80, 80, 80, 24,
295
+ nil, 24, nil, nil, nil, nil, nil, 24, 24, nil,
296
+ nil, nil, nil, nil, nil, 25, nil, 25, nil, nil,
297
+ nil, nil, nil, 25, 25, nil, nil, nil, 24, nil,
280
298
  nil, nil, nil, nil, 24, nil, 24, 24, 24, 24,
281
299
  24, 24, 24, 24, 25, nil, nil, nil, nil, nil,
282
300
  25, nil, 25, 25, 25, 25, 25, 25, 25, 25,
283
301
  26, nil, 26, nil, nil, nil, nil, nil, 26, 26,
284
- nil, nil, nil, nil, nil, nil, 78, nil, 78, nil,
285
- nil, nil, nil, nil, 78, 78, nil, nil, 26, nil,
286
- nil, nil, nil, nil, 26, nil, 26, 26, 26, 26,
287
- 26, 26, 26, 26, 78, nil, nil, nil, nil, nil,
288
- 78, nil, 78, 78, 78, 78, 78, 78, 78, 78,
289
- 42, nil, 42, nil, nil, nil, nil, nil, 42, 42,
290
- nil, nil, nil, nil, nil, nil, 77, nil, 77, nil,
291
- nil, nil, nil, nil, 77, 77, nil, nil, 42, nil,
292
- nil, nil, nil, 42, 42, nil, 42, 42, 42, 42,
293
- 42, 42, 42, 42, 77, nil, nil, nil, nil, nil,
302
+ nil, nil, nil, nil, nil, nil, 105, nil, 105, nil,
303
+ nil, nil, nil, nil, 105, 105, nil, nil, nil, 26,
304
+ nil, nil, nil, nil, nil, 26, nil, 26, 26, 26,
305
+ 26, 26, 26, 26, 26, 105, nil, nil, nil, nil,
306
+ nil, 105, nil, 105, 105, 105, 105, 105, 105, 105,
307
+ 105, 43, nil, 43, nil, nil, nil, nil, nil, 43,
308
+ 43, nil, nil, nil, nil, nil, nil, 79, nil, 79,
309
+ nil, nil, nil, nil, nil, 79, 79, nil, nil, nil,
310
+ 43, nil, nil, nil, nil, 43, 43, nil, 43, 43,
311
+ 43, 43, 43, 43, 43, 43, 79, nil, nil, nil,
312
+ nil, nil, 79, nil, 79, 79, 79, 79, 79, 79,
313
+ 79, 79, 45, nil, 45, nil, nil, nil, nil, nil,
314
+ 45, 45, nil, nil, nil, nil, nil, nil, nil, 78,
315
+ nil, 78, nil, nil, nil, 45, 45, 78, 78, 45,
316
+ 45, 45, 45, 45, 45, 45, nil, 45, nil, 45,
317
+ 45, 45, 45, 45, 45, 45, 45, nil, 78, nil,
318
+ nil, nil, nil, nil, 78, nil, 78, 78, 78, 78,
319
+ 78, 78, 78, 78, 52, nil, 52, nil, nil, nil,
320
+ nil, nil, 52, 52, nil, nil, nil, nil, nil, nil,
321
+ 53, nil, 53, nil, nil, nil, nil, nil, 53, 53,
322
+ nil, nil, nil, 52, nil, nil, nil, nil, nil, 52,
323
+ nil, 52, 52, 52, 52, 52, 52, 52, 52, 53,
324
+ nil, nil, nil, nil, nil, 53, nil, 53, 53, 53,
325
+ 53, 53, 53, 53, 53, 77, nil, 77, nil, nil,
326
+ nil, nil, nil, 77, 77, nil, nil, nil, nil, nil,
327
+ nil, 76, nil, 76, nil, nil, nil, nil, nil, 76,
328
+ 76, nil, nil, nil, 77, nil, nil, nil, nil, nil,
294
329
  77, nil, 77, 77, 77, 77, 77, 77, 77, 77,
295
- 44, nil, 44, nil, nil, nil, nil, nil, 44, 44,
296
- nil, nil, nil, nil, nil, nil, 76, nil, 76, nil,
297
- nil, nil, 44, 44, 76, 76, 44, 44, 44, 44,
298
- 44, 44, 44, nil, 44, nil, 44, 44, 44, 44,
299
- 44, 44, 44, 44, 76, nil, nil, nil, nil, nil,
300
- 76, nil, 76, 76, 76, 76, 76, 76, 76, 76,
301
- 51, nil, 51, nil, nil, nil, nil, nil, 51, 51,
302
- nil, nil, nil, nil, nil, nil, 52, nil, 52, nil,
303
- nil, nil, nil, nil, 52, 52, nil, nil, 51, nil,
304
- nil, nil, nil, nil, 51, nil, 51, 51, 51, 51,
305
- 51, 51, 51, 51, 52, nil, nil, nil, nil, nil,
306
- 52, nil, 52, 52, 52, 52, 52, 52, 52, 52,
307
- 75, nil, 75, nil, nil, nil, nil, nil, 75, 75,
308
- nil, nil, nil, nil, nil, nil, 74, nil, 74, nil,
309
- nil, nil, nil, nil, 74, 74, nil, nil, 75, nil,
310
- nil, nil, nil, nil, 75, nil, 75, 75, 75, 75,
311
- 75, 75, 75, 75, 74, nil, nil, nil, nil, nil,
312
- 74, nil, 74, 74, 74, 74, 74, 74, 74, 74,
313
- 73, nil, 73, nil, nil, nil, nil, nil, 73, 73,
314
- nil, nil, nil, nil, nil, nil, 72, nil, 72, nil,
315
- nil, nil, nil, nil, 72, 72, nil, nil, 73, nil,
316
- nil, nil, nil, nil, 73, nil, 73, 73, 73, 73,
317
- 73, 73, 73, 73, 72, nil, nil, nil, nil, nil,
318
- 72, nil, 72, 72, 72, 72, 72, 72, 72, 72,
319
- 70, nil, 70, nil, nil, nil, nil, nil, 70, 70,
320
- nil, nil, nil, nil, nil, nil, 60, nil, 60, nil,
321
- nil, nil, nil, nil, 60, 60, nil, nil, 70, nil,
322
- nil, nil, nil, nil, 70, nil, 70, 70, 70, 70,
323
- 70, 70, 70, 70, 60, nil, nil, nil, nil, nil,
324
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
330
+ 76, nil, nil, nil, nil, nil, 76, nil, 76, 76,
331
+ 76, 76, 76, 76, 76, 76, 75, nil, 75, nil,
332
+ nil, nil, nil, nil, 75, 75, nil, nil, nil, nil,
333
+ nil, nil, 74, nil, 74, nil, nil, nil, nil, nil,
334
+ 74, 74, nil, nil, nil, 75, nil, nil, nil, nil,
335
+ nil, 75, nil, 75, 75, 75, 75, 75, 75, 75,
336
+ 75, 74, nil, nil, nil, nil, nil, 74, nil, 74,
337
+ 74, 74, 74, 74, 74, 74, 74, 60, nil, 60,
338
+ nil, nil, nil, nil, nil, 60, 60, nil, nil, nil,
339
+ nil, nil, nil, 72, nil, 72, nil, nil, nil, nil,
340
+ nil, 72, 72, nil, nil, 60, 60, nil, 60, nil,
341
+ nil, nil, 60, nil, 60, 60, 60, 60, 60, 60,
342
+ 60, 60, 72, nil, nil, nil, nil, nil, 72, nil,
343
+ 72, 72, 72, 72, 72, 72, 72, 72, 73, nil,
344
+ 73, nil, nil, nil, nil, nil, 73, 73, nil, nil,
345
+ nil, nil, nil, nil, 68, nil, 68, nil, nil, nil,
346
+ nil, nil, 68, 68, nil, nil, nil, 73, nil, nil,
347
+ nil, nil, nil, 73, nil, 73, 73, 73, 73, 73,
348
+ 73, 73, 73, 68, nil, nil, nil, nil, nil, 68,
349
+ nil, 68, 68, 68, 68, 68, 68, 68, 68, 69,
350
+ nil, 69, nil, nil, nil, nil, nil, 69, 69, nil,
351
+ nil, nil, nil, nil, nil, 70, nil, 70, nil, nil,
352
+ nil, nil, nil, 70, 70, nil, nil, nil, 69, nil,
353
+ nil, nil, nil, nil, 69, nil, 69, 69, 69, 69,
354
+ 69, 69, 69, 69, 70, nil, nil, nil, nil, nil,
355
+ 70, nil, 70, 70, 70, 70, 70, 70, 70, 70,
325
356
  71, nil, 71, nil, nil, nil, nil, nil, 71, 71,
326
- nil, nil, nil, nil, nil, nil, 67, nil, 67, nil,
327
- nil, nil, nil, nil, 67, 67, nil, nil, 71, nil,
328
- nil, nil, nil, nil, 71, nil, 71, 71, 71, 71,
329
- 71, 71, 71, 71, 67, nil, nil, nil, nil, nil,
330
- 67, nil, 67, 67, 67, 67, 67, 67, 67, 67,
331
- 68, nil, 68, nil, nil, nil, nil, nil, 68, 68,
332
- nil, nil, nil, nil, nil, nil, 69, nil, 69, nil,
333
- nil, nil, nil, nil, 69, 69, nil, nil, 68, nil,
334
- nil, nil, nil, nil, 68, nil, 68, 68, 68, 68,
335
- 68, 68, 68, 68, 69, nil, nil, nil, nil, nil,
336
- 69, nil, 69, 69, 69, 69, 69, 69, 69, 69,
337
- 59, nil, 59, nil, nil, nil, 137, 137, 59, 59,
338
- 137, nil, 137, 137, 137, 137, 137, 137, 137, 137,
339
- 137, 137, 137, 137, 137, nil, nil, 59, 59, nil,
340
- 59, nil, nil, nil, 59, nil, 59, 59, 59, 59,
341
- 59, 59, 59, 59, 138, 138, nil, nil, 138, nil,
342
- 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
343
- 138, 138, 138, 54, 54, nil, nil, 54, nil, 54,
344
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
345
- 54, 54, 109, 109, nil, nil, 109, nil, 109, 109,
346
- 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
347
- 109, 23, 23, nil, nil, 23, nil, 23, 23, 23,
357
+ nil, nil, nil, nil, nil, nil, 61, nil, 61, nil,
358
+ nil, nil, nil, nil, 61, 61, nil, nil, nil, 71,
359
+ nil, nil, nil, nil, nil, 71, nil, 71, 71, 71,
360
+ 71, 71, 71, 71, 71, 61, nil, nil, nil, nil,
361
+ nil, 61, 61, 61, 61, 61, 61, 61, 61, 61,
362
+ 61, 131, 131, nil, nil, 131, nil, 131, 131, 131,
363
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
364
+ 131, 141, 141, nil, nil, 141, nil, 141, 141, 141,
365
+ 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
366
+ 141, 23, 23, nil, nil, 23, nil, 23, 23, 23,
348
367
  23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
349
- 119, 119, nil, nil, 119, nil, 119, 119, 119, 119,
350
- 119, 119, 119, 119, 119, 119, 119, 119, 118, 118,
351
- nil, nil, 118, nil, 118, 118, 118, 118, 118, 118,
352
- 118, 118, 118, 118, 118, 125, 125, nil, nil, 125,
353
- nil, 125, 125, 125, 125, 125, 125, 125, 125, 125,
354
- 125, 125, 124, 124, nil, nil, 124, nil, 124, 124,
355
- 124, 124, 124, 124, 124, 124, 124, 124, 124 ]
368
+ 23, 111, 111, nil, nil, 111, nil, 111, 111, 111,
369
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
370
+ 111, 140, 140, nil, nil, 140, nil, 140, 140, 140,
371
+ 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
372
+ 140, 55, 55, nil, nil, 55, nil, 55, 55, 55,
373
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
374
+ 55, 121, 121, nil, nil, 121, nil, 121, 121, 121,
375
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 126,
376
+ 126, nil, nil, 126, nil, 126, 126, 126, 126, 126,
377
+ 126, 126, 126, 126, 126, 126, 127, 127, nil, nil,
378
+ 127, nil, 127, 127, 127, 127, 127, 127, 127, 127,
379
+ 127, 127, 127, 120, 120, nil, nil, 120, nil, 120,
380
+ 120, 120, 120, 120, 120, 120, 120, 120, 120, 120 ]
356
381
 
357
382
  racc_action_pointer = [
358
- 97, 1, nil, nil, nil, nil, nil, nil, 56, 35,
359
- 81, nil, nil, 97, 176, nil, -6, 47, 252, nil,
360
- 45, 312, 356, 1118, 416, 432, 476, -4, nil, nil,
383
+ 100, 1, nil, nil, nil, nil, nil, nil, 58, 98,
384
+ 136, nil, nil, 82, 181, nil, -17, 100, 258, nil,
385
+ 94, 319, 364, 1138, 425, 441, 486, -4, nil, nil,
361
386
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
362
- nil, nil, 536, -28, 596, 123, nil, nil, nil, nil,
363
- nil, 656, 672, nil, 1080, -12, 27, 23, nil, 1016,
364
- 852, nil, nil, nil, nil, -17, nil, 912, 956, 972,
365
- 836, 896, 792, 776, 732, 716, 612, 552, 492, 372,
366
- 236, 13, 192, 104, 76, 11, 22, nil, nil, 9,
367
- nil, -21, 6, 12, -11, nil, -22, -20, nil, nil,
368
- nil, nil, nil, 72, 116, 132, -25, nil, nil, 1099,
369
- nil, -34, 143, 128, 102, 363, 63, 88, 1155, 1137,
370
- 250, 310, 130, 190, 1189, 1172, nil, 27, 34, nil,
371
- nil, 296, nil, nil, nil, nil, nil, 1023, 1061, 65,
372
- nil, nil, nil ]
387
+ nil, nil, nil, 547, -29, 608, 105, nil, nil, nil,
388
+ nil, nil, 670, 686, nil, 1198, -11, 82, 59, nil,
389
+ 853, 1052, nil, nil, nil, nil, -18, nil, 930, 975,
390
+ 991, 1036, 869, 914, 808, 792, 747, 731, 625, 563,
391
+ 380, 242, 47, 197, 136, 46, 79, 62, 5, nil,
392
+ nil, -20, nil, -22, 47, 13, 36, nil, 28, 3,
393
+ nil, nil, nil, nil, nil, 502, 75, 120, -17, nil,
394
+ nil, 1158, nil, -28, 7, 108, 44, 147, 208, 91,
395
+ 1270, 1218, 65, 134, 195, 256, 1236, 1253, nil, 53,
396
+ 58, 1098, nil, nil, 303, nil, nil, nil, nil, nil,
397
+ 1178, 1118, 114, nil, nil, nil ]
373
398
 
374
399
  racc_action_default = [
375
- -93, -93, -2, -3, -4, -5, -6, -7, -93, -93,
376
- -93, -1, -8, -93, -10, -12, -90, -93, -18, -20,
377
- -93, -36, -40, -41, -93, -93, -93, -93, -64, -65,
400
+ -95, -95, -2, -3, -4, -5, -6, -7, -95, -95,
401
+ -95, -1, -8, -95, -10, -12, -92, -95, -18, -20,
402
+ -95, -36, -40, -41, -95, -95, -95, -95, -64, -65,
378
403
  -66, -67, -68, -69, -70, -71, -72, -73, -74, -75,
379
- -76, -77, -93, -93, -93, -93, -29, -30, -31, 143,
380
- -9, -34, -38, -11, -81, -90, -88, -89, -85, -93,
381
- -93, -14, -19, -25, -35, -90, -39, -93, -93, -93,
382
- -93, -93, -93, -93, -93, -93, -93, -93, -93, -93,
383
- -93, -93, -93, -48, -49, -58, -93, -62, -78, -93,
384
- -82, -93, -93, -15, -93, -22, -24, -93, -27, -28,
385
- -32, -33, -37, -93, -93, -93, -93, -13, -21, -59,
386
- -91, -93, -42, -43, -44, -45, -46, -47, -50, -51,
387
- -52, -53, -54, -55, -56, -57, -60, -90, -93, -63,
388
- -79, -93, -83, -16, -17, -23, -26, -86, -80, -87,
389
- -84, -92, -61 ]
404
+ -76, -77, -78, -95, -95, -95, -95, -29, -30, -31,
405
+ 146, -9, -34, -38, -11, -83, -92, -90, -91, -87,
406
+ -95, -95, -14, -19, -25, -35, -92, -39, -95, -95,
407
+ -95, -95, -95, -95, -95, -95, -95, -95, -95, -95,
408
+ -95, -95, -95, -95, -95, -48, -49, -58, -95, -62,
409
+ -80, -95, -84, -95, -95, -15, -95, -22, -24, -95,
410
+ -27, -28, -32, -33, -37, -95, -95, -95, -95, -13,
411
+ -21, -59, -93, -95, -42, -43, -44, -45, -46, -47,
412
+ -50, -51, -52, -53, -54, -55, -56, -57, -60, -92,
413
+ -95, -79, -63, -81, -95, -85, -16, -17, -23, -26,
414
+ -88, -82, -89, -86, -94, -61 ]
390
415
 
391
416
  racc_goto_table = [
392
- 54, 53, 47, 48, 54, 62, 2, 11, 91, 97,
393
- 83, 84, 85, 64, 66, 46, 108, 94, 45, 86,
394
- 107, 126, 89, 1, 140, nil, nil, nil, 54, nil,
395
- nil, nil, nil, nil, nil, nil, nil, nil, 99, 100,
396
- nil, nil, nil, 101, 102, 109, 54, 111, nil, nil,
397
- nil, 98, nil, 112, 113, 114, 115, 116, 117, 118,
398
- 119, 120, 121, 122, 123, 124, 125, nil, 54, 128,
399
- 139, nil, nil, nil, nil, nil, nil, nil, nil, 54,
400
- 133, nil, nil, nil, nil, nil, nil, nil, nil, 109,
401
- 137, 138, nil, nil, nil, nil, nil, nil, nil, nil,
417
+ 55, 48, 54, 49, 55, 93, 63, 2, 11, 99,
418
+ 85, 86, 87, 65, 67, 110, 47, 96, 46, 88,
419
+ 109, 128, 91, 1, 143, nil, nil, nil, nil, 55,
420
+ nil, nil, nil, nil, nil, nil, nil, nil, 101, nil,
421
+ 102, nil, nil, nil, 103, 104, 111, 55, nil, 113,
422
+ nil, nil, nil, 100, 114, 115, 116, 117, 118, 119,
423
+ 120, 121, 122, 123, 124, 125, 126, 127, 142, 55,
424
+ 131, 130, nil, nil, nil, nil, nil, nil, nil, nil,
425
+ nil, 55, nil, 136, nil, nil, nil, nil, nil, nil,
426
+ nil, 111, 140, 141, nil, nil, nil, nil, nil, nil,
427
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
402
428
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
403
- nil, nil, nil, nil, nil, nil, nil, 138 ]
429
+ 141 ]
404
430
 
405
431
  racc_goto_check = [
406
- 19, 9, 12, 17, 19, 9, 2, 2, 28, 15,
407
- 19, 19, 19, 7, 7, 2, 13, 11, 18, 7,
408
- 8, 20, 27, 1, 29, nil, nil, nil, 19, nil,
409
- nil, nil, nil, nil, nil, nil, nil, nil, 12, 17,
410
- nil, nil, nil, 7, 7, 19, 19, 9, nil, nil,
411
- nil, 2, nil, 19, 19, 19, 19, 19, 19, 19,
412
- 19, 19, 19, 19, 19, 19, 19, nil, 19, 9,
413
- 28, nil, nil, nil, nil, nil, nil, nil, nil, 19,
414
- 9, nil, nil, nil, nil, nil, nil, nil, nil, 19,
415
- 19, 19, nil, nil, nil, nil, nil, nil, nil, nil,
432
+ 19, 12, 9, 17, 19, 29, 9, 2, 2, 15,
433
+ 19, 19, 19, 7, 7, 13, 2, 11, 18, 7,
434
+ 8, 20, 28, 1, 30, nil, nil, nil, nil, 19,
435
+ nil, nil, nil, nil, nil, nil, nil, nil, 12, nil,
436
+ 17, nil, nil, nil, 7, 7, 19, 19, nil, 9,
437
+ nil, nil, nil, 2, 19, 19, 19, 19, 19, 19,
438
+ 19, 19, 19, 19, 19, 19, 19, 19, 29, 19,
439
+ 19, 9, nil, nil, nil, nil, nil, nil, nil, nil,
440
+ nil, 19, nil, 9, nil, nil, nil, nil, nil, nil,
441
+ nil, 19, 19, 19, nil, nil, nil, nil, nil, nil,
416
442
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
417
- nil, nil, nil, nil, nil, nil, nil, 19 ]
443
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
444
+ 19 ]
418
445
 
419
446
  racc_goto_pointer = [
420
- nil, 23, 6, nil, nil, nil, nil, -8, -39, -13,
421
- nil, -27, -7, -43, nil, -35, nil, -6, 9, -14,
422
- -60, nil, nil, nil, nil, nil, nil, -20, -35, -82 ]
447
+ nil, 23, 7, nil, nil, nil, nil, -8, -40, -12,
448
+ nil, -28, -8, -45, nil, -36, nil, -6, 9, -14,
449
+ -61, nil, nil, nil, nil, nil, nil, nil, -21, -39,
450
+ -84 ]
423
451
 
424
452
  racc_goto_default = [
425
453
  nil, nil, nil, 3, 4, 5, 6, 13, 15, nil,
426
454
  17, nil, nil, 19, 20, nil, 9, nil, nil, 23,
427
- 34, 28, 29, 30, 31, 32, 33, 56, 57, 58 ]
455
+ 35, 28, 29, 30, 31, 32, 33, 34, 57, 58,
456
+ 59 ]
428
457
 
429
458
  racc_reduce_table = [
430
459
  0, 0, :racc_error,
431
- 2, 50, :_reduce_1,
432
- 1, 50, :_reduce_2,
433
- 1, 51, :_reduce_none,
434
- 1, 51, :_reduce_none,
435
- 1, 51, :_reduce_none,
436
- 1, 51, :_reduce_none,
437
- 1, 52, :_reduce_7,
438
- 2, 53, :_reduce_8,
439
- 3, 53, :_reduce_9,
440
- 1, 57, :_reduce_10,
441
- 2, 57, :_reduce_11,
442
- 1, 59, :_reduce_none,
443
- 3, 59, :_reduce_13,
444
- 3, 55, :_reduce_14,
445
- 1, 60, :_reduce_15,
446
- 2, 60, :_reduce_16,
447
- 3, 61, :_reduce_17,
448
- 1, 62, :_reduce_18,
449
- 2, 62, :_reduce_19,
450
- 1, 63, :_reduce_none,
451
- 3, 63, :_reduce_21,
460
+ 2, 51, :_reduce_1,
461
+ 1, 51, :_reduce_2,
462
+ 1, 52, :_reduce_none,
463
+ 1, 52, :_reduce_none,
464
+ 1, 52, :_reduce_none,
465
+ 1, 52, :_reduce_none,
466
+ 1, 53, :_reduce_7,
467
+ 2, 54, :_reduce_8,
468
+ 3, 54, :_reduce_9,
469
+ 1, 58, :_reduce_10,
470
+ 2, 58, :_reduce_11,
471
+ 1, 60, :_reduce_none,
472
+ 3, 60, :_reduce_13,
473
+ 3, 56, :_reduce_14,
474
+ 1, 61, :_reduce_15,
475
+ 2, 61, :_reduce_16,
476
+ 3, 62, :_reduce_17,
477
+ 1, 63, :_reduce_18,
478
+ 2, 63, :_reduce_19,
452
479
  1, 64, :_reduce_none,
453
- 2, 64, :_reduce_23,
454
- 1, 64, :_reduce_none,
455
- 3, 65, :_reduce_25,
456
- 3, 66, :_reduce_26,
457
- 2, 67, :_reduce_27,
458
- 2, 67, :_reduce_28,
459
- 1, 67, :_reduce_29,
460
- 1, 67, :_reduce_30,
461
- 2, 54, :_reduce_31,
462
- 3, 54, :_reduce_32,
463
- 3, 56, :_reduce_33,
464
- 2, 56, :_reduce_34,
465
- 2, 56, :_reduce_35,
466
- 1, 56, :_reduce_36,
467
- 3, 56, :_reduce_37,
468
- 2, 56, :_reduce_38,
469
- 2, 56, :_reduce_39,
470
- 1, 56, :_reduce_40,
471
- 1, 56, :_reduce_41,
472
- 3, 68, :_reduce_42,
473
- 3, 68, :_reduce_43,
474
- 3, 68, :_reduce_44,
475
- 3, 68, :_reduce_45,
476
- 3, 68, :_reduce_46,
477
- 3, 68, :_reduce_47,
478
- 2, 68, :_reduce_48,
479
- 2, 68, :_reduce_49,
480
- 3, 68, :_reduce_50,
481
- 3, 68, :_reduce_51,
482
- 3, 68, :_reduce_52,
483
- 3, 68, :_reduce_53,
484
- 3, 68, :_reduce_54,
485
- 3, 68, :_reduce_55,
486
- 3, 68, :_reduce_56,
487
- 3, 68, :_reduce_57,
488
- 2, 68, :_reduce_58,
489
- 3, 68, :_reduce_59,
490
- 3, 68, :_reduce_60,
491
- 4, 68, :_reduce_61,
492
- 2, 68, :_reduce_62,
493
- 3, 68, :_reduce_63,
494
- 1, 68, :_reduce_none,
495
- 1, 70, :_reduce_none,
496
- 1, 70, :_reduce_none,
497
- 1, 70, :_reduce_none,
498
- 1, 70, :_reduce_none,
499
- 1, 70, :_reduce_none,
500
- 1, 70, :_reduce_none,
480
+ 3, 64, :_reduce_21,
481
+ 1, 65, :_reduce_none,
482
+ 2, 65, :_reduce_23,
483
+ 1, 65, :_reduce_none,
484
+ 3, 66, :_reduce_25,
485
+ 3, 67, :_reduce_26,
486
+ 2, 68, :_reduce_27,
487
+ 2, 68, :_reduce_28,
488
+ 1, 68, :_reduce_29,
489
+ 1, 68, :_reduce_30,
490
+ 2, 55, :_reduce_31,
491
+ 3, 55, :_reduce_32,
492
+ 3, 57, :_reduce_33,
493
+ 2, 57, :_reduce_34,
494
+ 2, 57, :_reduce_35,
495
+ 1, 57, :_reduce_36,
496
+ 3, 57, :_reduce_37,
497
+ 2, 57, :_reduce_38,
498
+ 2, 57, :_reduce_39,
499
+ 1, 57, :_reduce_40,
500
+ 1, 57, :_reduce_41,
501
+ 3, 69, :_reduce_42,
502
+ 3, 69, :_reduce_43,
503
+ 3, 69, :_reduce_44,
504
+ 3, 69, :_reduce_45,
505
+ 3, 69, :_reduce_46,
506
+ 3, 69, :_reduce_47,
507
+ 2, 69, :_reduce_48,
508
+ 2, 69, :_reduce_49,
509
+ 3, 69, :_reduce_50,
510
+ 3, 69, :_reduce_51,
511
+ 3, 69, :_reduce_52,
512
+ 3, 69, :_reduce_53,
513
+ 3, 69, :_reduce_54,
514
+ 3, 69, :_reduce_55,
515
+ 3, 69, :_reduce_56,
516
+ 3, 69, :_reduce_57,
517
+ 2, 69, :_reduce_58,
518
+ 3, 69, :_reduce_59,
519
+ 3, 69, :_reduce_60,
520
+ 4, 69, :_reduce_61,
521
+ 2, 69, :_reduce_62,
522
+ 3, 69, :_reduce_63,
523
+ 1, 69, :_reduce_none,
524
+ 1, 71, :_reduce_none,
501
525
  1, 71, :_reduce_none,
502
526
  1, 71, :_reduce_none,
503
527
  1, 71, :_reduce_none,
528
+ 1, 71, :_reduce_none,
529
+ 1, 71, :_reduce_none,
530
+ 1, 71, :_reduce_none,
531
+ 1, 72, :_reduce_none,
504
532
  1, 72, :_reduce_none,
505
533
  1, 72, :_reduce_none,
506
534
  1, 73, :_reduce_none,
507
535
  1, 73, :_reduce_none,
508
- 2, 74, :_reduce_78,
509
- 3, 74, :_reduce_79,
510
- 3, 76, :_reduce_80,
511
- 1, 76, :_reduce_81,
512
- 2, 75, :_reduce_82,
513
- 3, 75, :_reduce_83,
514
- 3, 77, :_reduce_84,
515
- 1, 77, :_reduce_85,
516
- 3, 78, :_reduce_86,
517
- 3, 58, :_reduce_87,
518
- 1, 58, :_reduce_none,
519
- 1, 58, :_reduce_89,
520
- 1, 69, :_reduce_90,
521
- 3, 69, :_reduce_91,
522
- 4, 69, :_reduce_92 ]
523
-
524
- racc_reduce_n = 93
525
-
526
- racc_shift_n = 143
536
+ 1, 74, :_reduce_none,
537
+ 1, 74, :_reduce_none,
538
+ 3, 75, :_reduce_79,
539
+ 2, 76, :_reduce_80,
540
+ 3, 76, :_reduce_81,
541
+ 3, 78, :_reduce_82,
542
+ 1, 78, :_reduce_83,
543
+ 2, 77, :_reduce_84,
544
+ 3, 77, :_reduce_85,
545
+ 3, 79, :_reduce_86,
546
+ 1, 79, :_reduce_87,
547
+ 3, 80, :_reduce_88,
548
+ 3, 59, :_reduce_89,
549
+ 1, 59, :_reduce_none,
550
+ 1, 59, :_reduce_91,
551
+ 1, 70, :_reduce_92,
552
+ 3, 70, :_reduce_93,
553
+ 4, 70, :_reduce_94 ]
554
+
555
+ racc_reduce_n = 95
556
+
557
+ racc_shift_n = 146
527
558
 
528
559
  racc_token_table = {
529
560
  false => 0,
@@ -548,35 +579,36 @@ racc_token_table = {
548
579
  :INEQUAL => 19,
549
580
  :AND => 20,
550
581
  :OR => 21,
551
- :TERNARY => 22,
552
- :ASSIGN => 23,
553
- :COMMA => 24,
554
- :COLON => 25,
555
- :SEMICOLON => 26,
556
- :NEWLINE => 27,
557
- :TEMPLATE => 28,
558
- :TOPEN => 29,
559
- :TCLOSE => 30,
560
- :COMMAND => 31,
561
- :IDENTIFER => 32,
562
- :SUBCOMMAND => 33,
563
- :BLOCK => 34,
564
- :ENDBLOCK => 35,
565
- :END => 36,
566
- :ACLOSE => 37,
567
- :POPEN => 38,
568
- :PCLOSE => 39,
569
- :NIL => 40,
570
- :TRUE => 41,
571
- :FALSE => 42,
572
- :INTEGER => 43,
573
- :FLOAT => 44,
574
- :STRING => 45,
575
- :REGEXP => 46,
576
- :HOPEN => 47,
577
- :HCLOSE => 48 }
578
-
579
- racc_nt_base = 49
582
+ :RANGE => 22,
583
+ :TERNARY => 23,
584
+ :ASSIGN => 24,
585
+ :COMMA => 25,
586
+ :COLON => 26,
587
+ :SEMICOLON => 27,
588
+ :NEWLINE => 28,
589
+ :TEMPLATE => 29,
590
+ :TOPEN => 30,
591
+ :TCLOSE => 31,
592
+ :COMMAND => 32,
593
+ :IDENTIFER => 33,
594
+ :SUBCOMMAND => 34,
595
+ :BLOCK => 35,
596
+ :ENDBLOCK => 36,
597
+ :END => 37,
598
+ :ACLOSE => 38,
599
+ :POPEN => 39,
600
+ :PCLOSE => 40,
601
+ :NIL => 41,
602
+ :TRUE => 42,
603
+ :FALSE => 43,
604
+ :INTEGER => 44,
605
+ :FLOAT => 45,
606
+ :STRING => 46,
607
+ :REGEXP => 47,
608
+ :HOPEN => 48,
609
+ :HCLOSE => 49 }
610
+
611
+ racc_nt_base = 50
580
612
 
581
613
  racc_use_result_var = true
582
614
 
@@ -619,6 +651,7 @@ Racc_token_to_s_table = [
619
651
  "INEQUAL",
620
652
  "AND",
621
653
  "OR",
654
+ "RANGE",
622
655
  "TERNARY",
623
656
  "ASSIGN",
624
657
  "COMMA",
@@ -671,6 +704,7 @@ Racc_token_to_s_table = [
671
704
  "const",
672
705
  "number",
673
706
  "string",
707
+ "range",
674
708
  "array",
675
709
  "hash",
676
710
  "params",
@@ -683,14 +717,14 @@ Racc_debug_parser = false
683
717
 
684
718
  # reduce 0 omitted
685
719
 
686
- module_eval(<<'.,.,', 'parser.y', 54)
720
+ module_eval(<<'.,.,', 'parser.y', 55)
687
721
  def _reduce_1(val, _values, result)
688
722
  pospoppush(2); val[0].children.push(val[1])
689
723
  result
690
724
  end
691
725
  .,.,
692
726
 
693
- module_eval(<<'.,.,', 'parser.y', 55)
727
+ module_eval(<<'.,.,', 'parser.y', 56)
694
728
  def _reduce_2(val, _values, result)
695
729
  result = build Joiner, :JOINER, val[0], position: pospoppush(1)
696
730
  result
@@ -705,36 +739,42 @@ module_eval(<<'.,.,', 'parser.y', 55)
705
739
 
706
740
  # reduce 6 omitted
707
741
 
708
- module_eval(<<'.,.,', 'parser.y', 58)
742
+ module_eval(<<'.,.,', 'parser.y', 59)
709
743
  def _reduce_7(val, _values, result)
710
744
  result = val[0]
711
745
  result
712
746
  end
713
747
  .,.,
714
748
 
715
- module_eval(<<'.,.,', 'parser.y', 59)
749
+ module_eval(<<'.,.,', 'parser.y', 61)
716
750
  def _reduce_8(val, _values, result)
717
- result = build Tag, :TAG, mode: TAG_MODES[val[0]], position: pospoppush(2)
751
+ result = build Tag, :TAG,
752
+ mode: tag_modes(val[0], @escape_tags ? :escape : :normal),
753
+ position: pospoppush(2)
754
+
718
755
  result
719
756
  end
720
757
  .,.,
721
758
 
722
- module_eval(<<'.,.,', 'parser.y', 61)
759
+ module_eval(<<'.,.,', 'parser.y', 66)
723
760
  def _reduce_9(val, _values, result)
724
- result = build Tag, :TAG, *Array.wrap(val[1]).flatten, mode: TAG_MODES[val[0]], position: pospoppush(3)
761
+ result = build Tag, :TAG,
762
+ *Array.wrap(val[1]).flatten,
763
+ mode: tag_modes(val[0], @escape_tags ? :escape : :normal),
764
+ position: pospoppush(3)
725
765
 
726
766
  result
727
767
  end
728
768
  .,.,
729
769
 
730
- module_eval(<<'.,.,', 'parser.y', 64)
770
+ module_eval(<<'.,.,', 'parser.y', 72)
731
771
  def _reduce_10(val, _values, result)
732
772
  result = build @commands[val[0]] || Command, val[0], position: pospoppush(1)
733
773
  result
734
774
  end
735
775
  .,.,
736
776
 
737
- module_eval(<<'.,.,', 'parser.y', 66)
777
+ module_eval(<<'.,.,', 'parser.y', 74)
738
778
  def _reduce_11(val, _values, result)
739
779
  result = build @commands[val[0]] || Command, val[0], *val[1], position: pospoppush(2)
740
780
 
@@ -744,7 +784,7 @@ module_eval(<<'.,.,', 'parser.y', 66)
744
784
 
745
785
  # reduce 12 omitted
746
786
 
747
- module_eval(<<'.,.,', 'parser.y', 70)
787
+ module_eval(<<'.,.,', 'parser.y', 78)
748
788
  def _reduce_13(val, _values, result)
749
789
  result = build Assigner, val[0], val[2], position: pospoppush(3)
750
790
 
@@ -752,24 +792,24 @@ module_eval(<<'.,.,', 'parser.y', 70)
752
792
  end
753
793
  .,.,
754
794
 
755
- module_eval(<<'.,.,', 'parser.y', 73)
795
+ module_eval(<<'.,.,', 'parser.y', 81)
756
796
  def _reduce_14(val, _values, result)
757
797
  command = val[1].is_a?(Command) ? val[1] : val[1].children[0]
758
798
  command.validate!
759
- result = build Tag, :TAG, val[1], mode: TAG_MODES[val[0]], position: pospoppush(3)
799
+ result = build Tag, :TAG, val[1], mode: tag_modes(val[0]), position: pospoppush(3)
760
800
 
761
801
  result
762
802
  end
763
803
  .,.,
764
804
 
765
- module_eval(<<'.,.,', 'parser.y', 78)
805
+ module_eval(<<'.,.,', 'parser.y', 86)
766
806
  def _reduce_15(val, _values, result)
767
807
  result = build @substack.last[val[0]], val[0], position: pospoppush(1)
768
808
  result
769
809
  end
770
810
  .,.,
771
811
 
772
- module_eval(<<'.,.,', 'parser.y', 80)
812
+ module_eval(<<'.,.,', 'parser.y', 88)
773
813
  def _reduce_16(val, _values, result)
774
814
  result = build @substack.last[val[0]], val[0], *val[1], position: pospoppush(2)
775
815
 
@@ -777,21 +817,21 @@ module_eval(<<'.,.,', 'parser.y', 80)
777
817
  end
778
818
  .,.,
779
819
 
780
- module_eval(<<'.,.,', 'parser.y', 82)
820
+ module_eval(<<'.,.,', 'parser.y', 90)
781
821
  def _reduce_17(val, _values, result)
782
822
  pospoppush(3); result = val[1]
783
823
  result
784
824
  end
785
825
  .,.,
786
826
 
787
- module_eval(<<'.,.,', 'parser.y', 84)
827
+ module_eval(<<'.,.,', 'parser.y', 92)
788
828
  def _reduce_18(val, _values, result)
789
829
  result = build @blocks[val[0]] || Block, val[0], position: pospoppush(1)
790
830
  result
791
831
  end
792
832
  .,.,
793
833
 
794
- module_eval(<<'.,.,', 'parser.y', 86)
834
+ module_eval(<<'.,.,', 'parser.y', 94)
795
835
  def _reduce_19(val, _values, result)
796
836
  result = build @blocks[val[0]] || Block, val[0], *val[1], position: pospoppush(2)
797
837
 
@@ -801,7 +841,7 @@ module_eval(<<'.,.,', 'parser.y', 86)
801
841
 
802
842
  # reduce 20 omitted
803
843
 
804
- module_eval(<<'.,.,', 'parser.y', 90)
844
+ module_eval(<<'.,.,', 'parser.y', 98)
805
845
  def _reduce_21(val, _values, result)
806
846
  result = build Assigner, val[0], val[2], position: pospoppush(3)
807
847
 
@@ -811,7 +851,7 @@ module_eval(<<'.,.,', 'parser.y', 90)
811
851
 
812
852
  # reduce 22 omitted
813
853
 
814
- module_eval(<<'.,.,', 'parser.y', 93)
854
+ module_eval(<<'.,.,', 'parser.y', 101)
815
855
  def _reduce_23(val, _values, result)
816
856
  pospoppush(2)
817
857
  result
@@ -820,22 +860,22 @@ module_eval(<<'.,.,', 'parser.y', 93)
820
860
 
821
861
  # reduce 24 omitted
822
862
 
823
- module_eval(<<'.,.,', 'parser.y', 96)
863
+ module_eval(<<'.,.,', 'parser.y', 104)
824
864
  def _reduce_25(val, _values, result)
825
- result = build Tag, :TAG, val[1], mode: TAG_MODES[val[0]], position: pospoppush(3)
865
+ result = build Tag, :TAG, val[1], mode: tag_modes(val[0]), position: pospoppush(3)
826
866
 
827
867
  result
828
868
  end
829
869
  .,.,
830
870
 
831
- module_eval(<<'.,.,', 'parser.y', 98)
871
+ module_eval(<<'.,.,', 'parser.y', 106)
832
872
  def _reduce_26(val, _values, result)
833
873
  pospoppush(3)
834
874
  result
835
875
  end
836
876
  .,.,
837
877
 
838
- module_eval(<<'.,.,', 'parser.y', 100)
878
+ module_eval(<<'.,.,', 'parser.y', 108)
839
879
  def _reduce_27(val, _values, result)
840
880
  pospoppush(2)
841
881
  val[0][-1].is_a?(Joiner) ?
@@ -846,28 +886,28 @@ module_eval(<<'.,.,', 'parser.y', 100)
846
886
  end
847
887
  .,.,
848
888
 
849
- module_eval(<<'.,.,', 'parser.y', 105)
889
+ module_eval(<<'.,.,', 'parser.y', 113)
850
890
  def _reduce_28(val, _values, result)
851
891
  pospoppush(2); val[0].push(val[1])
852
892
  result
853
893
  end
854
894
  .,.,
855
895
 
856
- module_eval(<<'.,.,', 'parser.y', 106)
896
+ module_eval(<<'.,.,', 'parser.y', 114)
857
897
  def _reduce_29(val, _values, result)
858
898
  result = [build(Joiner, :JOINER, val[0], position: pospoppush(1))]
859
899
  result
860
900
  end
861
901
  .,.,
862
902
 
863
- module_eval(<<'.,.,', 'parser.y', 107)
903
+ module_eval(<<'.,.,', 'parser.y', 115)
864
904
  def _reduce_30(val, _values, result)
865
905
  result = [val[0]]
866
906
  result
867
907
  end
868
908
  .,.,
869
909
 
870
- module_eval(<<'.,.,', 'parser.y', 109)
910
+ module_eval(<<'.,.,', 'parser.y', 117)
871
911
  def _reduce_31(val, _values, result)
872
912
  pospoppush(2)
873
913
  block = val[0].children[0].is_a?(Block) ?
@@ -878,7 +918,7 @@ module_eval(<<'.,.,', 'parser.y', 109)
878
918
  end
879
919
  .,.,
880
920
 
881
- module_eval(<<'.,.,', 'parser.y', 115)
921
+ module_eval(<<'.,.,', 'parser.y', 123)
882
922
  def _reduce_32(val, _values, result)
883
923
  pospoppush(3)
884
924
  block = val[0].children[0].is_a?(Block) ?
@@ -890,218 +930,218 @@ module_eval(<<'.,.,', 'parser.y', 115)
890
930
  end
891
931
  .,.,
892
932
 
893
- module_eval(<<'.,.,', 'parser.y', 122)
933
+ module_eval(<<'.,.,', 'parser.y', 130)
894
934
  def _reduce_33(val, _values, result)
895
935
  pospoppush(2); result = val[0].push(val[2])
896
936
  result
897
937
  end
898
938
  .,.,
899
939
 
900
- module_eval(<<'.,.,', 'parser.y', 123)
940
+ module_eval(<<'.,.,', 'parser.y', 131)
901
941
  def _reduce_34(val, _values, result)
902
942
  pospoppush(2)
903
943
  result
904
944
  end
905
945
  .,.,
906
946
 
907
- module_eval(<<'.,.,', 'parser.y', 124)
947
+ module_eval(<<'.,.,', 'parser.y', 132)
908
948
  def _reduce_35(val, _values, result)
909
949
  pospoppush(2, 1); result = val[1]
910
950
  result
911
951
  end
912
952
  .,.,
913
953
 
914
- module_eval(<<'.,.,', 'parser.y', 125)
954
+ module_eval(<<'.,.,', 'parser.y', 133)
915
955
  def _reduce_36(val, _values, result)
916
956
  result = []
917
957
  result
918
958
  end
919
959
  .,.,
920
960
 
921
- module_eval(<<'.,.,', 'parser.y', 126)
961
+ module_eval(<<'.,.,', 'parser.y', 134)
922
962
  def _reduce_37(val, _values, result)
923
963
  pospoppush(2); result = val[0].push(val[2])
924
964
  result
925
965
  end
926
966
  .,.,
927
967
 
928
- module_eval(<<'.,.,', 'parser.y', 127)
968
+ module_eval(<<'.,.,', 'parser.y', 135)
929
969
  def _reduce_38(val, _values, result)
930
970
  pospoppush(2)
931
971
  result
932
972
  end
933
973
  .,.,
934
974
 
935
- module_eval(<<'.,.,', 'parser.y', 128)
975
+ module_eval(<<'.,.,', 'parser.y', 136)
936
976
  def _reduce_39(val, _values, result)
937
977
  pospoppush(2, 1); result = val[1]
938
978
  result
939
979
  end
940
980
  .,.,
941
981
 
942
- module_eval(<<'.,.,', 'parser.y', 129)
982
+ module_eval(<<'.,.,', 'parser.y', 137)
943
983
  def _reduce_40(val, _values, result)
944
984
  result = []
945
985
  result
946
986
  end
947
987
  .,.,
948
988
 
949
- module_eval(<<'.,.,', 'parser.y', 130)
989
+ module_eval(<<'.,.,', 'parser.y', 138)
950
990
  def _reduce_41(val, _values, result)
951
991
  result = [val[0]]
952
992
  result
953
993
  end
954
994
  .,.,
955
995
 
956
- module_eval(<<'.,.,', 'parser.y', 132)
996
+ module_eval(<<'.,.,', 'parser.y', 140)
957
997
  def _reduce_42(val, _values, result)
958
- result = build Calculator, :MULTIPLY, val[0], val[2], position: pospoppush(3)
998
+ result = build Expression, :MULTIPLY, val[0], val[2], position: pospoppush(3)
959
999
  result
960
1000
  end
961
1001
  .,.,
962
1002
 
963
- module_eval(<<'.,.,', 'parser.y', 133)
1003
+ module_eval(<<'.,.,', 'parser.y', 141)
964
1004
  def _reduce_43(val, _values, result)
965
- result = build Calculator, :POWER, val[0], val[2], position: pospoppush(3)
1005
+ result = build Expression, :POWER, val[0], val[2], position: pospoppush(3)
966
1006
  result
967
1007
  end
968
1008
  .,.,
969
1009
 
970
- module_eval(<<'.,.,', 'parser.y', 134)
1010
+ module_eval(<<'.,.,', 'parser.y', 142)
971
1011
  def _reduce_44(val, _values, result)
972
- result = build Calculator, :DIVIDE, val[0], val[2], position: pospoppush(3)
1012
+ result = build Expression, :DIVIDE, val[0], val[2], position: pospoppush(3)
973
1013
  result
974
1014
  end
975
1015
  .,.,
976
1016
 
977
- module_eval(<<'.,.,', 'parser.y', 135)
1017
+ module_eval(<<'.,.,', 'parser.y', 143)
978
1018
  def _reduce_45(val, _values, result)
979
- result = build Calculator, :PLUS, val[0], val[2], position: pospoppush(3)
1019
+ result = build Expression, :PLUS, val[0], val[2], position: pospoppush(3)
980
1020
  result
981
1021
  end
982
1022
  .,.,
983
1023
 
984
- module_eval(<<'.,.,', 'parser.y', 136)
1024
+ module_eval(<<'.,.,', 'parser.y', 144)
985
1025
  def _reduce_46(val, _values, result)
986
- result = build Calculator, :MINUS, val[0], val[2], position: pospoppush(3)
1026
+ result = build Expression, :MINUS, val[0], val[2], position: pospoppush(3)
987
1027
  result
988
1028
  end
989
1029
  .,.,
990
1030
 
991
- module_eval(<<'.,.,', 'parser.y', 137)
1031
+ module_eval(<<'.,.,', 'parser.y', 145)
992
1032
  def _reduce_47(val, _values, result)
993
- result = build Calculator, :MODULO, val[0], val[2], position: pospoppush(3)
1033
+ result = build Expression, :MODULO, val[0], val[2], position: pospoppush(3)
994
1034
  result
995
1035
  end
996
1036
  .,.,
997
1037
 
998
- module_eval(<<'.,.,', 'parser.y', 138)
1038
+ module_eval(<<'.,.,', 'parser.y', 146)
999
1039
  def _reduce_48(val, _values, result)
1000
- result = build Calculator, :UMINUS, val[1], position: pospoppush(2)
1040
+ result = build Expression, :UMINUS, val[1], position: pospoppush(2)
1001
1041
  result
1002
1042
  end
1003
1043
  .,.,
1004
1044
 
1005
- module_eval(<<'.,.,', 'parser.y', 139)
1045
+ module_eval(<<'.,.,', 'parser.y', 147)
1006
1046
  def _reduce_49(val, _values, result)
1007
- result = build Calculator, :UPLUS, val[1], position: pospoppush(2)
1047
+ result = build Expression, :UPLUS, val[1], position: pospoppush(2)
1008
1048
  result
1009
1049
  end
1010
1050
  .,.,
1011
1051
 
1012
- module_eval(<<'.,.,', 'parser.y', 140)
1052
+ module_eval(<<'.,.,', 'parser.y', 148)
1013
1053
  def _reduce_50(val, _values, result)
1014
- result = build Calculator, :AND, val[0], val[2], position: pospoppush(3)
1054
+ result = build Expression, :AND, val[0], val[2], position: pospoppush(3)
1015
1055
  result
1016
1056
  end
1017
1057
  .,.,
1018
1058
 
1019
- module_eval(<<'.,.,', 'parser.y', 141)
1059
+ module_eval(<<'.,.,', 'parser.y', 149)
1020
1060
  def _reduce_51(val, _values, result)
1021
- result = build Calculator, :OR, val[0], val[2], position: pospoppush(3)
1061
+ result = build Expression, :OR, val[0], val[2], position: pospoppush(3)
1022
1062
  result
1023
1063
  end
1024
1064
  .,.,
1025
1065
 
1026
- module_eval(<<'.,.,', 'parser.y', 142)
1066
+ module_eval(<<'.,.,', 'parser.y', 150)
1027
1067
  def _reduce_52(val, _values, result)
1028
- result = build Calculator, :GT, val[0], val[2], position: pospoppush(3)
1068
+ result = build Expression, :GT, val[0], val[2], position: pospoppush(3)
1029
1069
  result
1030
1070
  end
1031
1071
  .,.,
1032
1072
 
1033
- module_eval(<<'.,.,', 'parser.y', 143)
1073
+ module_eval(<<'.,.,', 'parser.y', 151)
1034
1074
  def _reduce_53(val, _values, result)
1035
- result = build Calculator, :GTE, val[0], val[2], position: pospoppush(3)
1075
+ result = build Expression, :GTE, val[0], val[2], position: pospoppush(3)
1036
1076
  result
1037
1077
  end
1038
1078
  .,.,
1039
1079
 
1040
- module_eval(<<'.,.,', 'parser.y', 144)
1080
+ module_eval(<<'.,.,', 'parser.y', 152)
1041
1081
  def _reduce_54(val, _values, result)
1042
- result = build Calculator, :LT, val[0], val[2], position: pospoppush(3)
1082
+ result = build Expression, :LT, val[0], val[2], position: pospoppush(3)
1043
1083
  result
1044
1084
  end
1045
1085
  .,.,
1046
1086
 
1047
- module_eval(<<'.,.,', 'parser.y', 145)
1087
+ module_eval(<<'.,.,', 'parser.y', 153)
1048
1088
  def _reduce_55(val, _values, result)
1049
- result = build Calculator, :LTE, val[0], val[2], position: pospoppush(3)
1089
+ result = build Expression, :LTE, val[0], val[2], position: pospoppush(3)
1050
1090
  result
1051
1091
  end
1052
1092
  .,.,
1053
1093
 
1054
- module_eval(<<'.,.,', 'parser.y', 146)
1094
+ module_eval(<<'.,.,', 'parser.y', 154)
1055
1095
  def _reduce_56(val, _values, result)
1056
- result = build Calculator, :EQUAL, val[0], val[2], position: pospoppush(3)
1096
+ result = build Expression, :EQUAL, val[0], val[2], position: pospoppush(3)
1057
1097
  result
1058
1098
  end
1059
1099
  .,.,
1060
1100
 
1061
- module_eval(<<'.,.,', 'parser.y', 147)
1101
+ module_eval(<<'.,.,', 'parser.y', 155)
1062
1102
  def _reduce_57(val, _values, result)
1063
- result = build Calculator, :INEQUAL, val[0], val[2], position: pospoppush(3)
1103
+ result = build Expression, :INEQUAL, val[0], val[2], position: pospoppush(3)
1064
1104
  result
1065
1105
  end
1066
1106
  .,.,
1067
1107
 
1068
- module_eval(<<'.,.,', 'parser.y', 148)
1108
+ module_eval(<<'.,.,', 'parser.y', 156)
1069
1109
  def _reduce_58(val, _values, result)
1070
- result = build Calculator, :NOT, val[1], position: pospoppush(2)
1110
+ result = build Expression, :NOT, val[1], position: pospoppush(2)
1071
1111
  result
1072
1112
  end
1073
1113
  .,.,
1074
1114
 
1075
- module_eval(<<'.,.,', 'parser.y', 149)
1115
+ module_eval(<<'.,.,', 'parser.y', 157)
1076
1116
  def _reduce_59(val, _values, result)
1077
1117
  result = build Assigner, val[0], val[2], position: pospoppush(3)
1078
1118
  result
1079
1119
  end
1080
1120
  .,.,
1081
1121
 
1082
- module_eval(<<'.,.,', 'parser.y', 150)
1122
+ module_eval(<<'.,.,', 'parser.y', 158)
1083
1123
  def _reduce_60(val, _values, result)
1084
1124
  pospoppush(3); val[2].children[0] = val[0]; result = val[2]
1085
1125
  result
1086
1126
  end
1087
1127
  .,.,
1088
1128
 
1089
- module_eval(<<'.,.,', 'parser.y', 152)
1129
+ module_eval(<<'.,.,', 'parser.y', 160)
1090
1130
  def _reduce_61(val, _values, result)
1091
- result = build Summoner, 'manipulator_brackets', val[0], *val[2], position: pospoppush(4)
1131
+ result = build Summoner, '[]', val[0], *val[2], position: pospoppush(4)
1092
1132
 
1093
1133
  result
1094
1134
  end
1095
1135
  .,.,
1096
1136
 
1097
- module_eval(<<'.,.,', 'parser.y', 154)
1137
+ module_eval(<<'.,.,', 'parser.y', 162)
1098
1138
  def _reduce_62(val, _values, result)
1099
1139
  pospoppush(2); result = nil
1100
1140
  result
1101
1141
  end
1102
1142
  .,.,
1103
1143
 
1104
- module_eval(<<'.,.,', 'parser.y', 156)
1144
+ module_eval(<<'.,.,', 'parser.y', 164)
1105
1145
  def _reduce_63(val, _values, result)
1106
1146
  position = pospoppush(3)
1107
1147
  result = case val[1].size
@@ -1143,101 +1183,112 @@ module_eval(<<'.,.,', 'parser.y', 156)
1143
1183
 
1144
1184
  # reduce 77 omitted
1145
1185
 
1146
- module_eval(<<'.,.,', 'parser.y', 172)
1147
- def _reduce_78(val, _values, result)
1186
+ # reduce 78 omitted
1187
+
1188
+ module_eval(<<'.,.,', 'parser.y', 181)
1189
+ def _reduce_79(val, _values, result)
1190
+ result = build Expression, val[1] == '..' ? :RANGE : :ERANGE,
1191
+ val[0], val[2], position: pospoppush(3)
1192
+
1193
+ result
1194
+ end
1195
+ .,.,
1196
+
1197
+ module_eval(<<'.,.,', 'parser.y', 185)
1198
+ def _reduce_80(val, _values, result)
1148
1199
  result = build Arrayer, :ARRAY, position: pospoppush(2)
1149
1200
  result
1150
1201
  end
1151
1202
  .,.,
1152
1203
 
1153
- module_eval(<<'.,.,', 'parser.y', 173)
1154
- def _reduce_79(val, _values, result)
1204
+ module_eval(<<'.,.,', 'parser.y', 186)
1205
+ def _reduce_81(val, _values, result)
1155
1206
  result = build Arrayer, :ARRAY, *val[1], position: pospoppush(3)
1156
1207
  result
1157
1208
  end
1158
1209
  .,.,
1159
1210
 
1160
- module_eval(<<'.,.,', 'parser.y', 174)
1161
- def _reduce_80(val, _values, result)
1211
+ module_eval(<<'.,.,', 'parser.y', 187)
1212
+ def _reduce_82(val, _values, result)
1162
1213
  pospoppush(3); val[0].push(val[2])
1163
1214
  result
1164
1215
  end
1165
1216
  .,.,
1166
1217
 
1167
- module_eval(<<'.,.,', 'parser.y', 175)
1168
- def _reduce_81(val, _values, result)
1218
+ module_eval(<<'.,.,', 'parser.y', 188)
1219
+ def _reduce_83(val, _values, result)
1169
1220
  result = [val[0]]
1170
1221
  result
1171
1222
  end
1172
1223
  .,.,
1173
1224
 
1174
- module_eval(<<'.,.,', 'parser.y', 177)
1175
- def _reduce_82(val, _values, result)
1225
+ module_eval(<<'.,.,', 'parser.y', 190)
1226
+ def _reduce_84(val, _values, result)
1176
1227
  result = build Hasher, :HASH, position: pospoppush(2)
1177
1228
  result
1178
1229
  end
1179
1230
  .,.,
1180
1231
 
1181
- module_eval(<<'.,.,', 'parser.y', 178)
1182
- def _reduce_83(val, _values, result)
1232
+ module_eval(<<'.,.,', 'parser.y', 191)
1233
+ def _reduce_85(val, _values, result)
1183
1234
  result = build Hasher, :HASH, *val[1], position: pospoppush(3)
1184
1235
  result
1185
1236
  end
1186
1237
  .,.,
1187
1238
 
1188
- module_eval(<<'.,.,', 'parser.y', 179)
1189
- def _reduce_84(val, _values, result)
1239
+ module_eval(<<'.,.,', 'parser.y', 192)
1240
+ def _reduce_86(val, _values, result)
1190
1241
  pospoppush(3); val[0].push(val[2])
1191
1242
  result
1192
1243
  end
1193
1244
  .,.,
1194
1245
 
1195
- module_eval(<<'.,.,', 'parser.y', 180)
1196
- def _reduce_85(val, _values, result)
1246
+ module_eval(<<'.,.,', 'parser.y', 193)
1247
+ def _reduce_87(val, _values, result)
1197
1248
  result = [val[0]]
1198
1249
  result
1199
1250
  end
1200
1251
  .,.,
1201
1252
 
1202
- module_eval(<<'.,.,', 'parser.y', 181)
1203
- def _reduce_86(val, _values, result)
1253
+ module_eval(<<'.,.,', 'parser.y', 194)
1254
+ def _reduce_88(val, _values, result)
1204
1255
  result = build Arrayer, :PAIR, val[0], val[2], position: pospoppush(3)
1205
1256
  result
1206
1257
  end
1207
1258
  .,.,
1208
1259
 
1209
- module_eval(<<'.,.,', 'parser.y', 183)
1210
- def _reduce_87(val, _values, result)
1260
+ module_eval(<<'.,.,', 'parser.y', 196)
1261
+ def _reduce_89(val, _values, result)
1211
1262
  result = [*val[0], build(Hasher, :HASH, *val[2], position: pospoppush(3))]
1212
1263
  result
1213
1264
  end
1214
1265
  .,.,
1215
1266
 
1216
- # reduce 88 omitted
1267
+ # reduce 90 omitted
1217
1268
 
1218
- module_eval(<<'.,.,', 'parser.y', 185)
1219
- def _reduce_89(val, _values, result)
1269
+ module_eval(<<'.,.,', 'parser.y', 198)
1270
+ def _reduce_91(val, _values, result)
1220
1271
  result = build Hasher, :HASH, *val[0], position: pospoppush(1)
1221
1272
  result
1222
1273
  end
1223
1274
  .,.,
1224
1275
 
1225
- module_eval(<<'.,.,', 'parser.y', 186)
1226
- def _reduce_90(val, _values, result)
1276
+ module_eval(<<'.,.,', 'parser.y', 199)
1277
+ def _reduce_92(val, _values, result)
1227
1278
  result = build Summoner, val[0], position: pospoppush(1)
1228
1279
  result
1229
1280
  end
1230
1281
  .,.,
1231
1282
 
1232
- module_eval(<<'.,.,', 'parser.y', 187)
1233
- def _reduce_91(val, _values, result)
1283
+ module_eval(<<'.,.,', 'parser.y', 200)
1284
+ def _reduce_93(val, _values, result)
1234
1285
  result = build Summoner, val[0], position: pospoppush(3)
1235
1286
  result
1236
1287
  end
1237
1288
  .,.,
1238
1289
 
1239
- module_eval(<<'.,.,', 'parser.y', 189)
1240
- def _reduce_92(val, _values, result)
1290
+ module_eval(<<'.,.,', 'parser.y', 202)
1291
+ def _reduce_94(val, _values, result)
1241
1292
  result = build Summoner, val[0], nil, *val[2], position: pospoppush(4)
1242
1293
 
1243
1294
  result