hotcell 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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