yarp 0.11.0 → 0.12.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.
data/include/yarp/ast.h CHANGED
@@ -208,290 +208,157 @@ typedef struct yp_node_list {
208
208
  } yp_node_list_t;
209
209
 
210
210
  enum yp_node_type {
211
- YP_ALIAS_NODE = 1,
212
- YP_ALTERNATION_PATTERN_NODE = 2,
213
- YP_AND_NODE = 3,
214
- YP_ARGUMENTS_NODE = 4,
215
- YP_ARRAY_NODE = 5,
216
- YP_ARRAY_PATTERN_NODE = 6,
217
- YP_ASSOC_NODE = 7,
218
- YP_ASSOC_SPLAT_NODE = 8,
219
- YP_BACK_REFERENCE_READ_NODE = 9,
220
- YP_BEGIN_NODE = 10,
221
- YP_BLOCK_ARGUMENT_NODE = 11,
222
- YP_BLOCK_LOCAL_VARIABLE_NODE = 12,
223
- YP_BLOCK_NODE = 13,
224
- YP_BLOCK_PARAMETER_NODE = 14,
225
- YP_BLOCK_PARAMETERS_NODE = 15,
226
- YP_BREAK_NODE = 16,
227
- YP_CALL_AND_WRITE_NODE = 17,
228
- YP_CALL_NODE = 18,
229
- YP_CALL_OPERATOR_WRITE_NODE = 19,
230
- YP_CALL_OR_WRITE_NODE = 20,
231
- YP_CAPTURE_PATTERN_NODE = 21,
232
- YP_CASE_NODE = 22,
233
- YP_CLASS_NODE = 23,
234
- YP_CLASS_VARIABLE_AND_WRITE_NODE = 24,
235
- YP_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 25,
236
- YP_CLASS_VARIABLE_OR_WRITE_NODE = 26,
237
- YP_CLASS_VARIABLE_READ_NODE = 27,
238
- YP_CLASS_VARIABLE_TARGET_NODE = 28,
239
- YP_CLASS_VARIABLE_WRITE_NODE = 29,
240
- YP_CONSTANT_AND_WRITE_NODE = 30,
241
- YP_CONSTANT_OPERATOR_WRITE_NODE = 31,
242
- YP_CONSTANT_OR_WRITE_NODE = 32,
243
- YP_CONSTANT_PATH_AND_WRITE_NODE = 33,
244
- YP_CONSTANT_PATH_NODE = 34,
245
- YP_CONSTANT_PATH_OPERATOR_WRITE_NODE = 35,
246
- YP_CONSTANT_PATH_OR_WRITE_NODE = 36,
247
- YP_CONSTANT_PATH_TARGET_NODE = 37,
248
- YP_CONSTANT_PATH_WRITE_NODE = 38,
249
- YP_CONSTANT_READ_NODE = 39,
250
- YP_CONSTANT_TARGET_NODE = 40,
251
- YP_CONSTANT_WRITE_NODE = 41,
252
- YP_DEF_NODE = 42,
253
- YP_DEFINED_NODE = 43,
254
- YP_ELSE_NODE = 44,
255
- YP_EMBEDDED_STATEMENTS_NODE = 45,
256
- YP_EMBEDDED_VARIABLE_NODE = 46,
257
- YP_ENSURE_NODE = 47,
258
- YP_FALSE_NODE = 48,
259
- YP_FIND_PATTERN_NODE = 49,
260
- YP_FLIP_FLOP_NODE = 50,
261
- YP_FLOAT_NODE = 51,
262
- YP_FOR_NODE = 52,
263
- YP_FORWARDING_ARGUMENTS_NODE = 53,
264
- YP_FORWARDING_PARAMETER_NODE = 54,
265
- YP_FORWARDING_SUPER_NODE = 55,
266
- YP_GLOBAL_VARIABLE_AND_WRITE_NODE = 56,
267
- YP_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 57,
268
- YP_GLOBAL_VARIABLE_OR_WRITE_NODE = 58,
269
- YP_GLOBAL_VARIABLE_READ_NODE = 59,
270
- YP_GLOBAL_VARIABLE_TARGET_NODE = 60,
271
- YP_GLOBAL_VARIABLE_WRITE_NODE = 61,
272
- YP_HASH_NODE = 62,
273
- YP_HASH_PATTERN_NODE = 63,
274
- YP_IF_NODE = 64,
275
- YP_IMAGINARY_NODE = 65,
276
- YP_IN_NODE = 66,
277
- YP_INSTANCE_VARIABLE_AND_WRITE_NODE = 67,
278
- YP_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 68,
279
- YP_INSTANCE_VARIABLE_OR_WRITE_NODE = 69,
280
- YP_INSTANCE_VARIABLE_READ_NODE = 70,
281
- YP_INSTANCE_VARIABLE_TARGET_NODE = 71,
282
- YP_INSTANCE_VARIABLE_WRITE_NODE = 72,
283
- YP_INTEGER_NODE = 73,
284
- YP_INTERPOLATED_REGULAR_EXPRESSION_NODE = 74,
285
- YP_INTERPOLATED_STRING_NODE = 75,
286
- YP_INTERPOLATED_SYMBOL_NODE = 76,
287
- YP_INTERPOLATED_X_STRING_NODE = 77,
288
- YP_KEYWORD_HASH_NODE = 78,
289
- YP_KEYWORD_PARAMETER_NODE = 79,
290
- YP_KEYWORD_REST_PARAMETER_NODE = 80,
291
- YP_LAMBDA_NODE = 81,
292
- YP_LOCAL_VARIABLE_AND_WRITE_NODE = 82,
293
- YP_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 83,
294
- YP_LOCAL_VARIABLE_OR_WRITE_NODE = 84,
295
- YP_LOCAL_VARIABLE_READ_NODE = 85,
296
- YP_LOCAL_VARIABLE_TARGET_NODE = 86,
297
- YP_LOCAL_VARIABLE_WRITE_NODE = 87,
298
- YP_MATCH_PREDICATE_NODE = 88,
299
- YP_MATCH_REQUIRED_NODE = 89,
300
- YP_MISSING_NODE = 90,
301
- YP_MODULE_NODE = 91,
302
- YP_MULTI_TARGET_NODE = 92,
303
- YP_MULTI_WRITE_NODE = 93,
304
- YP_NEXT_NODE = 94,
305
- YP_NIL_NODE = 95,
306
- YP_NO_KEYWORDS_PARAMETER_NODE = 96,
307
- YP_NUMBERED_REFERENCE_READ_NODE = 97,
308
- YP_OPTIONAL_PARAMETER_NODE = 98,
309
- YP_OR_NODE = 99,
310
- YP_PARAMETERS_NODE = 100,
311
- YP_PARENTHESES_NODE = 101,
312
- YP_PINNED_EXPRESSION_NODE = 102,
313
- YP_PINNED_VARIABLE_NODE = 103,
314
- YP_POST_EXECUTION_NODE = 104,
315
- YP_PRE_EXECUTION_NODE = 105,
316
- YP_PROGRAM_NODE = 106,
317
- YP_RANGE_NODE = 107,
318
- YP_RATIONAL_NODE = 108,
319
- YP_REDO_NODE = 109,
320
- YP_REGULAR_EXPRESSION_NODE = 110,
321
- YP_REQUIRED_DESTRUCTURED_PARAMETER_NODE = 111,
322
- YP_REQUIRED_PARAMETER_NODE = 112,
323
- YP_RESCUE_MODIFIER_NODE = 113,
324
- YP_RESCUE_NODE = 114,
325
- YP_REST_PARAMETER_NODE = 115,
326
- YP_RETRY_NODE = 116,
327
- YP_RETURN_NODE = 117,
328
- YP_SELF_NODE = 118,
329
- YP_SINGLETON_CLASS_NODE = 119,
330
- YP_SOURCE_ENCODING_NODE = 120,
331
- YP_SOURCE_FILE_NODE = 121,
332
- YP_SOURCE_LINE_NODE = 122,
333
- YP_SPLAT_NODE = 123,
334
- YP_STATEMENTS_NODE = 124,
335
- YP_STRING_CONCAT_NODE = 125,
336
- YP_STRING_NODE = 126,
337
- YP_SUPER_NODE = 127,
338
- YP_SYMBOL_NODE = 128,
339
- YP_TRUE_NODE = 129,
340
- YP_UNDEF_NODE = 130,
341
- YP_UNLESS_NODE = 131,
342
- YP_UNTIL_NODE = 132,
343
- YP_WHEN_NODE = 133,
344
- YP_WHILE_NODE = 134,
345
- YP_X_STRING_NODE = 135,
346
- YP_YIELD_NODE = 136,
211
+ YP_ALIAS_GLOBAL_VARIABLE_NODE = 1,
212
+ YP_ALIAS_METHOD_NODE = 2,
213
+ YP_ALTERNATION_PATTERN_NODE = 3,
214
+ YP_AND_NODE = 4,
215
+ YP_ARGUMENTS_NODE = 5,
216
+ YP_ARRAY_NODE = 6,
217
+ YP_ARRAY_PATTERN_NODE = 7,
218
+ YP_ASSOC_NODE = 8,
219
+ YP_ASSOC_SPLAT_NODE = 9,
220
+ YP_BACK_REFERENCE_READ_NODE = 10,
221
+ YP_BEGIN_NODE = 11,
222
+ YP_BLOCK_ARGUMENT_NODE = 12,
223
+ YP_BLOCK_LOCAL_VARIABLE_NODE = 13,
224
+ YP_BLOCK_NODE = 14,
225
+ YP_BLOCK_PARAMETER_NODE = 15,
226
+ YP_BLOCK_PARAMETERS_NODE = 16,
227
+ YP_BREAK_NODE = 17,
228
+ YP_CALL_AND_WRITE_NODE = 18,
229
+ YP_CALL_NODE = 19,
230
+ YP_CALL_OPERATOR_WRITE_NODE = 20,
231
+ YP_CALL_OR_WRITE_NODE = 21,
232
+ YP_CAPTURE_PATTERN_NODE = 22,
233
+ YP_CASE_NODE = 23,
234
+ YP_CLASS_NODE = 24,
235
+ YP_CLASS_VARIABLE_AND_WRITE_NODE = 25,
236
+ YP_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 26,
237
+ YP_CLASS_VARIABLE_OR_WRITE_NODE = 27,
238
+ YP_CLASS_VARIABLE_READ_NODE = 28,
239
+ YP_CLASS_VARIABLE_TARGET_NODE = 29,
240
+ YP_CLASS_VARIABLE_WRITE_NODE = 30,
241
+ YP_CONSTANT_AND_WRITE_NODE = 31,
242
+ YP_CONSTANT_OPERATOR_WRITE_NODE = 32,
243
+ YP_CONSTANT_OR_WRITE_NODE = 33,
244
+ YP_CONSTANT_PATH_AND_WRITE_NODE = 34,
245
+ YP_CONSTANT_PATH_NODE = 35,
246
+ YP_CONSTANT_PATH_OPERATOR_WRITE_NODE = 36,
247
+ YP_CONSTANT_PATH_OR_WRITE_NODE = 37,
248
+ YP_CONSTANT_PATH_TARGET_NODE = 38,
249
+ YP_CONSTANT_PATH_WRITE_NODE = 39,
250
+ YP_CONSTANT_READ_NODE = 40,
251
+ YP_CONSTANT_TARGET_NODE = 41,
252
+ YP_CONSTANT_WRITE_NODE = 42,
253
+ YP_DEF_NODE = 43,
254
+ YP_DEFINED_NODE = 44,
255
+ YP_ELSE_NODE = 45,
256
+ YP_EMBEDDED_STATEMENTS_NODE = 46,
257
+ YP_EMBEDDED_VARIABLE_NODE = 47,
258
+ YP_ENSURE_NODE = 48,
259
+ YP_FALSE_NODE = 49,
260
+ YP_FIND_PATTERN_NODE = 50,
261
+ YP_FLIP_FLOP_NODE = 51,
262
+ YP_FLOAT_NODE = 52,
263
+ YP_FOR_NODE = 53,
264
+ YP_FORWARDING_ARGUMENTS_NODE = 54,
265
+ YP_FORWARDING_PARAMETER_NODE = 55,
266
+ YP_FORWARDING_SUPER_NODE = 56,
267
+ YP_GLOBAL_VARIABLE_AND_WRITE_NODE = 57,
268
+ YP_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 58,
269
+ YP_GLOBAL_VARIABLE_OR_WRITE_NODE = 59,
270
+ YP_GLOBAL_VARIABLE_READ_NODE = 60,
271
+ YP_GLOBAL_VARIABLE_TARGET_NODE = 61,
272
+ YP_GLOBAL_VARIABLE_WRITE_NODE = 62,
273
+ YP_HASH_NODE = 63,
274
+ YP_HASH_PATTERN_NODE = 64,
275
+ YP_IF_NODE = 65,
276
+ YP_IMAGINARY_NODE = 66,
277
+ YP_IMPLICIT_NODE = 67,
278
+ YP_IN_NODE = 68,
279
+ YP_INSTANCE_VARIABLE_AND_WRITE_NODE = 69,
280
+ YP_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 70,
281
+ YP_INSTANCE_VARIABLE_OR_WRITE_NODE = 71,
282
+ YP_INSTANCE_VARIABLE_READ_NODE = 72,
283
+ YP_INSTANCE_VARIABLE_TARGET_NODE = 73,
284
+ YP_INSTANCE_VARIABLE_WRITE_NODE = 74,
285
+ YP_INTEGER_NODE = 75,
286
+ YP_INTERPOLATED_MATCH_LAST_LINE_NODE = 76,
287
+ YP_INTERPOLATED_REGULAR_EXPRESSION_NODE = 77,
288
+ YP_INTERPOLATED_STRING_NODE = 78,
289
+ YP_INTERPOLATED_SYMBOL_NODE = 79,
290
+ YP_INTERPOLATED_X_STRING_NODE = 80,
291
+ YP_KEYWORD_HASH_NODE = 81,
292
+ YP_KEYWORD_PARAMETER_NODE = 82,
293
+ YP_KEYWORD_REST_PARAMETER_NODE = 83,
294
+ YP_LAMBDA_NODE = 84,
295
+ YP_LOCAL_VARIABLE_AND_WRITE_NODE = 85,
296
+ YP_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 86,
297
+ YP_LOCAL_VARIABLE_OR_WRITE_NODE = 87,
298
+ YP_LOCAL_VARIABLE_READ_NODE = 88,
299
+ YP_LOCAL_VARIABLE_TARGET_NODE = 89,
300
+ YP_LOCAL_VARIABLE_WRITE_NODE = 90,
301
+ YP_MATCH_LAST_LINE_NODE = 91,
302
+ YP_MATCH_PREDICATE_NODE = 92,
303
+ YP_MATCH_REQUIRED_NODE = 93,
304
+ YP_MATCH_WRITE_NODE = 94,
305
+ YP_MISSING_NODE = 95,
306
+ YP_MODULE_NODE = 96,
307
+ YP_MULTI_TARGET_NODE = 97,
308
+ YP_MULTI_WRITE_NODE = 98,
309
+ YP_NEXT_NODE = 99,
310
+ YP_NIL_NODE = 100,
311
+ YP_NO_KEYWORDS_PARAMETER_NODE = 101,
312
+ YP_NUMBERED_REFERENCE_READ_NODE = 102,
313
+ YP_OPTIONAL_PARAMETER_NODE = 103,
314
+ YP_OR_NODE = 104,
315
+ YP_PARAMETERS_NODE = 105,
316
+ YP_PARENTHESES_NODE = 106,
317
+ YP_PINNED_EXPRESSION_NODE = 107,
318
+ YP_PINNED_VARIABLE_NODE = 108,
319
+ YP_POST_EXECUTION_NODE = 109,
320
+ YP_PRE_EXECUTION_NODE = 110,
321
+ YP_PROGRAM_NODE = 111,
322
+ YP_RANGE_NODE = 112,
323
+ YP_RATIONAL_NODE = 113,
324
+ YP_REDO_NODE = 114,
325
+ YP_REGULAR_EXPRESSION_NODE = 115,
326
+ YP_REQUIRED_DESTRUCTURED_PARAMETER_NODE = 116,
327
+ YP_REQUIRED_PARAMETER_NODE = 117,
328
+ YP_RESCUE_MODIFIER_NODE = 118,
329
+ YP_RESCUE_NODE = 119,
330
+ YP_REST_PARAMETER_NODE = 120,
331
+ YP_RETRY_NODE = 121,
332
+ YP_RETURN_NODE = 122,
333
+ YP_SELF_NODE = 123,
334
+ YP_SINGLETON_CLASS_NODE = 124,
335
+ YP_SOURCE_ENCODING_NODE = 125,
336
+ YP_SOURCE_FILE_NODE = 126,
337
+ YP_SOURCE_LINE_NODE = 127,
338
+ YP_SPLAT_NODE = 128,
339
+ YP_STATEMENTS_NODE = 129,
340
+ YP_STRING_CONCAT_NODE = 130,
341
+ YP_STRING_NODE = 131,
342
+ YP_SUPER_NODE = 132,
343
+ YP_SYMBOL_NODE = 133,
344
+ YP_TRUE_NODE = 134,
345
+ YP_UNDEF_NODE = 135,
346
+ YP_UNLESS_NODE = 136,
347
+ YP_UNTIL_NODE = 137,
348
+ YP_WHEN_NODE = 138,
349
+ YP_WHILE_NODE = 139,
350
+ YP_X_STRING_NODE = 140,
351
+ YP_YIELD_NODE = 141,
347
352
  YP_SCOPE_NODE
348
353
  };
349
354
 
350
- // Deprecated aliases
351
- #define YP_NODE_SCOPE_NODE YP_SCOPE_NODE
352
- #define YP_NODE_ALIAS_NODE YP_ALIAS_NODE
353
- #define YP_NODE_ALTERNATION_PATTERN_NODE YP_ALTERNATION_PATTERN_NODE
354
- #define YP_NODE_AND_NODE YP_AND_NODE
355
- #define YP_NODE_ARGUMENTS_NODE YP_ARGUMENTS_NODE
356
- #define YP_NODE_ARRAY_NODE YP_ARRAY_NODE
357
- #define YP_NODE_ARRAY_PATTERN_NODE YP_ARRAY_PATTERN_NODE
358
- #define YP_NODE_ASSOC_NODE YP_ASSOC_NODE
359
- #define YP_NODE_ASSOC_SPLAT_NODE YP_ASSOC_SPLAT_NODE
360
- #define YP_NODE_BACK_REFERENCE_READ_NODE YP_BACK_REFERENCE_READ_NODE
361
- #define YP_NODE_BEGIN_NODE YP_BEGIN_NODE
362
- #define YP_NODE_BLOCK_ARGUMENT_NODE YP_BLOCK_ARGUMENT_NODE
363
- #define YP_NODE_BLOCK_LOCAL_VARIABLE_NODE YP_BLOCK_LOCAL_VARIABLE_NODE
364
- #define YP_NODE_BLOCK_NODE YP_BLOCK_NODE
365
- #define YP_NODE_BLOCK_PARAMETER_NODE YP_BLOCK_PARAMETER_NODE
366
- #define YP_NODE_BLOCK_PARAMETERS_NODE YP_BLOCK_PARAMETERS_NODE
367
- #define YP_NODE_BREAK_NODE YP_BREAK_NODE
368
- #define YP_NODE_CALL_AND_WRITE_NODE YP_CALL_AND_WRITE_NODE
369
- #define YP_NODE_CALL_NODE YP_CALL_NODE
370
- #define YP_NODE_CALL_OPERATOR_WRITE_NODE YP_CALL_OPERATOR_WRITE_NODE
371
- #define YP_NODE_CALL_OR_WRITE_NODE YP_CALL_OR_WRITE_NODE
372
- #define YP_NODE_CAPTURE_PATTERN_NODE YP_CAPTURE_PATTERN_NODE
373
- #define YP_NODE_CASE_NODE YP_CASE_NODE
374
- #define YP_NODE_CLASS_NODE YP_CLASS_NODE
375
- #define YP_NODE_CLASS_VARIABLE_AND_WRITE_NODE YP_CLASS_VARIABLE_AND_WRITE_NODE
376
- #define YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE YP_CLASS_VARIABLE_OPERATOR_WRITE_NODE
377
- #define YP_NODE_CLASS_VARIABLE_OR_WRITE_NODE YP_CLASS_VARIABLE_OR_WRITE_NODE
378
- #define YP_NODE_CLASS_VARIABLE_READ_NODE YP_CLASS_VARIABLE_READ_NODE
379
- #define YP_NODE_CLASS_VARIABLE_TARGET_NODE YP_CLASS_VARIABLE_TARGET_NODE
380
- #define YP_NODE_CLASS_VARIABLE_WRITE_NODE YP_CLASS_VARIABLE_WRITE_NODE
381
- #define YP_NODE_CONSTANT_AND_WRITE_NODE YP_CONSTANT_AND_WRITE_NODE
382
- #define YP_NODE_CONSTANT_OPERATOR_WRITE_NODE YP_CONSTANT_OPERATOR_WRITE_NODE
383
- #define YP_NODE_CONSTANT_OR_WRITE_NODE YP_CONSTANT_OR_WRITE_NODE
384
- #define YP_NODE_CONSTANT_PATH_AND_WRITE_NODE YP_CONSTANT_PATH_AND_WRITE_NODE
385
- #define YP_NODE_CONSTANT_PATH_NODE YP_CONSTANT_PATH_NODE
386
- #define YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE YP_CONSTANT_PATH_OPERATOR_WRITE_NODE
387
- #define YP_NODE_CONSTANT_PATH_OR_WRITE_NODE YP_CONSTANT_PATH_OR_WRITE_NODE
388
- #define YP_NODE_CONSTANT_PATH_TARGET_NODE YP_CONSTANT_PATH_TARGET_NODE
389
- #define YP_NODE_CONSTANT_PATH_WRITE_NODE YP_CONSTANT_PATH_WRITE_NODE
390
- #define YP_NODE_CONSTANT_READ_NODE YP_CONSTANT_READ_NODE
391
- #define YP_NODE_CONSTANT_TARGET_NODE YP_CONSTANT_TARGET_NODE
392
- #define YP_NODE_CONSTANT_WRITE_NODE YP_CONSTANT_WRITE_NODE
393
- #define YP_NODE_DEF_NODE YP_DEF_NODE
394
- #define YP_NODE_DEFINED_NODE YP_DEFINED_NODE
395
- #define YP_NODE_ELSE_NODE YP_ELSE_NODE
396
- #define YP_NODE_EMBEDDED_STATEMENTS_NODE YP_EMBEDDED_STATEMENTS_NODE
397
- #define YP_NODE_EMBEDDED_VARIABLE_NODE YP_EMBEDDED_VARIABLE_NODE
398
- #define YP_NODE_ENSURE_NODE YP_ENSURE_NODE
399
- #define YP_NODE_FALSE_NODE YP_FALSE_NODE
400
- #define YP_NODE_FIND_PATTERN_NODE YP_FIND_PATTERN_NODE
401
- #define YP_NODE_FLIP_FLOP_NODE YP_FLIP_FLOP_NODE
402
- #define YP_NODE_FLOAT_NODE YP_FLOAT_NODE
403
- #define YP_NODE_FOR_NODE YP_FOR_NODE
404
- #define YP_NODE_FORWARDING_ARGUMENTS_NODE YP_FORWARDING_ARGUMENTS_NODE
405
- #define YP_NODE_FORWARDING_PARAMETER_NODE YP_FORWARDING_PARAMETER_NODE
406
- #define YP_NODE_FORWARDING_SUPER_NODE YP_FORWARDING_SUPER_NODE
407
- #define YP_NODE_GLOBAL_VARIABLE_AND_WRITE_NODE YP_GLOBAL_VARIABLE_AND_WRITE_NODE
408
- #define YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE YP_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
409
- #define YP_NODE_GLOBAL_VARIABLE_OR_WRITE_NODE YP_GLOBAL_VARIABLE_OR_WRITE_NODE
410
- #define YP_NODE_GLOBAL_VARIABLE_READ_NODE YP_GLOBAL_VARIABLE_READ_NODE
411
- #define YP_NODE_GLOBAL_VARIABLE_TARGET_NODE YP_GLOBAL_VARIABLE_TARGET_NODE
412
- #define YP_NODE_GLOBAL_VARIABLE_WRITE_NODE YP_GLOBAL_VARIABLE_WRITE_NODE
413
- #define YP_NODE_HASH_NODE YP_HASH_NODE
414
- #define YP_NODE_HASH_PATTERN_NODE YP_HASH_PATTERN_NODE
415
- #define YP_NODE_IF_NODE YP_IF_NODE
416
- #define YP_NODE_IMAGINARY_NODE YP_IMAGINARY_NODE
417
- #define YP_NODE_IN_NODE YP_IN_NODE
418
- #define YP_NODE_INSTANCE_VARIABLE_AND_WRITE_NODE YP_INSTANCE_VARIABLE_AND_WRITE_NODE
419
- #define YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE YP_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
420
- #define YP_NODE_INSTANCE_VARIABLE_OR_WRITE_NODE YP_INSTANCE_VARIABLE_OR_WRITE_NODE
421
- #define YP_NODE_INSTANCE_VARIABLE_READ_NODE YP_INSTANCE_VARIABLE_READ_NODE
422
- #define YP_NODE_INSTANCE_VARIABLE_TARGET_NODE YP_INSTANCE_VARIABLE_TARGET_NODE
423
- #define YP_NODE_INSTANCE_VARIABLE_WRITE_NODE YP_INSTANCE_VARIABLE_WRITE_NODE
424
- #define YP_NODE_INTEGER_NODE YP_INTEGER_NODE
425
- #define YP_NODE_INTERPOLATED_REGULAR_EXPRESSION_NODE YP_INTERPOLATED_REGULAR_EXPRESSION_NODE
426
- #define YP_NODE_INTERPOLATED_STRING_NODE YP_INTERPOLATED_STRING_NODE
427
- #define YP_NODE_INTERPOLATED_SYMBOL_NODE YP_INTERPOLATED_SYMBOL_NODE
428
- #define YP_NODE_INTERPOLATED_X_STRING_NODE YP_INTERPOLATED_X_STRING_NODE
429
- #define YP_NODE_KEYWORD_HASH_NODE YP_KEYWORD_HASH_NODE
430
- #define YP_NODE_KEYWORD_PARAMETER_NODE YP_KEYWORD_PARAMETER_NODE
431
- #define YP_NODE_KEYWORD_REST_PARAMETER_NODE YP_KEYWORD_REST_PARAMETER_NODE
432
- #define YP_NODE_LAMBDA_NODE YP_LAMBDA_NODE
433
- #define YP_NODE_LOCAL_VARIABLE_AND_WRITE_NODE YP_LOCAL_VARIABLE_AND_WRITE_NODE
434
- #define YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE YP_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
435
- #define YP_NODE_LOCAL_VARIABLE_OR_WRITE_NODE YP_LOCAL_VARIABLE_OR_WRITE_NODE
436
- #define YP_NODE_LOCAL_VARIABLE_READ_NODE YP_LOCAL_VARIABLE_READ_NODE
437
- #define YP_NODE_LOCAL_VARIABLE_TARGET_NODE YP_LOCAL_VARIABLE_TARGET_NODE
438
- #define YP_NODE_LOCAL_VARIABLE_WRITE_NODE YP_LOCAL_VARIABLE_WRITE_NODE
439
- #define YP_NODE_MATCH_PREDICATE_NODE YP_MATCH_PREDICATE_NODE
440
- #define YP_NODE_MATCH_REQUIRED_NODE YP_MATCH_REQUIRED_NODE
441
- #define YP_NODE_MISSING_NODE YP_MISSING_NODE
442
- #define YP_NODE_MODULE_NODE YP_MODULE_NODE
443
- #define YP_NODE_MULTI_TARGET_NODE YP_MULTI_TARGET_NODE
444
- #define YP_NODE_MULTI_WRITE_NODE YP_MULTI_WRITE_NODE
445
- #define YP_NODE_NEXT_NODE YP_NEXT_NODE
446
- #define YP_NODE_NIL_NODE YP_NIL_NODE
447
- #define YP_NODE_NO_KEYWORDS_PARAMETER_NODE YP_NO_KEYWORDS_PARAMETER_NODE
448
- #define YP_NODE_NUMBERED_REFERENCE_READ_NODE YP_NUMBERED_REFERENCE_READ_NODE
449
- #define YP_NODE_OPTIONAL_PARAMETER_NODE YP_OPTIONAL_PARAMETER_NODE
450
- #define YP_NODE_OR_NODE YP_OR_NODE
451
- #define YP_NODE_PARAMETERS_NODE YP_PARAMETERS_NODE
452
- #define YP_NODE_PARENTHESES_NODE YP_PARENTHESES_NODE
453
- #define YP_NODE_PINNED_EXPRESSION_NODE YP_PINNED_EXPRESSION_NODE
454
- #define YP_NODE_PINNED_VARIABLE_NODE YP_PINNED_VARIABLE_NODE
455
- #define YP_NODE_POST_EXECUTION_NODE YP_POST_EXECUTION_NODE
456
- #define YP_NODE_PRE_EXECUTION_NODE YP_PRE_EXECUTION_NODE
457
- #define YP_NODE_PROGRAM_NODE YP_PROGRAM_NODE
458
- #define YP_NODE_RANGE_NODE YP_RANGE_NODE
459
- #define YP_NODE_RATIONAL_NODE YP_RATIONAL_NODE
460
- #define YP_NODE_REDO_NODE YP_REDO_NODE
461
- #define YP_NODE_REGULAR_EXPRESSION_NODE YP_REGULAR_EXPRESSION_NODE
462
- #define YP_NODE_REQUIRED_DESTRUCTURED_PARAMETER_NODE YP_REQUIRED_DESTRUCTURED_PARAMETER_NODE
463
- #define YP_NODE_REQUIRED_PARAMETER_NODE YP_REQUIRED_PARAMETER_NODE
464
- #define YP_NODE_RESCUE_MODIFIER_NODE YP_RESCUE_MODIFIER_NODE
465
- #define YP_NODE_RESCUE_NODE YP_RESCUE_NODE
466
- #define YP_NODE_REST_PARAMETER_NODE YP_REST_PARAMETER_NODE
467
- #define YP_NODE_RETRY_NODE YP_RETRY_NODE
468
- #define YP_NODE_RETURN_NODE YP_RETURN_NODE
469
- #define YP_NODE_SELF_NODE YP_SELF_NODE
470
- #define YP_NODE_SINGLETON_CLASS_NODE YP_SINGLETON_CLASS_NODE
471
- #define YP_NODE_SOURCE_ENCODING_NODE YP_SOURCE_ENCODING_NODE
472
- #define YP_NODE_SOURCE_FILE_NODE YP_SOURCE_FILE_NODE
473
- #define YP_NODE_SOURCE_LINE_NODE YP_SOURCE_LINE_NODE
474
- #define YP_NODE_SPLAT_NODE YP_SPLAT_NODE
475
- #define YP_NODE_STATEMENTS_NODE YP_STATEMENTS_NODE
476
- #define YP_NODE_STRING_CONCAT_NODE YP_STRING_CONCAT_NODE
477
- #define YP_NODE_STRING_NODE YP_STRING_NODE
478
- #define YP_NODE_SUPER_NODE YP_SUPER_NODE
479
- #define YP_NODE_SYMBOL_NODE YP_SYMBOL_NODE
480
- #define YP_NODE_TRUE_NODE YP_TRUE_NODE
481
- #define YP_NODE_UNDEF_NODE YP_UNDEF_NODE
482
- #define YP_NODE_UNLESS_NODE YP_UNLESS_NODE
483
- #define YP_NODE_UNTIL_NODE YP_UNTIL_NODE
484
- #define YP_NODE_WHEN_NODE YP_WHEN_NODE
485
- #define YP_NODE_WHILE_NODE YP_WHILE_NODE
486
- #define YP_NODE_X_STRING_NODE YP_X_STRING_NODE
487
- #define YP_NODE_YIELD_NODE YP_YIELD_NODE
488
-
489
355
  typedef uint16_t yp_node_type_t;
490
356
  typedef uint16_t yp_node_flags_t;
491
357
 
492
358
  // We store the flags enum in every node in the tree. Some flags are common to
493
359
  // all nodes (the ones listed below). Others are specific to certain node types.
494
360
  static const yp_node_flags_t YP_NODE_FLAG_NEWLINE = 0x1;
361
+ static const yp_node_flags_t YP_NODE_FLAG_STATIC_LITERAL = 0x2;
495
362
 
496
363
  // For easy access, we define some macros to check node type
497
364
  #define YP_NODE_TYPE(node) ((enum yp_node_type)node->type)
@@ -511,15 +378,25 @@ typedef struct yp_node {
511
378
  yp_location_t location;
512
379
  } yp_node_t;
513
380
 
514
- // AliasNode
381
+ // AliasGlobalVariableNode
382
+ //
383
+ // Type: YP_ALIAS_GLOBAL_VARIABLE_NODE
384
+ typedef struct yp_alias_global_variable_node {
385
+ yp_node_t base;
386
+ struct yp_node *new_name;
387
+ struct yp_node *old_name;
388
+ yp_location_t keyword_loc;
389
+ } yp_alias_global_variable_node_t;
390
+
391
+ // AliasMethodNode
515
392
  //
516
- // Type: YP_ALIAS_NODE
517
- typedef struct yp_alias_node {
393
+ // Type: YP_ALIAS_METHOD_NODE
394
+ typedef struct yp_alias_method_node {
518
395
  yp_node_t base;
519
396
  struct yp_node *new_name;
520
397
  struct yp_node *old_name;
521
398
  yp_location_t keyword_loc;
522
- } yp_alias_node_t;
399
+ } yp_alias_method_node_t;
523
400
 
524
401
  // AlternationPatternNode
525
402
  //
@@ -1216,6 +1093,14 @@ typedef struct yp_imaginary_node {
1216
1093
  struct yp_node *numeric;
1217
1094
  } yp_imaginary_node_t;
1218
1095
 
1096
+ // ImplicitNode
1097
+ //
1098
+ // Type: YP_IMPLICIT_NODE
1099
+ typedef struct yp_implicit_node {
1100
+ yp_node_t base;
1101
+ struct yp_node *value;
1102
+ } yp_implicit_node_t;
1103
+
1219
1104
  // InNode
1220
1105
  //
1221
1106
  // Type: YP_IN_NODE
@@ -1291,17 +1176,41 @@ typedef struct yp_instance_variable_write_node {
1291
1176
  // IntegerNode
1292
1177
  //
1293
1178
  // Type: YP_INTEGER_NODE
1179
+ // Flags:
1180
+ // YP_INTEGER_BASE_FLAGS_BINARY
1181
+ // YP_INTEGER_BASE_FLAGS_OCTAL
1182
+ // YP_INTEGER_BASE_FLAGS_DECIMAL
1183
+ // YP_INTEGER_BASE_FLAGS_HEXADECIMAL
1294
1184
  typedef struct yp_integer_node {
1295
1185
  yp_node_t base;
1296
1186
  } yp_integer_node_t;
1297
1187
 
1188
+ // InterpolatedMatchLastLineNode
1189
+ //
1190
+ // Type: YP_INTERPOLATED_MATCH_LAST_LINE_NODE
1191
+ // Flags:
1192
+ // YP_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
1193
+ // YP_REGULAR_EXPRESSION_FLAGS_EXTENDED
1194
+ // YP_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
1195
+ // YP_REGULAR_EXPRESSION_FLAGS_EUC_JP
1196
+ // YP_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
1197
+ // YP_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
1198
+ // YP_REGULAR_EXPRESSION_FLAGS_UTF_8
1199
+ // YP_REGULAR_EXPRESSION_FLAGS_ONCE
1200
+ typedef struct yp_interpolated_match_last_line_node {
1201
+ yp_node_t base;
1202
+ yp_location_t opening_loc;
1203
+ struct yp_node_list parts;
1204
+ yp_location_t closing_loc;
1205
+ } yp_interpolated_match_last_line_node_t;
1206
+
1298
1207
  // InterpolatedRegularExpressionNode
1299
1208
  //
1300
1209
  // Type: YP_INTERPOLATED_REGULAR_EXPRESSION_NODE
1301
1210
  // Flags:
1302
1211
  // YP_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
1303
- // YP_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
1304
1212
  // YP_REGULAR_EXPRESSION_FLAGS_EXTENDED
1213
+ // YP_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
1305
1214
  // YP_REGULAR_EXPRESSION_FLAGS_EUC_JP
1306
1215
  // YP_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
1307
1216
  // YP_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
@@ -1452,6 +1361,26 @@ typedef struct yp_local_variable_write_node {
1452
1361
  yp_location_t operator_loc;
1453
1362
  } yp_local_variable_write_node_t;
1454
1363
 
1364
+ // MatchLastLineNode
1365
+ //
1366
+ // Type: YP_MATCH_LAST_LINE_NODE
1367
+ // Flags:
1368
+ // YP_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
1369
+ // YP_REGULAR_EXPRESSION_FLAGS_EXTENDED
1370
+ // YP_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
1371
+ // YP_REGULAR_EXPRESSION_FLAGS_EUC_JP
1372
+ // YP_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
1373
+ // YP_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
1374
+ // YP_REGULAR_EXPRESSION_FLAGS_UTF_8
1375
+ // YP_REGULAR_EXPRESSION_FLAGS_ONCE
1376
+ typedef struct yp_match_last_line_node {
1377
+ yp_node_t base;
1378
+ yp_location_t opening_loc;
1379
+ yp_location_t content_loc;
1380
+ yp_location_t closing_loc;
1381
+ yp_string_t unescaped;
1382
+ } yp_match_last_line_node_t;
1383
+
1455
1384
  // MatchPredicateNode
1456
1385
  //
1457
1386
  // Type: YP_MATCH_PREDICATE_NODE
@@ -1472,6 +1401,15 @@ typedef struct yp_match_required_node {
1472
1401
  yp_location_t operator_loc;
1473
1402
  } yp_match_required_node_t;
1474
1403
 
1404
+ // MatchWriteNode
1405
+ //
1406
+ // Type: YP_MATCH_WRITE_NODE
1407
+ typedef struct yp_match_write_node {
1408
+ yp_node_t base;
1409
+ struct yp_call_node *call;
1410
+ yp_constant_id_list_t locals;
1411
+ } yp_match_write_node_t;
1412
+
1475
1413
  // MissingNode
1476
1414
  //
1477
1415
  // Type: YP_MISSING_NODE
@@ -1575,8 +1513,8 @@ typedef struct yp_parameters_node {
1575
1513
  yp_node_t base;
1576
1514
  struct yp_node_list requireds;
1577
1515
  struct yp_node_list optionals;
1578
- struct yp_node_list posts;
1579
1516
  struct yp_rest_parameter_node *rest;
1517
+ struct yp_node_list posts;
1580
1518
  struct yp_node_list keywords;
1581
1519
  struct yp_node *keyword_rest;
1582
1520
  struct yp_block_parameter_node *block;
@@ -1675,8 +1613,8 @@ typedef struct yp_redo_node {
1675
1613
  // Type: YP_REGULAR_EXPRESSION_NODE
1676
1614
  // Flags:
1677
1615
  // YP_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
1678
- // YP_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
1679
1616
  // YP_REGULAR_EXPRESSION_FLAGS_EXTENDED
1617
+ // YP_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
1680
1618
  // YP_REGULAR_EXPRESSION_FLAGS_EUC_JP
1681
1619
  // YP_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
1682
1620
  // YP_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
@@ -1828,6 +1766,8 @@ typedef struct yp_string_concat_node {
1828
1766
  // StringNode
1829
1767
  //
1830
1768
  // Type: YP_STRING_NODE
1769
+ // Flags:
1770
+ // YP_STRING_FLAGS_FROZEN
1831
1771
  typedef struct yp_string_node {
1832
1772
  yp_node_t base;
1833
1773
  yp_location_t opening_loc;
@@ -1947,30 +1887,43 @@ typedef struct yp_yield_node {
1947
1887
 
1948
1888
  // CallNodeFlags
1949
1889
  typedef enum {
1950
- YP_CALL_NODE_FLAGS_SAFE_NAVIGATION = 1 << 1,
1951
- YP_CALL_NODE_FLAGS_VARIABLE_CALL = 1 << 2,
1890
+ YP_CALL_NODE_FLAGS_SAFE_NAVIGATION = 1 << 2,
1891
+ YP_CALL_NODE_FLAGS_VARIABLE_CALL = 1 << 3,
1952
1892
  } yp_call_node_flags_t;
1953
1893
 
1894
+ // IntegerBaseFlags
1895
+ typedef enum {
1896
+ YP_INTEGER_BASE_FLAGS_BINARY = 1 << 2,
1897
+ YP_INTEGER_BASE_FLAGS_OCTAL = 1 << 3,
1898
+ YP_INTEGER_BASE_FLAGS_DECIMAL = 1 << 4,
1899
+ YP_INTEGER_BASE_FLAGS_HEXADECIMAL = 1 << 5,
1900
+ } yp_integer_base_flags_t;
1901
+
1954
1902
  // LoopFlags
1955
1903
  typedef enum {
1956
- YP_LOOP_FLAGS_BEGIN_MODIFIER = 1 << 1,
1904
+ YP_LOOP_FLAGS_BEGIN_MODIFIER = 1 << 2,
1957
1905
  } yp_loop_flags_t;
1958
1906
 
1959
1907
  // RangeFlags
1960
1908
  typedef enum {
1961
- YP_RANGE_FLAGS_EXCLUDE_END = 1 << 1,
1909
+ YP_RANGE_FLAGS_EXCLUDE_END = 1 << 2,
1962
1910
  } yp_range_flags_t;
1963
1911
 
1964
1912
  // RegularExpressionFlags
1965
1913
  typedef enum {
1966
- YP_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 1 << 1,
1967
- YP_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 1 << 2,
1914
+ YP_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 1 << 2,
1968
1915
  YP_REGULAR_EXPRESSION_FLAGS_EXTENDED = 1 << 3,
1969
- YP_REGULAR_EXPRESSION_FLAGS_EUC_JP = 1 << 4,
1970
- YP_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 1 << 5,
1971
- YP_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 1 << 6,
1972
- YP_REGULAR_EXPRESSION_FLAGS_UTF_8 = 1 << 7,
1973
- YP_REGULAR_EXPRESSION_FLAGS_ONCE = 1 << 8,
1916
+ YP_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 1 << 4,
1917
+ YP_REGULAR_EXPRESSION_FLAGS_EUC_JP = 1 << 5,
1918
+ YP_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 1 << 6,
1919
+ YP_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 1 << 7,
1920
+ YP_REGULAR_EXPRESSION_FLAGS_UTF_8 = 1 << 8,
1921
+ YP_REGULAR_EXPRESSION_FLAGS_ONCE = 1 << 9,
1974
1922
  } yp_regular_expression_flags_t;
1975
1923
 
1924
+ // StringFlags
1925
+ typedef enum {
1926
+ YP_STRING_FLAGS_FROZEN = 1 << 2,
1927
+ } yp_string_flags_t;
1928
+
1976
1929
  #endif // YARP_AST_H