yarp 0.6.0 → 0.8.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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +55 -0
  3. data/CONTRIBUTING.md +4 -0
  4. data/{Makefile.in → Makefile} +5 -4
  5. data/README.md +6 -3
  6. data/config.yml +83 -274
  7. data/docs/build_system.md +4 -15
  8. data/docs/building.md +1 -5
  9. data/docs/encoding.md +1 -0
  10. data/docs/{extension.md → ruby_api.md} +6 -3
  11. data/docs/serialization.md +71 -24
  12. data/ext/yarp/api_node.c +173 -585
  13. data/ext/yarp/extconf.rb +15 -10
  14. data/ext/yarp/extension.c +4 -2
  15. data/ext/yarp/extension.h +1 -1
  16. data/include/yarp/ast.h +167 -306
  17. data/include/yarp/defines.h +5 -15
  18. data/include/yarp/enc/yp_encoding.h +1 -0
  19. data/include/yarp/unescape.h +1 -1
  20. data/include/yarp/util/yp_buffer.h +9 -0
  21. data/include/yarp/util/yp_constant_pool.h +3 -0
  22. data/include/yarp/util/yp_list.h +7 -7
  23. data/include/yarp/util/yp_newline_list.h +4 -0
  24. data/include/yarp/util/yp_state_stack.h +1 -1
  25. data/include/yarp/util/yp_string.h +5 -1
  26. data/include/yarp/version.h +2 -3
  27. data/include/yarp.h +4 -2
  28. data/lib/yarp/ffi.rb +226 -0
  29. data/lib/yarp/lex_compat.rb +16 -2
  30. data/lib/yarp/node.rb +594 -1437
  31. data/lib/yarp/ripper_compat.rb +3 -3
  32. data/lib/yarp/serialize.rb +312 -149
  33. data/lib/yarp.rb +167 -2
  34. data/src/enc/yp_unicode.c +9 -0
  35. data/src/node.c +92 -250
  36. data/src/prettyprint.c +81 -206
  37. data/src/serialize.c +124 -149
  38. data/src/unescape.c +29 -35
  39. data/src/util/yp_buffer.c +18 -0
  40. data/src/util/yp_list.c +7 -16
  41. data/src/util/yp_state_stack.c +0 -6
  42. data/src/util/yp_string.c +8 -17
  43. data/src/yarp.c +444 -717
  44. data/yarp.gemspec +5 -5
  45. metadata +6 -6
  46. data/config.h.in +0 -25
  47. data/configure +0 -4487
@@ -47,9 +47,9 @@ module YARP
47
47
  Ripper::PARSER_EVENT_TABLE.each do |event, arity|
48
48
  case event
49
49
  when /_new\z/
50
- alias :"on_#{event}" :_dispatch_event_new if arity == 0
50
+ alias_method :"on_#{event}", :_dispatch_event_new if arity == 0
51
51
  when /_add\z/
52
- alias :"on_#{event}" :_dispatch_event_push
52
+ alias_method :"on_#{event}", :_dispatch_event_push
53
53
  end
54
54
  end
55
55
  end
@@ -168,7 +168,7 @@ module YARP
168
168
  def _dispatch7(_, _, _, _, _, _, _); end
169
169
 
170
170
  (Ripper::SCANNER_EVENT_TABLE.merge(Ripper::PARSER_EVENT_TABLE)).each do |event, arity|
171
- alias :"on_#{event}" :"_dispatch#{arity}"
171
+ alias_method :"on_#{event}", :"_dispatch#{arity}"
172
172
  end
173
173
  end
174
174
  end
@@ -20,39 +20,63 @@ end
20
20
 
21
21
  module YARP
22
22
  module Serialize
23
+ MAJOR_VERSION = 0
24
+ MINOR_VERSION = 8
25
+ PATCH_VERSION = 0
26
+
23
27
  def self.load(input, serialized)
24
- io = StringIO.new(serialized)
25
- io.set_encoding(Encoding::BINARY)
28
+ Loader.new(Source.new(input), serialized).load
29
+ end
26
30
 
27
- Loader.new(input, serialized, io).load
31
+ def self.load_tokens(source, serialized)
32
+ Loader.new(source, serialized).load_tokens
28
33
  end
29
34
 
30
35
  class Loader
31
36
  attr_reader :encoding, :input, :serialized, :io
32
37
  attr_reader :constant_pool_offset, :constant_pool, :source
33
38
 
34
- def initialize(input, serialized, io)
39
+ def initialize(source, serialized)
35
40
  @encoding = Encoding::UTF_8
36
41
 
37
- @input = input.dup
42
+ @input = source.source.dup
38
43
  @serialized = serialized
39
- @io = io
44
+ @io = StringIO.new(serialized)
45
+ @io.set_encoding(Encoding::BINARY)
40
46
 
41
47
  @constant_pool_offset = nil
42
48
  @constant_pool = nil
43
49
 
44
- offsets = [0]
45
- input.b.scan("\n") { offsets << $~.end(0) }
46
- @source = Source.new(input, offsets)
50
+ @source = source
51
+ end
52
+
53
+ def load_tokens
54
+ tokens = []
55
+ while type = TOKEN_TYPES.fetch(load_varint)
56
+ start = load_varint
57
+ length = load_varint
58
+ lex_state = load_varint
59
+ location = Location.new(@source, start, length)
60
+ tokens << [YARP::Token.new(type, location.slice, location), lex_state]
61
+ end
62
+
63
+ comments = load_varint.times.map { Comment.new(Comment::TYPES.fetch(load_varint), load_location) }
64
+ errors = load_varint.times.map { ParseError.new(load_string, load_location) }
65
+ warnings = load_varint.times.map { ParseWarning.new(load_string, load_location) }
66
+
67
+ raise "Expected to consume all bytes while deserializing" unless @io.eof?
68
+
69
+ YARP::ParseResult.new(tokens, comments, errors, warnings, @source)
47
70
  end
48
71
 
49
72
  def load
50
73
  raise "Invalid serialization" if io.read(4) != "YARP"
51
- raise "Invalid serialization" if io.read(3).unpack("C3") != [0, 6, 0]
74
+ raise "Invalid serialization" if io.read(3).unpack("C3") != [MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION]
52
75
 
53
76
  @encoding = Encoding.find(io.read(load_varint))
54
77
  @input = input.force_encoding(@encoding).freeze
55
78
 
79
+ comments = load_varint.times.map { Comment.new(Comment::TYPES.fetch(io.getbyte), load_location) }
56
80
  errors = load_varint.times.map { ParseError.new(load_string, load_location) }
57
81
  warnings = load_varint.times.map { ParseWarning.new(load_string, load_location) }
58
82
 
@@ -61,7 +85,7 @@ module YARP
61
85
 
62
86
  ast = load_node
63
87
 
64
- YARP::ParseResult.new(ast, [], errors, warnings, @source)
88
+ YARP::ParseResult.new(ast, comments, errors, warnings, @source)
65
89
  end
66
90
 
67
91
  private
@@ -134,256 +158,395 @@ module YARP
134
158
  when 3 then
135
159
  AndNode.new(load_node, load_node, load_location, location)
136
160
  when 4 then
137
- ArgumentsNode.new(Array.new(load_varint) { load_node }, location)
161
+ AndWriteNode.new(load_node, load_node, load_location, location)
138
162
  when 5 then
139
- ArrayNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
163
+ ArgumentsNode.new(Array.new(load_varint) { load_node }, location)
140
164
  when 6 then
141
- ArrayPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
165
+ ArrayNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
142
166
  when 7 then
143
- AssocNode.new(load_node, load_optional_node, load_optional_location, location)
167
+ ArrayPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_location, load_optional_location, location)
144
168
  when 8 then
145
- AssocSplatNode.new(load_optional_node, load_location, location)
169
+ AssocNode.new(load_node, load_optional_node, load_optional_location, location)
146
170
  when 9 then
147
- BackReferenceReadNode.new(location)
171
+ AssocSplatNode.new(load_optional_node, load_location, location)
148
172
  when 10 then
149
- BeginNode.new(load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
173
+ BackReferenceReadNode.new(location)
150
174
  when 11 then
151
- BlockArgumentNode.new(load_optional_node, load_location, location)
175
+ BeginNode.new(load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location, location)
152
176
  when 12 then
153
- BlockNode.new(Array.new(load_varint) { load_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
177
+ BlockArgumentNode.new(load_optional_node, load_location, location)
154
178
  when 13 then
155
- BlockParameterNode.new(load_optional_location, load_location, location)
179
+ BlockNode.new(Array.new(load_varint) { load_constant }, load_optional_node, load_optional_node, load_location, load_location, location)
156
180
  when 14 then
157
- BlockParametersNode.new(load_optional_node, Array.new(load_varint) { load_location }, load_optional_location, load_optional_location, location)
181
+ BlockParameterNode.new(load_optional_location, load_location, location)
158
182
  when 15 then
159
- BreakNode.new(load_optional_node, load_location, location)
183
+ BlockParametersNode.new(load_optional_node, Array.new(load_varint) { load_location }, load_optional_location, load_optional_location, location)
160
184
  when 16 then
161
- CallNode.new(load_optional_node, load_optional_location, load_optional_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, load_varint, load_string, location)
185
+ BreakNode.new(load_optional_node, load_location, location)
162
186
  when 17 then
163
- CallOperatorAndWriteNode.new(load_node, load_location, load_node, location)
187
+ CallNode.new(load_optional_node, load_optional_location, load_optional_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, load_varint, load_string, location)
164
188
  when 18 then
165
- CallOperatorOrWriteNode.new(load_node, load_node, load_location, location)
189
+ CallOperatorAndWriteNode.new(load_node, load_location, load_node, location)
166
190
  when 19 then
167
- CallOperatorWriteNode.new(load_node, load_location, load_node, load_constant, location)
191
+ CallOperatorOrWriteNode.new(load_node, load_node, load_location, location)
168
192
  when 20 then
169
- CapturePatternNode.new(load_node, load_node, load_location, location)
193
+ CallOperatorWriteNode.new(load_node, load_location, load_node, load_constant, location)
170
194
  when 21 then
171
- CaseNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_location, load_location, location)
195
+ CapturePatternNode.new(load_node, load_node, load_location, location)
172
196
  when 22 then
173
- ClassNode.new(Array.new(load_varint) { load_constant }, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_location, location)
197
+ CaseNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_location, load_location, location)
174
198
  when 23 then
175
- ClassVariableOperatorAndWriteNode.new(load_location, load_location, load_node, location)
199
+ ClassNode.new(Array.new(load_varint) { load_constant }, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_location, location)
176
200
  when 24 then
177
- ClassVariableOperatorOrWriteNode.new(load_location, load_location, load_node, location)
201
+ ClassVariableReadNode.new(location)
178
202
  when 25 then
179
- ClassVariableOperatorWriteNode.new(load_location, load_location, load_node, load_constant, location)
203
+ ClassVariableWriteNode.new(load_location, load_optional_node, load_optional_location, location)
180
204
  when 26 then
181
- ClassVariableReadNode.new(location)
205
+ ConstantPathNode.new(load_optional_node, load_node, load_location, location)
182
206
  when 27 then
183
- ClassVariableWriteNode.new(load_location, load_optional_node, load_optional_location, location)
207
+ ConstantPathWriteNode.new(load_node, load_optional_location, load_optional_node, location)
184
208
  when 28 then
185
- ConstantOperatorAndWriteNode.new(load_location, load_location, load_node, location)
209
+ ConstantReadNode.new(location)
186
210
  when 29 then
187
- ConstantOperatorOrWriteNode.new(load_location, load_location, load_node, location)
211
+ ConstantWriteNode.new(load_location, load_optional_node, load_optional_location, location)
188
212
  when 30 then
189
- ConstantOperatorWriteNode.new(load_location, load_location, load_node, load_constant, location)
213
+ load_serialized_length
214
+ DefNode.new(load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varint) { load_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
190
215
  when 31 then
191
- ConstantPathNode.new(load_optional_node, load_node, load_location, location)
216
+ DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
192
217
  when 32 then
193
- ConstantPathOperatorAndWriteNode.new(load_node, load_location, load_node, location)
218
+ ElseNode.new(load_location, load_optional_node, load_optional_location, location)
194
219
  when 33 then
195
- ConstantPathOperatorOrWriteNode.new(load_node, load_location, load_node, location)
220
+ EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
196
221
  when 34 then
197
- ConstantPathOperatorWriteNode.new(load_node, load_location, load_node, load_constant, location)
222
+ EmbeddedVariableNode.new(load_location, load_node, location)
198
223
  when 35 then
199
- ConstantPathWriteNode.new(load_node, load_optional_location, load_optional_node, location)
224
+ EnsureNode.new(load_location, load_optional_node, load_location, location)
200
225
  when 36 then
201
- ConstantReadNode.new(location)
226
+ FalseNode.new(location)
202
227
  when 37 then
203
- ConstantWriteNode.new(load_location, load_optional_node, load_optional_location, location)
228
+ FindPatternNode.new(load_optional_node, load_node, Array.new(load_varint) { load_node }, load_node, load_optional_location, load_optional_location, location)
204
229
  when 38 then
205
- load_serialized_length
206
- DefNode.new(load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varint) { load_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, location)
230
+ FlipFlopNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
207
231
  when 39 then
208
- DefinedNode.new(load_optional_location, load_node, load_optional_location, load_location, location)
232
+ FloatNode.new(location)
209
233
  when 40 then
210
- ElseNode.new(load_location, load_optional_node, load_optional_location, location)
234
+ ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
211
235
  when 41 then
212
- EmbeddedStatementsNode.new(load_location, load_optional_node, load_location, location)
236
+ ForwardingArgumentsNode.new(location)
213
237
  when 42 then
214
- EmbeddedVariableNode.new(load_location, load_node, location)
238
+ ForwardingParameterNode.new(location)
215
239
  when 43 then
216
- EnsureNode.new(load_location, load_optional_node, load_location, location)
240
+ ForwardingSuperNode.new(load_optional_node, location)
217
241
  when 44 then
218
- FalseNode.new(location)
242
+ GlobalVariableReadNode.new(location)
219
243
  when 45 then
220
- FindPatternNode.new(load_optional_node, load_node, Array.new(load_varint) { load_node }, load_node, load_optional_location, load_optional_location, location)
244
+ GlobalVariableWriteNode.new(load_location, load_optional_location, load_optional_node, location)
221
245
  when 46 then
222
- FloatNode.new(location)
246
+ HashNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
223
247
  when 47 then
224
- ForNode.new(load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location, location)
248
+ HashPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
225
249
  when 48 then
226
- ForwardingArgumentsNode.new(location)
250
+ IfNode.new(load_optional_location, load_node, load_optional_node, load_optional_node, load_optional_location, location)
227
251
  when 49 then
228
- ForwardingParameterNode.new(location)
252
+ ImaginaryNode.new(load_node, location)
229
253
  when 50 then
230
- ForwardingSuperNode.new(load_optional_node, location)
254
+ InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
231
255
  when 51 then
232
- GlobalVariableOperatorAndWriteNode.new(load_location, load_location, load_node, location)
256
+ InstanceVariableReadNode.new(location)
233
257
  when 52 then
234
- GlobalVariableOperatorOrWriteNode.new(load_location, load_location, load_node, location)
258
+ InstanceVariableWriteNode.new(load_location, load_optional_node, load_optional_location, location)
235
259
  when 53 then
236
- GlobalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_constant, location)
260
+ IntegerNode.new(location)
237
261
  when 54 then
238
- GlobalVariableReadNode.new(location)
262
+ InterpolatedRegularExpressionNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
239
263
  when 55 then
240
- GlobalVariableWriteNode.new(load_location, load_optional_location, load_optional_node, location)
264
+ InterpolatedStringNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
241
265
  when 56 then
242
- HashNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
266
+ InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
243
267
  when 57 then
244
- HashPatternNode.new(load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_optional_location, load_optional_location, location)
268
+ InterpolatedXStringNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
245
269
  when 58 then
246
- IfNode.new(load_optional_location, load_node, load_optional_node, load_optional_node, load_optional_location, location)
270
+ KeywordHashNode.new(Array.new(load_varint) { load_node }, location)
247
271
  when 59 then
248
- ImaginaryNode.new(load_node, location)
272
+ KeywordParameterNode.new(load_location, load_optional_node, location)
249
273
  when 60 then
250
- InNode.new(load_node, load_optional_node, load_location, load_optional_location, location)
274
+ KeywordRestParameterNode.new(load_location, load_optional_location, location)
251
275
  when 61 then
252
- InstanceVariableOperatorAndWriteNode.new(load_location, load_location, load_node, location)
276
+ LambdaNode.new(Array.new(load_varint) { load_constant }, load_location, load_optional_node, load_optional_node, location)
253
277
  when 62 then
254
- InstanceVariableOperatorOrWriteNode.new(load_location, load_location, load_node, location)
278
+ LocalVariableReadNode.new(load_constant, load_varint, location)
255
279
  when 63 then
256
- InstanceVariableOperatorWriteNode.new(load_location, load_location, load_node, load_constant, location)
280
+ LocalVariableWriteNode.new(load_constant, load_varint, load_optional_node, load_location, load_optional_location, location)
257
281
  when 64 then
258
- InstanceVariableReadNode.new(location)
282
+ MatchPredicateNode.new(load_node, load_node, load_location, location)
259
283
  when 65 then
260
- InstanceVariableWriteNode.new(load_location, load_optional_node, load_optional_location, location)
284
+ MatchRequiredNode.new(load_node, load_node, load_location, location)
261
285
  when 66 then
262
- IntegerNode.new(location)
286
+ MissingNode.new(location)
263
287
  when 67 then
264
- InterpolatedRegularExpressionNode.new(load_location, Array.new(load_varint) { load_node }, load_location, load_varint, location)
288
+ ModuleNode.new(Array.new(load_varint) { load_constant }, load_location, load_node, load_optional_node, load_location, location)
265
289
  when 68 then
266
- InterpolatedStringNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
290
+ MultiWriteNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_node, load_optional_location, load_optional_location, location)
267
291
  when 69 then
268
- InterpolatedSymbolNode.new(load_optional_location, Array.new(load_varint) { load_node }, load_optional_location, location)
292
+ NextNode.new(load_optional_node, load_location, location)
269
293
  when 70 then
270
- InterpolatedXStringNode.new(load_location, Array.new(load_varint) { load_node }, load_location, location)
294
+ NilNode.new(location)
271
295
  when 71 then
272
- KeywordHashNode.new(Array.new(load_varint) { load_node }, location)
296
+ NoKeywordsParameterNode.new(load_location, load_location, location)
273
297
  when 72 then
274
- KeywordParameterNode.new(load_location, load_optional_node, location)
298
+ NumberedReferenceReadNode.new(location)
275
299
  when 73 then
276
- KeywordRestParameterNode.new(load_location, load_optional_location, location)
300
+ OperatorWriteNode.new(load_node, load_location, load_constant, load_node, location)
277
301
  when 74 then
278
- LambdaNode.new(Array.new(load_varint) { load_constant }, load_location, load_optional_node, load_optional_node, location)
302
+ OptionalParameterNode.new(load_constant, load_location, load_location, load_node, location)
279
303
  when 75 then
280
- LocalVariableOperatorAndWriteNode.new(load_location, load_location, load_node, load_constant, location)
304
+ OrNode.new(load_node, load_node, load_location, location)
281
305
  when 76 then
282
- LocalVariableOperatorOrWriteNode.new(load_location, load_location, load_node, load_constant, location)
306
+ OrWriteNode.new(load_node, load_node, load_location, location)
283
307
  when 77 then
284
- LocalVariableOperatorWriteNode.new(load_location, load_location, load_node, load_constant, load_constant, location)
285
- when 78 then
286
- LocalVariableReadNode.new(load_constant, load_varint, location)
287
- when 79 then
288
- LocalVariableWriteNode.new(load_constant, load_varint, load_optional_node, load_location, load_optional_location, location)
289
- when 80 then
290
- MatchPredicateNode.new(load_node, load_node, load_location, location)
291
- when 81 then
292
- MatchRequiredNode.new(load_node, load_node, load_location, location)
293
- when 82 then
294
- MissingNode.new(location)
295
- when 83 then
296
- ModuleNode.new(Array.new(load_varint) { load_constant }, load_location, load_node, load_optional_node, load_location, location)
297
- when 84 then
298
- MultiWriteNode.new(Array.new(load_varint) { load_node }, load_optional_location, load_optional_node, load_optional_location, load_optional_location, location)
299
- when 85 then
300
- NextNode.new(load_optional_node, load_location, location)
301
- when 86 then
302
- NilNode.new(location)
303
- when 87 then
304
- NoKeywordsParameterNode.new(load_location, load_location, location)
305
- when 88 then
306
- NumberedReferenceReadNode.new(location)
307
- when 89 then
308
- OptionalParameterNode.new(load_constant, load_location, load_location, load_node, location)
309
- when 90 then
310
- OrNode.new(load_node, load_node, load_location, location)
311
- when 91 then
312
308
  ParametersNode.new(Array.new(load_varint) { load_node }, Array.new(load_varint) { load_node }, Array.new(load_varint) { load_node }, load_optional_node, Array.new(load_varint) { load_node }, load_optional_node, load_optional_node, location)
313
- when 92 then
309
+ when 78 then
314
310
  ParenthesesNode.new(load_optional_node, load_location, load_location, location)
315
- when 93 then
311
+ when 79 then
316
312
  PinnedExpressionNode.new(load_node, load_location, load_location, load_location, location)
317
- when 94 then
313
+ when 80 then
318
314
  PinnedVariableNode.new(load_node, load_location, location)
319
- when 95 then
315
+ when 81 then
320
316
  PostExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
321
- when 96 then
317
+ when 82 then
322
318
  PreExecutionNode.new(load_optional_node, load_location, load_location, load_location, location)
323
- when 97 then
319
+ when 83 then
324
320
  ProgramNode.new(Array.new(load_varint) { load_constant }, load_node, location)
325
- when 98 then
321
+ when 84 then
326
322
  RangeNode.new(load_optional_node, load_optional_node, load_location, load_varint, location)
327
- when 99 then
323
+ when 85 then
328
324
  RationalNode.new(load_node, location)
329
- when 100 then
325
+ when 86 then
330
326
  RedoNode.new(location)
331
- when 101 then
327
+ when 87 then
332
328
  RegularExpressionNode.new(load_location, load_location, load_location, load_string, load_varint, location)
333
- when 102 then
329
+ when 88 then
334
330
  RequiredDestructuredParameterNode.new(Array.new(load_varint) { load_node }, load_location, load_location, location)
335
- when 103 then
331
+ when 89 then
336
332
  RequiredParameterNode.new(load_constant, location)
337
- when 104 then
333
+ when 90 then
338
334
  RescueModifierNode.new(load_node, load_location, load_node, location)
339
- when 105 then
335
+ when 91 then
340
336
  RescueNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node, location)
341
- when 106 then
337
+ when 92 then
342
338
  RestParameterNode.new(load_location, load_optional_location, location)
343
- when 107 then
339
+ when 93 then
344
340
  RetryNode.new(location)
345
- when 108 then
341
+ when 94 then
346
342
  ReturnNode.new(load_location, load_optional_node, location)
347
- when 109 then
343
+ when 95 then
348
344
  SelfNode.new(location)
349
- when 110 then
345
+ when 96 then
350
346
  SingletonClassNode.new(Array.new(load_varint) { load_constant }, load_location, load_location, load_node, load_optional_node, load_location, location)
351
- when 111 then
347
+ when 97 then
352
348
  SourceEncodingNode.new(location)
353
- when 112 then
349
+ when 98 then
354
350
  SourceFileNode.new(load_string, location)
355
- when 113 then
351
+ when 99 then
356
352
  SourceLineNode.new(location)
357
- when 114 then
353
+ when 100 then
358
354
  SplatNode.new(load_location, load_optional_node, location)
359
- when 115 then
355
+ when 101 then
360
356
  StatementsNode.new(Array.new(load_varint) { load_node }, location)
361
- when 116 then
357
+ when 102 then
362
358
  StringConcatNode.new(load_node, load_node, location)
363
- when 117 then
359
+ when 103 then
364
360
  StringNode.new(load_optional_location, load_location, load_optional_location, load_string, location)
365
- when 118 then
361
+ when 104 then
366
362
  SuperNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node, location)
367
- when 119 then
363
+ when 105 then
368
364
  SymbolNode.new(load_optional_location, load_location, load_optional_location, load_string, location)
369
- when 120 then
365
+ when 106 then
370
366
  TrueNode.new(location)
371
- when 121 then
367
+ when 107 then
372
368
  UndefNode.new(Array.new(load_varint) { load_node }, load_location, location)
373
- when 122 then
369
+ when 108 then
374
370
  UnlessNode.new(load_location, load_node, load_optional_node, load_optional_node, load_optional_location, location)
375
- when 123 then
371
+ when 109 then
376
372
  UntilNode.new(load_location, load_node, load_optional_node, load_varint, location)
377
- when 124 then
373
+ when 110 then
378
374
  WhenNode.new(load_location, Array.new(load_varint) { load_node }, load_optional_node, location)
379
- when 125 then
375
+ when 111 then
380
376
  WhileNode.new(load_location, load_node, load_optional_node, load_varint, location)
381
- when 126 then
377
+ when 112 then
382
378
  XStringNode.new(load_location, load_location, load_location, load_string, location)
383
- when 127 then
379
+ when 113 then
384
380
  YieldNode.new(load_location, load_optional_location, load_optional_node, load_optional_location, location)
385
381
  end
386
382
  end
387
383
  end
384
+
385
+ TOKEN_TYPES = [
386
+ nil,
387
+ :EOF,
388
+ :MISSING,
389
+ :NOT_PROVIDED,
390
+ :AMPERSAND,
391
+ :AMPERSAND_AMPERSAND,
392
+ :AMPERSAND_AMPERSAND_EQUAL,
393
+ :AMPERSAND_DOT,
394
+ :AMPERSAND_EQUAL,
395
+ :BACKTICK,
396
+ :BACK_REFERENCE,
397
+ :BANG,
398
+ :BANG_EQUAL,
399
+ :BANG_TILDE,
400
+ :BRACE_LEFT,
401
+ :BRACE_RIGHT,
402
+ :BRACKET_LEFT,
403
+ :BRACKET_LEFT_ARRAY,
404
+ :BRACKET_LEFT_RIGHT,
405
+ :BRACKET_LEFT_RIGHT_EQUAL,
406
+ :BRACKET_RIGHT,
407
+ :CARET,
408
+ :CARET_EQUAL,
409
+ :CHARACTER_LITERAL,
410
+ :CLASS_VARIABLE,
411
+ :COLON,
412
+ :COLON_COLON,
413
+ :COMMA,
414
+ :COMMENT,
415
+ :CONSTANT,
416
+ :DOT,
417
+ :DOT_DOT,
418
+ :DOT_DOT_DOT,
419
+ :EMBDOC_BEGIN,
420
+ :EMBDOC_END,
421
+ :EMBDOC_LINE,
422
+ :EMBEXPR_BEGIN,
423
+ :EMBEXPR_END,
424
+ :EMBVAR,
425
+ :EQUAL,
426
+ :EQUAL_EQUAL,
427
+ :EQUAL_EQUAL_EQUAL,
428
+ :EQUAL_GREATER,
429
+ :EQUAL_TILDE,
430
+ :FLOAT,
431
+ :FLOAT_IMAGINARY,
432
+ :FLOAT_RATIONAL,
433
+ :FLOAT_RATIONAL_IMAGINARY,
434
+ :GLOBAL_VARIABLE,
435
+ :GREATER,
436
+ :GREATER_EQUAL,
437
+ :GREATER_GREATER,
438
+ :GREATER_GREATER_EQUAL,
439
+ :HEREDOC_END,
440
+ :HEREDOC_START,
441
+ :IDENTIFIER,
442
+ :IGNORED_NEWLINE,
443
+ :INSTANCE_VARIABLE,
444
+ :INTEGER,
445
+ :INTEGER_IMAGINARY,
446
+ :INTEGER_RATIONAL,
447
+ :INTEGER_RATIONAL_IMAGINARY,
448
+ :KEYWORD_ALIAS,
449
+ :KEYWORD_AND,
450
+ :KEYWORD_BEGIN,
451
+ :KEYWORD_BEGIN_UPCASE,
452
+ :KEYWORD_BREAK,
453
+ :KEYWORD_CASE,
454
+ :KEYWORD_CLASS,
455
+ :KEYWORD_DEF,
456
+ :KEYWORD_DEFINED,
457
+ :KEYWORD_DO,
458
+ :KEYWORD_DO_LOOP,
459
+ :KEYWORD_ELSE,
460
+ :KEYWORD_ELSIF,
461
+ :KEYWORD_END,
462
+ :KEYWORD_END_UPCASE,
463
+ :KEYWORD_ENSURE,
464
+ :KEYWORD_FALSE,
465
+ :KEYWORD_FOR,
466
+ :KEYWORD_IF,
467
+ :KEYWORD_IF_MODIFIER,
468
+ :KEYWORD_IN,
469
+ :KEYWORD_MODULE,
470
+ :KEYWORD_NEXT,
471
+ :KEYWORD_NIL,
472
+ :KEYWORD_NOT,
473
+ :KEYWORD_OR,
474
+ :KEYWORD_REDO,
475
+ :KEYWORD_RESCUE,
476
+ :KEYWORD_RESCUE_MODIFIER,
477
+ :KEYWORD_RETRY,
478
+ :KEYWORD_RETURN,
479
+ :KEYWORD_SELF,
480
+ :KEYWORD_SUPER,
481
+ :KEYWORD_THEN,
482
+ :KEYWORD_TRUE,
483
+ :KEYWORD_UNDEF,
484
+ :KEYWORD_UNLESS,
485
+ :KEYWORD_UNLESS_MODIFIER,
486
+ :KEYWORD_UNTIL,
487
+ :KEYWORD_UNTIL_MODIFIER,
488
+ :KEYWORD_WHEN,
489
+ :KEYWORD_WHILE,
490
+ :KEYWORD_WHILE_MODIFIER,
491
+ :KEYWORD_YIELD,
492
+ :KEYWORD___ENCODING__,
493
+ :KEYWORD___FILE__,
494
+ :KEYWORD___LINE__,
495
+ :LABEL,
496
+ :LABEL_END,
497
+ :LAMBDA_BEGIN,
498
+ :LESS,
499
+ :LESS_EQUAL,
500
+ :LESS_EQUAL_GREATER,
501
+ :LESS_LESS,
502
+ :LESS_LESS_EQUAL,
503
+ :MINUS,
504
+ :MINUS_EQUAL,
505
+ :MINUS_GREATER,
506
+ :NEWLINE,
507
+ :NUMBERED_REFERENCE,
508
+ :PARENTHESIS_LEFT,
509
+ :PARENTHESIS_LEFT_PARENTHESES,
510
+ :PARENTHESIS_RIGHT,
511
+ :PERCENT,
512
+ :PERCENT_EQUAL,
513
+ :PERCENT_LOWER_I,
514
+ :PERCENT_LOWER_W,
515
+ :PERCENT_LOWER_X,
516
+ :PERCENT_UPPER_I,
517
+ :PERCENT_UPPER_W,
518
+ :PIPE,
519
+ :PIPE_EQUAL,
520
+ :PIPE_PIPE,
521
+ :PIPE_PIPE_EQUAL,
522
+ :PLUS,
523
+ :PLUS_EQUAL,
524
+ :QUESTION_MARK,
525
+ :REGEXP_BEGIN,
526
+ :REGEXP_END,
527
+ :SEMICOLON,
528
+ :SLASH,
529
+ :SLASH_EQUAL,
530
+ :STAR,
531
+ :STAR_EQUAL,
532
+ :STAR_STAR,
533
+ :STAR_STAR_EQUAL,
534
+ :STRING_BEGIN,
535
+ :STRING_CONTENT,
536
+ :STRING_END,
537
+ :SYMBOL_BEGIN,
538
+ :TILDE,
539
+ :UAMPERSAND,
540
+ :UCOLON_COLON,
541
+ :UDOT_DOT,
542
+ :UDOT_DOT_DOT,
543
+ :UMINUS,
544
+ :UMINUS_NUM,
545
+ :UPLUS,
546
+ :USTAR,
547
+ :USTAR_STAR,
548
+ :WORDS_SEP,
549
+ :__END__,
550
+ ]
388
551
  end
389
552
  end