hotcell 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  %%{
2
- machine puffer_lexer;
2
+ machine hotcell_lexer;
3
3
 
4
4
  variable data @data;
5
5
  variable te @te;
@@ -13,6 +13,33 @@
13
13
  end
14
14
  }
15
15
 
16
+ action Interpolate {
17
+ @braces_count = 0;
18
+ emit_interpolation
19
+ fcall interpolation;
20
+ }
21
+
22
+ action OpenBrace {
23
+ emit_operator
24
+ @braces_count += 1
25
+ }
26
+
27
+ action CloseBrace {
28
+ if @braces_count < 1
29
+ emit_interpolation
30
+ fret;
31
+ else
32
+ emit_operator
33
+ @braces_count -= 1
34
+ end
35
+ }
36
+
37
+ action ParseDstring {
38
+ @dstring_start = @ts
39
+ emit_dstring_open
40
+ fcall dstring;
41
+ }
42
+
16
43
  include "lexer.rl";
17
44
  }%%
18
45
 
@@ -48,6 +75,11 @@ Hotcell::Lexer.class_eval do
48
75
 
49
76
  raise_unexpected_symbol unless @ts.nil?
50
77
 
78
+ if cs == hotcell_lexer_en_dstring
79
+ @ts = @dstring_start
80
+ raise_unterminated_string
81
+ end
82
+
51
83
  @token_array
52
84
  end
53
85
  end
@@ -1,25 +1,27 @@
1
1
  module Hotcell
2
2
  class Expression < Hotcell::Node
3
3
  HANDLERS = {
4
- :PLUS => ->(value1, value2) { value1 + value2 },
5
- :MINUS => ->(value1, value2) { value1 - value2 },
6
- :UMINUS => ->(value) { -value },
7
- :UPLUS => ->(value) { value },
8
- :MULTIPLY => ->(value1, value2) { value1 * value2 },
9
- :POWER => ->(value1, value2) { value1 ** value2 },
10
- :DIVIDE => ->(value1, value2) { value1 / value2 },
11
- :MODULO => ->(value1, value2) { value1 % value2 },
12
- :AND => ->(value1, value2) { value1 && value2 },
13
- :OR => ->(value1, value2) { value1 || value2 },
14
- :NOT => ->(value) { !value },
15
- :EQUAL => ->(value1, value2) { value1 == value2 },
16
- :INEQUAL => ->(value1, value2) { value1 != value2 },
17
- :GT => ->(value1, value2) { value1 > value2 },
18
- :GTE => ->(value1, value2) { value1 >= value2 },
19
- :LT => ->(value1, value2) { value1 < value2 },
20
- :LTE => ->(value1, value2) { value1 <= value2 },
21
- :RANGE => ->(value1, value2) { Range.new value1, value2 },
22
- :ERANGE => ->(value1, value2) { Range.new value1, value2, true }
4
+ PLUS: ->(value1, value2) { value1 + value2 },
5
+ MINUS: ->(value1, value2) { value1 - value2 },
6
+ UMINUS: ->(value) { -value },
7
+ UPLUS: ->(value) { value },
8
+ MULTIPLY: ->(value1, value2) { value1 * value2 },
9
+ POWER: ->(value1, value2) { value1 ** value2 },
10
+ DIVIDE: ->(value1, value2) { value1 / value2 },
11
+ MODULO: ->(value1, value2) { value1 % value2 },
12
+ AND: ->(value1, value2) { value1 && value2 },
13
+ OR: ->(value1, value2) { value1 || value2 },
14
+ NOT: ->(value) { !value },
15
+ EQUAL: ->(value1, value2) { value1 == value2 },
16
+ INEQUAL: ->(value1, value2) { value1 != value2 },
17
+ GT: ->(value1, value2) { value1 > value2 },
18
+ GTE: ->(value1, value2) { value1 >= value2 },
19
+ LT: ->(value1, value2) { value1 < value2 },
20
+ LTE: ->(value1, value2) { value1 <= value2 },
21
+ TERNARY: ->(value1, value2, value3) { value1 ? value2 : value3 },
22
+ RANGE: ->(value1, value2) { Range.new value1, value2 },
23
+ ERANGE: ->(value1, value2) { Range.new value1, value2, true },
24
+ DSTRING: ->(*values) { values.map(&:to_s).join }
23
25
  }
24
26
 
25
27
  def optimize
@@ -1,7 +1,7 @@
1
1
  module Hotcell
2
2
  class Summoner < Hotcell::Node
3
3
  def process context, target = nil, *arguments
4
- (target ? target.to_manipulator : context).manipulator_invoke(name, *arguments)
4
+ (target ? target.to_tong : context).tong_invoke(name, *arguments)
5
5
  end
6
6
  end
7
7
  end
@@ -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', 207)
11
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 224)
12
12
  OPERATIONS = {
13
13
  '+' => :PLUS, '-' => :MINUS, '*' => :MULTIPLY, '**' => :POWER, '/' => :DIVIDE, '%' => :MODULO,
14
14
 
@@ -65,11 +65,8 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 207)
65
65
  end
66
66
 
67
67
  def parse
68
- if @tokens.size == 0
69
- build Joiner, :JOINER, position: 0
70
- else
71
- do_parse
72
- end
68
+ children = @tokens.size.zero? ? [] : do_parse
69
+ build Joiner, :JOINER, *children, position: 0
73
70
  end
74
71
 
75
72
  def next_token
@@ -118,443 +115,466 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 207)
118
115
  ##### State transition tables begin ###
119
116
 
120
117
  racc_action_table = [
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,
118
+ 46, 10, 26, 103, 117, 63, 114, 64, 25, 24,
119
+ 55, 56, 114, 149, 115, 152, 46, 153, 26, 139,
120
+ 64, 64, 117, 101, 25, 24, 148, 64, 115, 69,
121
+ 7, 8, 150, 161, 162, 27, 116, 38, 39, 40,
122
+ 41, 42, 43, 44, 45, 69, 7, 8, 47, 55,
123
+ 56, 27, 154, 38, 39, 40, 41, 42, 43, 44,
124
+ 45, 46, 142, 26, 47, 7, 48, 86, 87, 25,
125
+ 24, 72, 67, 71, 73, 76, 74, 75, 46, 96,
126
+ 26, 65, 95, 98, 21, 22, 25, 24, 12, 14,
127
+ 16, 53, 18, 86, 87, 117, 27, 72, 38, 39,
128
+ 40, 41, 42, 43, 44, 45, 103, 69, 159, 47,
129
+ 86, 87, nil, 27, 72, 38, 39, 40, 41, 42,
130
+ 43, 44, 45, 46, 144, 26, 47, 143, 98, 86,
131
+ 87, 25, 24, 72, nil, 71, 73, 76, 74, 75,
132
+ 86, 87, 86, 87, 72, 46, 72, 26, 71, 73,
133
+ 76, nil, 59, 25, 24, 55, 56, nil, 27, 54,
134
+ 38, 39, 40, 41, 42, 43, 44, 45, 21, 22,
135
+ 46, 47, 26, nil, 69, 7, 48, nil, 25, 24,
136
+ 27, nil, 38, 39, 40, 41, 42, 43, 44, 45,
137
+ 86, 87, 147, 47, 46, nil, 26, 86, 87, 59,
138
+ nil, 72, 25, 24, nil, 27, nil, 38, 39, 40,
139
+ 41, 42, 43, 44, 45, 86, 87, 46, 47, 26,
140
+ 86, 87, nil, 59, 72, 25, 24, nil, nil, 27,
141
+ nil, 38, 39, 40, 41, 42, 43, 44, 45, 46,
142
+ nil, 26, 47, nil, nil, nil, 69, 25, 24, nil,
143
+ nil, nil, 27, nil, 38, 39, 40, 41, 42, 43,
144
+ 44, 45, 46, nil, 26, 47, nil, nil, 59, nil,
145
+ 25, 24, nil, nil, 27, nil, 38, 39, 40, 41,
146
+ 42, 43, 44, 45, 46, nil, 26, 47, nil, nil,
147
+ nil, 69, 25, 24, nil, nil, nil, 27, nil, 38,
148
+ 39, 40, 41, 42, 43, 44, 45, 46, nil, 26,
149
+ 47, nil, nil, 69, nil, 25, 24, nil, nil, 27,
150
+ nil, 38, 39, 40, 41, 42, 43, 44, 45, 46,
151
+ nil, 26, 47, nil, nil, nil, 69, 25, 24, nil,
152
+ nil, nil, 27, nil, 38, 39, 40, 41, 42, 43,
153
+ 44, 45, 46, nil, 26, 47, nil, nil, 69, nil,
154
+ 25, 24, nil, nil, 27, nil, 38, 39, 40, 41,
155
+ 42, 43, 44, 45, 46, nil, 26, 47, nil, nil,
156
+ nil, 69, 25, 24, nil, nil, nil, 27, nil, 38,
157
+ 39, 40, 41, 42, 43, 44, 45, 46, nil, 26,
158
+ 47, nil, nil, 69, nil, 25, 24, nil, nil, 27,
159
+ nil, 38, 39, 40, 41, 42, 43, 44, 45, 46,
160
+ nil, 26, 47, nil, nil, nil, 69, 25, 24, nil,
161
+ nil, nil, 27, nil, 38, 39, 40, 41, 42, 43,
162
+ 44, 45, 21, 22, 46, 47, 26, nil, 69, nil,
163
+ nil, nil, 25, 24, 27, 93, 38, 39, 40, 41,
164
+ 42, 43, 44, 45, nil, nil, 46, 47, 26, nil,
165
+ nil, nil, nil, 69, 25, 24, nil, nil, nil, 27,
166
+ nil, 38, 39, 40, 41, 42, 43, 44, 45, 46,
167
+ nil, 26, 47, nil, nil, 69, nil, 25, 24, nil,
168
+ 99, 27, nil, 38, 39, 40, 41, 42, 43, 44,
169
+ 45, 46, nil, 26, 47, nil, nil, nil, 69, 25,
170
+ 24, nil, nil, nil, 27, nil, 38, 39, 40, 41,
171
+ 42, 43, 44, 45, 21, 22, nil, 47, 12, 14,
172
+ 16, 104, 18, 106, 107, nil, 27, nil, 38, 39,
173
+ 40, 41, 42, 43, 44, 45, 46, nil, 26, 47,
174
+ nil, nil, nil, nil, 25, 24, nil, nil, nil, 86,
175
+ 87, nil, 46, 72, 26, 71, 73, 76, 74, 75,
176
+ 25, 24, 86, 87, nil, 69, 72, nil, 71, 73,
177
+ 76, 27, nil, 38, 39, 40, 41, 42, 43, 44,
178
+ 45, 69, nil, nil, 47, nil, nil, 27, nil, 38,
179
+ 39, 40, 41, 42, 43, 44, 45, 46, nil, 26,
180
+ 47, nil, nil, nil, nil, 25, 24, nil, nil, nil,
181
+ 86, 87, nil, 46, 72, 26, 71, 73, 76, 74,
182
+ 75, 25, 24, nil, nil, nil, 69, nil, nil, nil,
183
+ nil, nil, 27, nil, 38, 39, 40, 41, 42, 43,
184
+ 44, 45, 69, nil, nil, 47, nil, nil, 27, nil,
185
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, nil,
186
+ 26, 47, nil, nil, nil, nil, 25, 24, nil, nil,
187
+ nil, nil, nil, nil, 46, nil, 26, nil, nil, nil,
188
+ nil, nil, 25, 24, nil, nil, nil, 69, nil, nil,
189
+ nil, nil, nil, 27, nil, 38, 39, 40, 41, 42,
190
+ 43, 44, 45, 69, nil, nil, 47, nil, nil, 27,
191
+ nil, 38, 39, 40, 41, 42, 43, 44, 45, 46,
192
+ nil, 26, 47, nil, nil, nil, nil, 25, 24, nil,
193
+ nil, nil, nil, nil, nil, nil, nil, 46, nil, 26,
194
+ nil, nil, nil, nil, nil, 25, 24, nil, 69, nil,
195
+ nil, nil, nil, nil, 27, nil, 38, 39, 40, 41,
196
+ 42, 43, 44, 45, nil, 14, 69, 47, 18, nil,
197
+ nil, nil, 27, nil, 38, 39, 40, 41, 42, 43,
198
+ 44, 45, 46, nil, 26, 47, nil, nil, nil, nil,
199
+ 25, 24, nil, nil, nil, nil, nil, nil, 46, nil,
158
200
  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,
201
+ nil, 59, nil, nil, nil, nil, nil, 27, 121, 38,
202
+ 39, 40, 41, 42, 43, 44, 45, 69, nil, nil,
203
+ 47, nil, nil, 27, nil, 38, 39, 40, 41, 42,
204
+ 43, 44, 45, 46, nil, 26, 47, nil, nil, nil,
205
+ nil, 25, 24, nil, nil, nil, nil, nil, nil, 46,
164
206
  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,
207
+ nil, nil, 69, nil, nil, nil, nil, nil, 27, nil,
208
+ 38, 39, 40, 41, 42, 43, 44, 45, 69, nil,
209
+ nil, 47, nil, nil, 27, nil, 38, 39, 40, 41,
210
+ 42, 43, 44, 45, 46, nil, 26, 47, nil, nil,
189
211
  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,
212
+ 46, nil, 26, nil, nil, nil, nil, nil, 25, 24,
213
+ nil, nil, nil, 69, nil, nil, nil, nil, nil, 27,
214
+ nil, 38, 39, 40, 41, 42, 43, 44, 45, 69,
215
+ nil, nil, 47, nil, nil, 27, nil, 38, 39, 40,
216
+ 41, 42, 43, 44, 45, 46, nil, 26, 47, nil,
195
217
  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 ]
218
+ nil, 46, nil, 26, nil, nil, nil, nil, nil, 25,
219
+ 24, nil, nil, nil, 69, nil, nil, nil, nil, nil,
220
+ 27, nil, 38, 39, 40, 41, 42, 43, 44, 45,
221
+ 69, nil, nil, 47, nil, nil, 27, nil, 38, 39,
222
+ 40, 41, 42, 43, 44, 45, 46, nil, 26, 47,
223
+ nil, nil, 86, 87, 25, 24, 72, nil, 71, 73,
224
+ 76, 74, 75, 79, 80, 81, 82, 83, 84, 77,
225
+ 78, 88, 85, nil, nil, 59, nil, nil, nil, nil,
226
+ nil, 27, nil, 38, 39, 40, 41, 42, 43, 44,
227
+ 45, 86, 87, nil, 47, 72, nil, 71, 73, 76,
228
+ 74, 75, 79, 80, 81, 82, 83, 84, 77, 78,
229
+ 88, 85, 86, 87, 160, nil, 72, nil, 71, 73,
230
+ 76, 74, 75, 79, 80, 81, 82, 83, 84, 77,
231
+ 78, 88, 85, 86, 87, nil, nil, 72, nil, 71,
232
+ 73, 76, 74, 75, 79, 80, 81, 82, 83, 84,
233
+ 77, 78, 88, 85, 86, 87, nil, nil, 72, nil,
234
+ 71, 73, 76, 74, 75, 79, 80, 81, 82, 83,
235
+ 84, 77, 78, 88, 85, 86, 87, nil, nil, 72,
236
+ nil, 71, 73, 76, 74, 75, 79, 80, 81, 82,
237
+ 83, 84, 77, 78, 88, 85, 86, 87, nil, nil,
238
+ 72, nil, 71, 73, 76, 74, 75, 79, 80, 81,
239
+ 82, 83, 84, 77, 78, 88, 85, 86, 87, nil,
240
+ nil, 72, nil, 71, 73, 76, 74, 75, 79, 80,
241
+ 81, 82, 83, 84, 77, 78, -106, 86, 87, nil,
242
+ nil, 72, nil, 71, 73, 76, 74, 75, 79, 80,
243
+ 81, 82, 83, 84, 77, 86, 87, nil, nil, 72,
244
+ nil, 71, 73, 76, 74, 75, 79, 80, 81, 82,
245
+ -106, -106, 86, 87, nil, nil, 72, nil, 71, 73,
246
+ 76, 74, 75, 79, 80, 81, 82, -106, -106, 86,
247
+ 87, nil, nil, 72, nil, 71, 73, 76, 74, 75,
248
+ 79, 80, 81, 82, 83, 84 ]
250
249
 
251
250
  racc_action_check = [
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,
251
+ 115, 1, 115, 47, 102, 16, 69, 139, 115, 115,
252
+ 146, 146, 59, 100, 59, 105, 114, 107, 114, 86,
253
+ 16, 69, 61, 47, 114, 114, 100, 59, 103, 115,
254
+ 1, 1, 102, 140, 146, 115, 60, 115, 115, 115,
255
+ 115, 115, 115, 115, 115, 114, 0, 0, 115, 92,
256
+ 92, 114, 108, 114, 114, 114, 114, 114, 114, 114,
257
+ 114, 8, 92, 8, 114, 9, 9, 131, 131, 8,
258
+ 8, 131, 20, 131, 131, 131, 131, 131, 160, 45,
259
+ 160, 17, 45, 45, 8, 8, 160, 160, 8, 8,
260
+ 8, 10, 8, 89, 89, 157, 8, 89, 8, 8,
261
+ 8, 8, 8, 8, 8, 8, 117, 160, 122, 8,
262
+ 128, 128, nil, 160, 128, 160, 160, 160, 160, 160,
263
+ 160, 160, 160, 104, 94, 104, 160, 94, 94, 132,
264
+ 132, 104, 104, 132, nil, 132, 132, 132, 132, 132,
265
+ 123, 123, 127, 127, 123, 98, 127, 98, 127, 127,
266
+ 127, nil, 104, 98, 98, 13, 13, nil, 104, 13,
267
+ 104, 104, 104, 104, 104, 104, 104, 104, 98, 98,
268
+ 14, 104, 14, nil, 98, 49, 49, nil, 14, 14,
269
+ 98, nil, 98, 98, 98, 98, 98, 98, 98, 98,
270
+ 90, 90, 98, 98, 116, nil, 116, 125, 125, 14,
271
+ nil, 125, 116, 116, nil, 14, nil, 14, 14, 14,
272
+ 14, 14, 14, 14, 14, 91, 91, 88, 14, 88,
273
+ 124, 124, nil, 116, 124, 88, 88, nil, nil, 116,
274
+ nil, 116, 116, 116, 116, 116, 116, 116, 116, 18,
275
+ nil, 18, 116, nil, nil, nil, 88, 18, 18, nil,
276
+ nil, nil, 88, nil, 88, 88, 88, 88, 88, 88,
277
+ 88, 88, 149, nil, 149, 88, nil, nil, 18, nil,
278
+ 149, 149, nil, nil, 18, nil, 18, 18, 18, 18,
279
+ 18, 18, 18, 18, 21, nil, 21, 18, nil, nil,
280
+ nil, 149, 21, 21, nil, nil, nil, 149, nil, 149,
281
+ 149, 149, 149, 149, 149, 149, 149, 22, nil, 22,
282
+ 149, nil, nil, 21, nil, 22, 22, nil, nil, 21,
283
+ nil, 21, 21, 21, 21, 21, 21, 21, 21, 77,
284
+ nil, 77, 21, nil, nil, nil, 22, 77, 77, nil,
285
+ nil, nil, 22, nil, 22, 22, 22, 22, 22, 22,
286
+ 22, 22, 24, nil, 24, 22, nil, nil, 77, nil,
287
+ 24, 24, nil, nil, 77, nil, 77, 77, 77, 77,
288
+ 77, 77, 77, 77, 25, nil, 25, 77, nil, nil,
289
+ nil, 24, 25, 25, nil, nil, nil, 24, nil, 24,
290
+ 24, 24, 24, 24, 24, 24, 24, 26, nil, 26,
291
+ 24, nil, nil, 25, nil, 26, 26, nil, nil, 25,
292
+ nil, 25, 25, 25, 25, 25, 25, 25, 25, 27,
293
+ nil, 27, 25, nil, nil, nil, 26, 27, 27, nil,
294
+ nil, nil, 26, nil, 26, 26, 26, 26, 26, 26,
295
+ 26, 26, 27, 27, 85, 26, 85, nil, 27, nil,
296
+ nil, nil, 85, 85, 27, 27, 27, 27, 27, 27,
297
+ 27, 27, 27, 27, nil, nil, 46, 27, 46, nil,
298
+ nil, nil, nil, 85, 46, 46, nil, nil, nil, 85,
299
+ nil, 85, 85, 85, 85, 85, 85, 85, 85, 84,
300
+ nil, 84, 85, nil, nil, 46, nil, 84, 84, nil,
301
+ 46, 46, nil, 46, 46, 46, 46, 46, 46, 46,
302
+ 46, 48, nil, 48, 46, nil, nil, nil, 84, 48,
303
+ 48, nil, nil, nil, 84, nil, 84, 84, 84, 84,
304
+ 84, 84, 84, 84, 48, 48, nil, 84, 48, 48,
305
+ 48, 48, 48, 48, 48, nil, 48, nil, 48, 48,
306
+ 48, 48, 48, 48, 48, 48, 83, nil, 83, 48,
307
+ nil, nil, nil, nil, 83, 83, nil, nil, nil, 134,
308
+ 134, nil, 55, 134, 55, 134, 134, 134, 134, 134,
309
+ 55, 55, 126, 126, nil, 83, 126, nil, 126, 126,
310
+ 126, 83, nil, 83, 83, 83, 83, 83, 83, 83,
311
+ 83, 55, nil, nil, 83, nil, nil, 55, nil, 55,
312
+ 55, 55, 55, 55, 55, 55, 55, 56, nil, 56,
313
+ 55, nil, nil, nil, nil, 56, 56, nil, nil, nil,
314
+ 133, 133, nil, 82, 133, 82, 133, 133, 133, 133,
315
+ 133, 82, 82, nil, nil, nil, 56, nil, nil, nil,
316
+ nil, nil, 56, nil, 56, 56, 56, 56, 56, 56,
317
+ 56, 56, 82, nil, nil, 56, nil, nil, 82, nil,
318
+ 82, 82, 82, 82, 82, 82, 82, 82, 81, nil,
319
+ 81, 82, nil, nil, nil, nil, 81, 81, nil, nil,
290
320
  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,
298
- nil, nil, nil, nil, 24, nil, 24, 24, 24, 24,
299
- 24, 24, 24, 24, 25, nil, nil, nil, nil, nil,
300
- 25, nil, 25, 25, 25, 25, 25, 25, 25, 25,
301
- 26, nil, 26, nil, nil, nil, nil, nil, 26, 26,
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,
321
+ nil, nil, 80, 80, nil, nil, nil, 81, nil, nil,
322
+ nil, nil, nil, 81, nil, 81, 81, 81, 81, 81,
323
+ 81, 81, 81, 80, nil, nil, 81, nil, nil, 80,
324
+ nil, 80, 80, 80, 80, 80, 80, 80, 80, 79,
325
+ nil, 79, 80, nil, nil, nil, nil, 79, 79, nil,
326
+ nil, nil, nil, nil, nil, nil, nil, 63, nil, 63,
327
+ nil, nil, nil, nil, nil, 63, 63, nil, 79, nil,
328
+ nil, nil, nil, nil, 79, nil, 79, 79, 79, 79,
329
+ 79, 79, 79, 79, nil, 63, 63, 79, 63, nil,
330
+ nil, nil, 63, nil, 63, 63, 63, 63, 63, 63,
331
+ 63, 63, 64, nil, 64, 63, nil, nil, nil, nil,
332
+ 64, 64, nil, nil, nil, nil, nil, nil, 78, nil,
333
+ 78, nil, nil, nil, nil, nil, 78, 78, nil, nil,
334
+ nil, 64, nil, nil, nil, nil, nil, 64, 64, 64,
335
+ 64, 64, 64, 64, 64, 64, 64, 78, nil, nil,
336
+ 64, nil, nil, 78, nil, 78, 78, 78, 78, 78,
337
+ 78, 78, 78, 71, nil, 71, 78, nil, nil, nil,
338
+ nil, 71, 71, nil, nil, nil, nil, nil, nil, 72,
339
+ nil, 72, nil, nil, nil, nil, nil, 72, 72, nil,
340
+ nil, nil, 71, nil, nil, nil, nil, nil, 71, nil,
341
+ 71, 71, 71, 71, 71, 71, 71, 71, 72, nil,
342
+ nil, 71, nil, nil, 72, nil, 72, 72, 72, 72,
343
+ 72, 72, 72, 72, 73, nil, 73, 72, nil, nil,
344
+ nil, nil, 73, 73, nil, nil, nil, nil, nil, nil,
345
+ 74, nil, 74, nil, nil, nil, nil, nil, 74, 74,
346
+ nil, nil, nil, 73, nil, nil, nil, nil, nil, 73,
347
+ nil, 73, 73, 73, 73, 73, 73, 73, 73, 74,
348
+ nil, nil, 73, nil, nil, 74, nil, 74, 74, 74,
349
+ 74, 74, 74, 74, 74, 75, nil, 75, 74, nil,
350
+ nil, nil, nil, 75, 75, nil, nil, nil, nil, nil,
327
351
  nil, 76, nil, 76, nil, nil, nil, nil, nil, 76,
328
- 76, nil, nil, nil, 77, nil, nil, nil, nil, nil,
329
- 77, nil, 77, 77, 77, 77, 77, 77, 77, 77,
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,
356
- 71, nil, 71, nil, nil, nil, nil, nil, 71, 71,
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,
352
+ 76, nil, nil, nil, 75, nil, nil, nil, nil, nil,
353
+ 75, nil, 75, 75, 75, 75, 75, 75, 75, 75,
354
+ 76, nil, nil, 75, nil, nil, 76, nil, 76, 76,
355
+ 76, 76, 76, 76, 76, 76, 87, nil, 87, 76,
356
+ nil, nil, 23, 23, 87, 87, 23, nil, 23, 23,
367
357
  23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
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 ]
358
+ 23, 23, 23, nil, nil, 87, nil, nil, nil, nil,
359
+ nil, 87, nil, 87, 87, 87, 87, 87, 87, 87,
360
+ 87, 137, 137, nil, 87, 137, nil, 137, 137, 137,
361
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
362
+ 137, 137, 156, 156, 137, nil, 156, nil, 156, 156,
363
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
364
+ 156, 156, 156, 120, 120, nil, nil, 120, nil, 120,
365
+ 120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
366
+ 120, 120, 120, 120, 163, 163, nil, nil, 163, nil,
367
+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
368
+ 163, 163, 163, 163, 163, 58, 58, nil, nil, 58,
369
+ nil, 58, 58, 58, 58, 58, 58, 58, 58, 58,
370
+ 58, 58, 58, 58, 58, 58, 155, 155, nil, nil,
371
+ 155, nil, 155, 155, 155, 155, 155, 155, 155, 155,
372
+ 155, 155, 155, 155, 155, 155, 155, 141, 141, nil,
373
+ nil, 141, nil, 141, 141, 141, 141, 141, 141, 141,
374
+ 141, 141, 141, 141, 141, 141, 141, 130, 130, nil,
375
+ nil, 130, nil, 130, 130, 130, 130, 130, 130, 130,
376
+ 130, 130, 130, 130, 130, 135, 135, nil, nil, 135,
377
+ nil, 135, 135, 135, 135, 135, 135, 135, 135, 135,
378
+ 135, 135, 136, 136, nil, nil, 136, nil, 136, 136,
379
+ 136, 136, 136, 136, 136, 136, 136, 136, 136, 129,
380
+ 129, nil, nil, 129, nil, 129, 129, 129, 129, 129,
381
+ 129, 129, 129, 129, 129, 129 ]
381
382
 
382
383
  racc_action_pointer = [
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,
384
+ 17, 1, nil, nil, nil, nil, nil, nil, 57, 36,
385
+ 91, nil, nil, 128, 166, nil, -19, 50, 235, nil,
386
+ 41, 280, 303, 1049, 348, 370, 393, 415, nil, nil,
386
387
  nil, nil, nil, nil, nil, nil, nil, 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 ]
388
+ nil, nil, nil, nil, nil, 33, 462, -30, 507, 146,
389
+ nil, nil, nil, nil, nil, 568, 613, nil, 1172, -12,
390
+ 11, -3, nil, 753, 798, nil, nil, nil, nil, -18,
391
+ nil, 859, 875, 920, 936, 981, 997, 325, 814, 735,
392
+ 690, 674, 629, 552, 485, 440, -14, 1042, 213, 90,
393
+ 187, 212, 22, nil, 78, nil, nil, nil, 141, nil,
394
+ -12, nil, -21, 2, 119, -16, nil, -18, 21, nil,
395
+ nil, nil, nil, nil, 12, -4, 190, 73, nil, nil,
396
+ 1130, nil, 68, 137, 217, 194, 579, 139, 107, 1286,
397
+ 1234, 64, 126, 627, 566, 1252, 1269, 1088, nil, -32,
398
+ -5, 1214, nil, nil, nil, nil, -17, nil, nil, 258,
399
+ nil, nil, nil, nil, nil, 1193, 1109, 70, nil, nil,
400
+ 74, nil, nil, 1151 ]
398
401
 
399
402
  racc_action_default = [
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,
403
- -66, -67, -68, -69, -70, -71, -72, -73, -74, -75,
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 ]
403
+ -106, -106, -2, -3, -4, -5, -6, -7, -106, -106,
404
+ -106, -1, -8, -106, -10, -12, -103, -106, -18, -20,
405
+ -106, -36, -40, -41, -106, -106, -106, -106, -65, -66,
406
+ -67, -68, -69, -70, -71, -72, -73, -74, -75, -76,
407
+ -77, -78, -79, -80, -81, -106, -106, -106, -106, -106,
408
+ -29, -30, -31, 164, -9, -34, -38, -11, -94, -103,
409
+ -101, -102, -98, -106, -106, -14, -19, -25, -35, -103,
410
+ -39, -106, -106, -106, -106, -106, -106, -106, -106, -106,
411
+ -106, -106, -106, -106, -106, -106, -106, -106, -106, -48,
412
+ -49, -58, -106, -63, -106, -83, -84, -85, -106, -91,
413
+ -106, -95, -106, -106, -15, -106, -22, -24, -106, -27,
414
+ -28, -32, -33, -37, -106, -106, -106, -106, -13, -21,
415
+ -60, -104, -106, -42, -43, -44, -45, -46, -47, -50,
416
+ -51, -52, -53, -54, -55, -56, -57, -106, -61, -103,
417
+ -106, -90, -64, -82, -86, -87, -106, -89, -92, -106,
418
+ -96, -16, -17, -23, -26, -99, -93, -100, -97, -105,
419
+ -106, -62, -88, -59 ]
415
420
 
416
421
  racc_goto_table = [
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,
422
+ 58, 1, 57, 102, 58, 97, 66, 68, 70, 108,
423
+ 89, 90, 91, 92, 49, 51, 52, 119, 138, 94,
424
+ 105, 100, 118, 158, nil, nil, nil, 2, 11, nil,
425
+ nil, nil, 58, nil, nil, nil, 50, nil, nil, nil,
426
+ nil, 112, 113, nil, nil, nil, nil, nil, nil, 120,
427
+ 58, nil, 122, nil, 145, 110, 111, 123, 124, 125,
428
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
429
+ 136, 137, 157, 58, 141, 140, 109, nil, nil, nil,
430
+ nil, nil, nil, nil, 146, nil, nil, nil, nil, nil,
431
+ 58, nil, 151, nil, nil, nil, nil, nil, nil, nil,
432
+ 120, 155, 156, nil, nil, nil, nil, nil, nil, nil,
427
433
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
428
434
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
429
- 141 ]
435
+ nil, nil, nil, nil, nil, 156, nil, nil, nil, nil,
436
+ nil, nil, nil, nil, nil, nil, 163 ]
430
437
 
431
438
  racc_goto_check = [
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,
439
+ 19, 1, 9, 33, 19, 31, 9, 7, 7, 15,
440
+ 19, 19, 19, 7, 18, 12, 17, 13, 20, 30,
441
+ 11, 32, 8, 34, nil, nil, nil, 2, 2, nil,
442
+ nil, nil, 19, nil, nil, nil, 2, nil, nil, nil,
443
+ nil, 7, 7, nil, nil, nil, nil, nil, nil, 19,
444
+ 19, nil, 9, nil, 31, 12, 17, 19, 19, 19,
445
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
446
+ 19, 19, 33, 19, 19, 9, 2, nil, nil, nil,
447
+ nil, nil, nil, nil, 7, nil, nil, nil, nil, nil,
448
+ 19, nil, 9, nil, nil, nil, nil, nil, nil, nil,
449
+ 19, 19, 19, nil, nil, nil, nil, nil, nil, nil,
442
450
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
443
451
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
444
- 19 ]
452
+ nil, nil, nil, nil, nil, 19, nil, nil, nil, nil,
453
+ nil, nil, nil, nil, nil, nil, 19 ]
445
454
 
446
455
  racc_goto_pointer = [
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 ]
456
+ nil, 1, 27, nil, nil, nil, nil, -14, -41, -12,
457
+ nil, -28, 6, -46, nil, -39, nil, 7, 5, -14,
458
+ -68, nil, nil, nil, nil, nil, nil, nil, nil, nil,
459
+ -26, -40, -25, -44, -94 ]
451
460
 
452
461
  racc_goto_default = [
453
462
  nil, nil, nil, 3, 4, 5, 6, 13, 15, nil,
454
463
  17, nil, nil, 19, 20, nil, 9, nil, nil, 23,
455
- 35, 28, 29, 30, 31, 32, 33, 34, 57, 58,
456
- 59 ]
464
+ 37, 28, 29, 30, 31, 32, 33, 34, 35, 36,
465
+ nil, nil, 60, 61, 62 ]
457
466
 
458
467
  racc_reduce_table = [
459
468
  0, 0, :racc_error,
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,
469
+ 2, 55, :_reduce_1,
470
+ 1, 55, :_reduce_2,
471
+ 1, 56, :_reduce_none,
472
+ 1, 56, :_reduce_none,
473
+ 1, 56, :_reduce_none,
474
+ 1, 56, :_reduce_none,
475
+ 1, 57, :_reduce_7,
476
+ 2, 58, :_reduce_8,
477
+ 3, 58, :_reduce_9,
478
+ 1, 62, :_reduce_10,
479
+ 2, 62, :_reduce_11,
479
480
  1, 64, :_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,
481
+ 3, 64, :_reduce_13,
482
+ 3, 60, :_reduce_14,
483
+ 1, 65, :_reduce_15,
484
+ 2, 65, :_reduce_16,
485
+ 3, 66, :_reduce_17,
486
+ 1, 67, :_reduce_18,
487
+ 2, 67, :_reduce_19,
488
+ 1, 68, :_reduce_none,
489
+ 3, 68, :_reduce_21,
523
490
  1, 69, :_reduce_none,
524
- 1, 71, :_reduce_none,
525
- 1, 71, :_reduce_none,
526
- 1, 71, :_reduce_none,
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,
532
- 1, 72, :_reduce_none,
533
- 1, 72, :_reduce_none,
534
- 1, 73, :_reduce_none,
491
+ 2, 69, :_reduce_23,
492
+ 1, 69, :_reduce_none,
493
+ 3, 70, :_reduce_25,
494
+ 3, 71, :_reduce_26,
495
+ 2, 72, :_reduce_27,
496
+ 2, 72, :_reduce_28,
497
+ 1, 72, :_reduce_29,
498
+ 1, 72, :_reduce_30,
499
+ 2, 59, :_reduce_31,
500
+ 3, 59, :_reduce_32,
501
+ 3, 61, :_reduce_33,
502
+ 2, 61, :_reduce_34,
503
+ 2, 61, :_reduce_35,
504
+ 1, 61, :_reduce_36,
505
+ 3, 61, :_reduce_37,
506
+ 2, 61, :_reduce_38,
507
+ 2, 61, :_reduce_39,
508
+ 1, 61, :_reduce_40,
509
+ 1, 61, :_reduce_41,
510
+ 3, 73, :_reduce_42,
511
+ 3, 73, :_reduce_43,
512
+ 3, 73, :_reduce_44,
513
+ 3, 73, :_reduce_45,
514
+ 3, 73, :_reduce_46,
515
+ 3, 73, :_reduce_47,
516
+ 2, 73, :_reduce_48,
517
+ 2, 73, :_reduce_49,
518
+ 3, 73, :_reduce_50,
519
+ 3, 73, :_reduce_51,
520
+ 3, 73, :_reduce_52,
521
+ 3, 73, :_reduce_53,
522
+ 3, 73, :_reduce_54,
523
+ 3, 73, :_reduce_55,
524
+ 3, 73, :_reduce_56,
525
+ 3, 73, :_reduce_57,
526
+ 2, 73, :_reduce_58,
527
+ 5, 73, :_reduce_59,
528
+ 3, 73, :_reduce_60,
529
+ 3, 73, :_reduce_61,
530
+ 4, 73, :_reduce_62,
531
+ 2, 73, :_reduce_63,
532
+ 3, 73, :_reduce_64,
535
533
  1, 73, :_reduce_none,
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
534
+ 1, 75, :_reduce_none,
535
+ 1, 75, :_reduce_none,
536
+ 1, 75, :_reduce_none,
537
+ 1, 75, :_reduce_none,
538
+ 1, 75, :_reduce_none,
539
+ 1, 75, :_reduce_none,
540
+ 1, 75, :_reduce_none,
541
+ 1, 75, :_reduce_none,
542
+ 1, 75, :_reduce_none,
543
+ 1, 76, :_reduce_none,
544
+ 1, 76, :_reduce_none,
545
+ 1, 76, :_reduce_none,
546
+ 1, 77, :_reduce_none,
547
+ 1, 77, :_reduce_none,
548
+ 1, 78, :_reduce_none,
549
+ 1, 80, :_reduce_none,
550
+ 3, 79, :_reduce_82,
551
+ 2, 79, :_reduce_83,
552
+ 1, 84, :_reduce_84,
553
+ 1, 84, :_reduce_85,
554
+ 2, 84, :_reduce_86,
555
+ 2, 84, :_reduce_87,
556
+ 3, 85, :_reduce_88,
557
+ 2, 85, :_reduce_89,
558
+ 3, 81, :_reduce_90,
559
+ 2, 82, :_reduce_91,
560
+ 3, 82, :_reduce_92,
561
+ 3, 86, :_reduce_93,
562
+ 1, 86, :_reduce_94,
563
+ 2, 83, :_reduce_95,
564
+ 3, 83, :_reduce_96,
565
+ 3, 87, :_reduce_97,
566
+ 1, 87, :_reduce_98,
567
+ 3, 88, :_reduce_99,
568
+ 3, 63, :_reduce_100,
569
+ 1, 63, :_reduce_none,
570
+ 1, 63, :_reduce_102,
571
+ 1, 74, :_reduce_103,
572
+ 3, 74, :_reduce_104,
573
+ 4, 74, :_reduce_105 ]
574
+
575
+ racc_reduce_n = 106
576
+
577
+ racc_shift_n = 164
558
578
 
559
579
  racc_token_table = {
560
580
  false => 0,
@@ -580,7 +600,7 @@ racc_token_table = {
580
600
  :AND => 20,
581
601
  :OR => 21,
582
602
  :RANGE => 22,
583
- :TERNARY => 23,
603
+ :QUESTION => 23,
584
604
  :ASSIGN => 24,
585
605
  :COMMA => 25,
586
606
  :COLON => 26,
@@ -605,10 +625,14 @@ racc_token_table = {
605
625
  :FLOAT => 45,
606
626
  :STRING => 46,
607
627
  :REGEXP => 47,
608
- :HOPEN => 48,
609
- :HCLOSE => 49 }
628
+ :DOPEN => 48,
629
+ :DCLOSE => 49,
630
+ :IOPEN => 50,
631
+ :ICLOSE => 51,
632
+ :HOPEN => 52,
633
+ :HCLOSE => 53 }
610
634
 
611
- racc_nt_base = 50
635
+ racc_nt_base = 54
612
636
 
613
637
  racc_use_result_var = true
614
638
 
@@ -652,7 +676,7 @@ Racc_token_to_s_table = [
652
676
  "AND",
653
677
  "OR",
654
678
  "RANGE",
655
- "TERNARY",
679
+ "QUESTION",
656
680
  "ASSIGN",
657
681
  "COMMA",
658
682
  "COLON",
@@ -677,6 +701,10 @@ Racc_token_to_s_table = [
677
701
  "FLOAT",
678
702
  "STRING",
679
703
  "REGEXP",
704
+ "DOPEN",
705
+ "DCLOSE",
706
+ "IOPEN",
707
+ "ICLOSE",
680
708
  "HOPEN",
681
709
  "HCLOSE",
682
710
  "$start",
@@ -704,9 +732,13 @@ Racc_token_to_s_table = [
704
732
  "const",
705
733
  "number",
706
734
  "string",
735
+ "dstring",
736
+ "regexp",
707
737
  "range",
708
738
  "array",
709
739
  "hash",
740
+ "dstring_content",
741
+ "dstring_interpolation",
710
742
  "params",
711
743
  "pairs",
712
744
  "pair" ]
@@ -719,14 +751,14 @@ Racc_debug_parser = false
719
751
 
720
752
  module_eval(<<'.,.,', 'parser.y', 55)
721
753
  def _reduce_1(val, _values, result)
722
- pospoppush(2); val[0].children.push(val[1])
754
+ pospoppush(2); val[0].push(val[1])
723
755
  result
724
756
  end
725
757
  .,.,
726
758
 
727
759
  module_eval(<<'.,.,', 'parser.y', 56)
728
760
  def _reduce_2(val, _values, result)
729
- result = build Joiner, :JOINER, val[0], position: pospoppush(1)
761
+ result = [val[0]]
730
762
  result
731
763
  end
732
764
  .,.,
@@ -1114,49 +1146,53 @@ module_eval(<<'.,.,', 'parser.y', 156)
1114
1146
 
1115
1147
  module_eval(<<'.,.,', 'parser.y', 157)
1116
1148
  def _reduce_59(val, _values, result)
1117
- result = build Assigner, val[0], val[2], position: pospoppush(3)
1149
+ result = build Expression, :TERNARY, val[0], val[2], val[4], position: pospoppush(5)
1118
1150
  result
1119
1151
  end
1120
1152
  .,.,
1121
1153
 
1122
1154
  module_eval(<<'.,.,', 'parser.y', 158)
1123
1155
  def _reduce_60(val, _values, result)
1124
- pospoppush(3); val[2].children[0] = val[0]; result = val[2]
1156
+ result = build Assigner, val[0], val[2], position: pospoppush(3)
1125
1157
  result
1126
1158
  end
1127
1159
  .,.,
1128
1160
 
1129
- module_eval(<<'.,.,', 'parser.y', 160)
1161
+ module_eval(<<'.,.,', 'parser.y', 159)
1130
1162
  def _reduce_61(val, _values, result)
1163
+ pospoppush(3); val[2].children[0] = val[0]; result = val[2]
1164
+ result
1165
+ end
1166
+ .,.,
1167
+
1168
+ module_eval(<<'.,.,', 'parser.y', 161)
1169
+ def _reduce_62(val, _values, result)
1131
1170
  result = build Summoner, '[]', val[0], *val[2], position: pospoppush(4)
1132
1171
 
1133
1172
  result
1134
1173
  end
1135
1174
  .,.,
1136
1175
 
1137
- module_eval(<<'.,.,', 'parser.y', 162)
1138
- def _reduce_62(val, _values, result)
1176
+ module_eval(<<'.,.,', 'parser.y', 163)
1177
+ def _reduce_63(val, _values, result)
1139
1178
  pospoppush(2); result = nil
1140
1179
  result
1141
1180
  end
1142
1181
  .,.,
1143
1182
 
1144
- module_eval(<<'.,.,', 'parser.y', 164)
1145
- def _reduce_63(val, _values, result)
1146
- position = pospoppush(3)
1147
- result = case val[1].size
1183
+ module_eval(<<'.,.,', 'parser.y', 165)
1184
+ def _reduce_64(val, _values, result)
1185
+ result = case val[1].size
1148
1186
  when 1
1149
1187
  val[1][0]
1150
1188
  else
1151
- build Sequencer, :SEQUENCE, *val[1].flatten, position: position
1189
+ build Sequencer, :SEQUENCE, *val[1].flatten, position: pospoppush(3)
1152
1190
  end
1153
1191
 
1154
1192
  result
1155
1193
  end
1156
1194
  .,.,
1157
1195
 
1158
- # reduce 64 omitted
1159
-
1160
1196
  # reduce 65 omitted
1161
1197
 
1162
1198
  # reduce 66 omitted
@@ -1185,8 +1221,76 @@ module_eval(<<'.,.,', 'parser.y', 164)
1185
1221
 
1186
1222
  # reduce 78 omitted
1187
1223
 
1224
+ # reduce 79 omitted
1225
+
1226
+ # reduce 80 omitted
1227
+
1228
+ # reduce 81 omitted
1229
+
1188
1230
  module_eval(<<'.,.,', 'parser.y', 181)
1189
- def _reduce_79(val, _values, result)
1231
+ def _reduce_82(val, _values, result)
1232
+ result = build Expression, :DSTRING, *val[1], position: pospoppush(3)
1233
+ result
1234
+ end
1235
+ .,.,
1236
+
1237
+ module_eval(<<'.,.,', 'parser.y', 182)
1238
+ def _reduce_83(val, _values, result)
1239
+ pospoppush(2); result = ''
1240
+ result
1241
+ end
1242
+ .,.,
1243
+
1244
+ module_eval(<<'.,.,', 'parser.y', 183)
1245
+ def _reduce_84(val, _values, result)
1246
+ result = [val[0]]
1247
+ result
1248
+ end
1249
+ .,.,
1250
+
1251
+ module_eval(<<'.,.,', 'parser.y', 184)
1252
+ def _reduce_85(val, _values, result)
1253
+ result = [val[0]]
1254
+ result
1255
+ end
1256
+ .,.,
1257
+
1258
+ module_eval(<<'.,.,', 'parser.y', 185)
1259
+ def _reduce_86(val, _values, result)
1260
+ pospoppush(2); val[0].push(val[1]); result = val[0]
1261
+ result
1262
+ end
1263
+ .,.,
1264
+
1265
+ module_eval(<<'.,.,', 'parser.y', 186)
1266
+ def _reduce_87(val, _values, result)
1267
+ pospoppush(2); val[0].push(val[1]); result = val[0]
1268
+ result
1269
+ end
1270
+ .,.,
1271
+
1272
+ module_eval(<<'.,.,', 'parser.y', 188)
1273
+ def _reduce_88(val, _values, result)
1274
+ result = case val[1].size
1275
+ when 1
1276
+ val[1][0]
1277
+ else
1278
+ build Sequencer, :SEQUENCE, *val[1].flatten, position: pospoppush(3)
1279
+ end
1280
+
1281
+ result
1282
+ end
1283
+ .,.,
1284
+
1285
+ module_eval(<<'.,.,', 'parser.y', 195)
1286
+ def _reduce_89(val, _values, result)
1287
+ pospoppush(2); result = nil
1288
+ result
1289
+ end
1290
+ .,.,
1291
+
1292
+ module_eval(<<'.,.,', 'parser.y', 198)
1293
+ def _reduce_90(val, _values, result)
1190
1294
  result = build Expression, val[1] == '..' ? :RANGE : :ERANGE,
1191
1295
  val[0], val[2], position: pospoppush(3)
1192
1296
 
@@ -1194,101 +1298,101 @@ module_eval(<<'.,.,', 'parser.y', 181)
1194
1298
  end
1195
1299
  .,.,
1196
1300
 
1197
- module_eval(<<'.,.,', 'parser.y', 185)
1198
- def _reduce_80(val, _values, result)
1301
+ module_eval(<<'.,.,', 'parser.y', 202)
1302
+ def _reduce_91(val, _values, result)
1199
1303
  result = build Arrayer, :ARRAY, position: pospoppush(2)
1200
1304
  result
1201
1305
  end
1202
1306
  .,.,
1203
1307
 
1204
- module_eval(<<'.,.,', 'parser.y', 186)
1205
- def _reduce_81(val, _values, result)
1308
+ module_eval(<<'.,.,', 'parser.y', 203)
1309
+ def _reduce_92(val, _values, result)
1206
1310
  result = build Arrayer, :ARRAY, *val[1], position: pospoppush(3)
1207
1311
  result
1208
1312
  end
1209
1313
  .,.,
1210
1314
 
1211
- module_eval(<<'.,.,', 'parser.y', 187)
1212
- def _reduce_82(val, _values, result)
1315
+ module_eval(<<'.,.,', 'parser.y', 204)
1316
+ def _reduce_93(val, _values, result)
1213
1317
  pospoppush(3); val[0].push(val[2])
1214
1318
  result
1215
1319
  end
1216
1320
  .,.,
1217
1321
 
1218
- module_eval(<<'.,.,', 'parser.y', 188)
1219
- def _reduce_83(val, _values, result)
1322
+ module_eval(<<'.,.,', 'parser.y', 205)
1323
+ def _reduce_94(val, _values, result)
1220
1324
  result = [val[0]]
1221
1325
  result
1222
1326
  end
1223
1327
  .,.,
1224
1328
 
1225
- module_eval(<<'.,.,', 'parser.y', 190)
1226
- def _reduce_84(val, _values, result)
1329
+ module_eval(<<'.,.,', 'parser.y', 207)
1330
+ def _reduce_95(val, _values, result)
1227
1331
  result = build Hasher, :HASH, position: pospoppush(2)
1228
1332
  result
1229
1333
  end
1230
1334
  .,.,
1231
1335
 
1232
- module_eval(<<'.,.,', 'parser.y', 191)
1233
- def _reduce_85(val, _values, result)
1336
+ module_eval(<<'.,.,', 'parser.y', 208)
1337
+ def _reduce_96(val, _values, result)
1234
1338
  result = build Hasher, :HASH, *val[1], position: pospoppush(3)
1235
1339
  result
1236
1340
  end
1237
1341
  .,.,
1238
1342
 
1239
- module_eval(<<'.,.,', 'parser.y', 192)
1240
- def _reduce_86(val, _values, result)
1343
+ module_eval(<<'.,.,', 'parser.y', 209)
1344
+ def _reduce_97(val, _values, result)
1241
1345
  pospoppush(3); val[0].push(val[2])
1242
1346
  result
1243
1347
  end
1244
1348
  .,.,
1245
1349
 
1246
- module_eval(<<'.,.,', 'parser.y', 193)
1247
- def _reduce_87(val, _values, result)
1350
+ module_eval(<<'.,.,', 'parser.y', 210)
1351
+ def _reduce_98(val, _values, result)
1248
1352
  result = [val[0]]
1249
1353
  result
1250
1354
  end
1251
1355
  .,.,
1252
1356
 
1253
- module_eval(<<'.,.,', 'parser.y', 194)
1254
- def _reduce_88(val, _values, result)
1357
+ module_eval(<<'.,.,', 'parser.y', 211)
1358
+ def _reduce_99(val, _values, result)
1255
1359
  result = build Arrayer, :PAIR, val[0], val[2], position: pospoppush(3)
1256
1360
  result
1257
1361
  end
1258
1362
  .,.,
1259
1363
 
1260
- module_eval(<<'.,.,', 'parser.y', 196)
1261
- def _reduce_89(val, _values, result)
1364
+ module_eval(<<'.,.,', 'parser.y', 213)
1365
+ def _reduce_100(val, _values, result)
1262
1366
  result = [*val[0], build(Hasher, :HASH, *val[2], position: pospoppush(3))]
1263
1367
  result
1264
1368
  end
1265
1369
  .,.,
1266
1370
 
1267
- # reduce 90 omitted
1371
+ # reduce 101 omitted
1268
1372
 
1269
- module_eval(<<'.,.,', 'parser.y', 198)
1270
- def _reduce_91(val, _values, result)
1373
+ module_eval(<<'.,.,', 'parser.y', 215)
1374
+ def _reduce_102(val, _values, result)
1271
1375
  result = build Hasher, :HASH, *val[0], position: pospoppush(1)
1272
1376
  result
1273
1377
  end
1274
1378
  .,.,
1275
1379
 
1276
- module_eval(<<'.,.,', 'parser.y', 199)
1277
- def _reduce_92(val, _values, result)
1380
+ module_eval(<<'.,.,', 'parser.y', 216)
1381
+ def _reduce_103(val, _values, result)
1278
1382
  result = build Summoner, val[0], position: pospoppush(1)
1279
1383
  result
1280
1384
  end
1281
1385
  .,.,
1282
1386
 
1283
- module_eval(<<'.,.,', 'parser.y', 200)
1284
- def _reduce_93(val, _values, result)
1387
+ module_eval(<<'.,.,', 'parser.y', 217)
1388
+ def _reduce_104(val, _values, result)
1285
1389
  result = build Summoner, val[0], position: pospoppush(3)
1286
1390
  result
1287
1391
  end
1288
1392
  .,.,
1289
1393
 
1290
- module_eval(<<'.,.,', 'parser.y', 202)
1291
- def _reduce_94(val, _values, result)
1394
+ module_eval(<<'.,.,', 'parser.y', 219)
1395
+ def _reduce_105(val, _values, result)
1292
1396
  result = build Summoner, val[0], nil, *val[2], position: pospoppush(4)
1293
1397
 
1294
1398
  result