yarp 0.8.0 → 0.10.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +48 -1
- data/Makefile +5 -1
- data/README.md +4 -3
- data/config.yml +461 -150
- data/docs/configuration.md +1 -0
- data/docs/encoding.md +5 -5
- data/docs/ruby_api.md +2 -0
- data/docs/serialization.md +3 -3
- data/docs/testing.md +2 -2
- data/ext/yarp/api_node.c +810 -199
- data/ext/yarp/extension.c +94 -31
- data/ext/yarp/extension.h +2 -2
- data/include/yarp/ast.h +653 -150
- data/include/yarp/defines.h +2 -1
- data/include/yarp/diagnostic.h +3 -3
- data/include/yarp/enc/yp_encoding.h +10 -10
- data/include/yarp/node.h +10 -0
- data/include/yarp/parser.h +19 -19
- data/include/yarp/regexp.h +1 -1
- data/include/yarp/unescape.h +7 -5
- data/include/yarp/util/yp_buffer.h +3 -0
- data/include/yarp/util/yp_char.h +16 -16
- data/include/yarp/util/yp_constant_pool.h +2 -2
- data/include/yarp/util/yp_newline_list.h +7 -4
- data/include/yarp/util/yp_string.h +4 -4
- data/include/yarp/util/yp_string_list.h +0 -3
- data/include/yarp/util/yp_strpbrk.h +1 -1
- data/include/yarp/version.h +2 -2
- data/include/yarp.h +14 -3
- data/lib/yarp/desugar_visitor.rb +204 -0
- data/lib/yarp/ffi.rb +27 -1
- data/lib/yarp/lex_compat.rb +93 -25
- data/lib/yarp/mutation_visitor.rb +683 -0
- data/lib/yarp/node.rb +3121 -597
- data/lib/yarp/serialize.rb +198 -126
- data/lib/yarp.rb +53 -7
- data/src/diagnostic.c +1 -1
- data/src/enc/yp_big5.c +15 -42
- data/src/enc/yp_euc_jp.c +16 -43
- data/src/enc/yp_gbk.c +19 -46
- data/src/enc/yp_shift_jis.c +16 -43
- data/src/enc/yp_tables.c +36 -38
- data/src/enc/yp_unicode.c +20 -25
- data/src/enc/yp_windows_31j.c +16 -43
- data/src/node.c +1444 -836
- data/src/prettyprint.c +324 -103
- data/src/regexp.c +21 -21
- data/src/serialize.c +429 -276
- data/src/token_type.c +2 -2
- data/src/unescape.c +184 -136
- data/src/util/yp_buffer.c +7 -2
- data/src/util/yp_char.c +34 -34
- data/src/util/yp_constant_pool.c +4 -4
- data/src/util/yp_memchr.c +1 -1
- data/src/util/yp_newline_list.c +14 -3
- data/src/util/yp_string.c +22 -20
- data/src/util/yp_string_list.c +0 -6
- data/src/util/yp_strncasecmp.c +3 -6
- data/src/util/yp_strpbrk.c +8 -8
- data/src/yarp.c +1504 -615
- data/yarp.gemspec +3 -1
- metadata +4 -2
data/include/yarp/ast.h
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/******************************************************************************/
|
2
|
-
/* This file is generated by the
|
3
|
-
/* modified manually. See
|
2
|
+
/* This file is generated by the templates/template.rb script and should not */
|
3
|
+
/* be modified manually. See */
|
4
4
|
/* templates/include/yarp/ast.h.erb */
|
5
5
|
/* if you are looking to modify the */
|
6
6
|
/* template */
|
@@ -188,15 +188,15 @@ typedef enum yp_token_type {
|
|
188
188
|
// type and location information.
|
189
189
|
typedef struct {
|
190
190
|
yp_token_type_t type;
|
191
|
-
const
|
192
|
-
const
|
191
|
+
const uint8_t *start;
|
192
|
+
const uint8_t *end;
|
193
193
|
} yp_token_t;
|
194
194
|
|
195
195
|
// This represents a range of bytes in the source string to which a node or
|
196
196
|
// token corresponds.
|
197
197
|
typedef struct {
|
198
|
-
const
|
199
|
-
const
|
198
|
+
const uint8_t *start;
|
199
|
+
const uint8_t *end;
|
200
200
|
} yp_location_t;
|
201
201
|
|
202
202
|
typedef struct {
|
@@ -217,116 +217,138 @@ enum yp_node_type {
|
|
217
217
|
YP_NODE_ALIAS_NODE = 1,
|
218
218
|
YP_NODE_ALTERNATION_PATTERN_NODE = 2,
|
219
219
|
YP_NODE_AND_NODE = 3,
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
220
|
+
YP_NODE_ARGUMENTS_NODE = 4,
|
221
|
+
YP_NODE_ARRAY_NODE = 5,
|
222
|
+
YP_NODE_ARRAY_PATTERN_NODE = 6,
|
223
|
+
YP_NODE_ASSOC_NODE = 7,
|
224
|
+
YP_NODE_ASSOC_SPLAT_NODE = 8,
|
225
|
+
YP_NODE_BACK_REFERENCE_READ_NODE = 9,
|
226
|
+
YP_NODE_BEGIN_NODE = 10,
|
227
|
+
YP_NODE_BLOCK_ARGUMENT_NODE = 11,
|
228
|
+
YP_NODE_BLOCK_NODE = 12,
|
229
|
+
YP_NODE_BLOCK_PARAMETER_NODE = 13,
|
230
|
+
YP_NODE_BLOCK_PARAMETERS_NODE = 14,
|
231
|
+
YP_NODE_BREAK_NODE = 15,
|
232
|
+
YP_NODE_CALL_NODE = 16,
|
233
|
+
YP_NODE_CALL_OPERATOR_AND_WRITE_NODE = 17,
|
234
|
+
YP_NODE_CALL_OPERATOR_OR_WRITE_NODE = 18,
|
235
|
+
YP_NODE_CALL_OPERATOR_WRITE_NODE = 19,
|
236
|
+
YP_NODE_CAPTURE_PATTERN_NODE = 20,
|
237
|
+
YP_NODE_CASE_NODE = 21,
|
238
|
+
YP_NODE_CLASS_NODE = 22,
|
239
|
+
YP_NODE_CLASS_VARIABLE_AND_WRITE_NODE = 23,
|
240
|
+
YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 24,
|
241
|
+
YP_NODE_CLASS_VARIABLE_OR_WRITE_NODE = 25,
|
242
|
+
YP_NODE_CLASS_VARIABLE_READ_NODE = 26,
|
243
|
+
YP_NODE_CLASS_VARIABLE_TARGET_NODE = 27,
|
244
|
+
YP_NODE_CLASS_VARIABLE_WRITE_NODE = 28,
|
245
|
+
YP_NODE_CONSTANT_AND_WRITE_NODE = 29,
|
246
|
+
YP_NODE_CONSTANT_OPERATOR_WRITE_NODE = 30,
|
247
|
+
YP_NODE_CONSTANT_OR_WRITE_NODE = 31,
|
248
|
+
YP_NODE_CONSTANT_PATH_AND_WRITE_NODE = 32,
|
249
|
+
YP_NODE_CONSTANT_PATH_NODE = 33,
|
250
|
+
YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE = 34,
|
251
|
+
YP_NODE_CONSTANT_PATH_OR_WRITE_NODE = 35,
|
252
|
+
YP_NODE_CONSTANT_PATH_TARGET_NODE = 36,
|
253
|
+
YP_NODE_CONSTANT_PATH_WRITE_NODE = 37,
|
254
|
+
YP_NODE_CONSTANT_READ_NODE = 38,
|
255
|
+
YP_NODE_CONSTANT_TARGET_NODE = 39,
|
256
|
+
YP_NODE_CONSTANT_WRITE_NODE = 40,
|
257
|
+
YP_NODE_DEF_NODE = 41,
|
258
|
+
YP_NODE_DEFINED_NODE = 42,
|
259
|
+
YP_NODE_ELSE_NODE = 43,
|
260
|
+
YP_NODE_EMBEDDED_STATEMENTS_NODE = 44,
|
261
|
+
YP_NODE_EMBEDDED_VARIABLE_NODE = 45,
|
262
|
+
YP_NODE_ENSURE_NODE = 46,
|
263
|
+
YP_NODE_FALSE_NODE = 47,
|
264
|
+
YP_NODE_FIND_PATTERN_NODE = 48,
|
265
|
+
YP_NODE_FLIP_FLOP_NODE = 49,
|
266
|
+
YP_NODE_FLOAT_NODE = 50,
|
267
|
+
YP_NODE_FOR_NODE = 51,
|
268
|
+
YP_NODE_FORWARDING_ARGUMENTS_NODE = 52,
|
269
|
+
YP_NODE_FORWARDING_PARAMETER_NODE = 53,
|
270
|
+
YP_NODE_FORWARDING_SUPER_NODE = 54,
|
271
|
+
YP_NODE_GLOBAL_VARIABLE_AND_WRITE_NODE = 55,
|
272
|
+
YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 56,
|
273
|
+
YP_NODE_GLOBAL_VARIABLE_OR_WRITE_NODE = 57,
|
274
|
+
YP_NODE_GLOBAL_VARIABLE_READ_NODE = 58,
|
275
|
+
YP_NODE_GLOBAL_VARIABLE_TARGET_NODE = 59,
|
276
|
+
YP_NODE_GLOBAL_VARIABLE_WRITE_NODE = 60,
|
277
|
+
YP_NODE_HASH_NODE = 61,
|
278
|
+
YP_NODE_HASH_PATTERN_NODE = 62,
|
279
|
+
YP_NODE_IF_NODE = 63,
|
280
|
+
YP_NODE_IMAGINARY_NODE = 64,
|
281
|
+
YP_NODE_IN_NODE = 65,
|
282
|
+
YP_NODE_INSTANCE_VARIABLE_AND_WRITE_NODE = 66,
|
283
|
+
YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 67,
|
284
|
+
YP_NODE_INSTANCE_VARIABLE_OR_WRITE_NODE = 68,
|
285
|
+
YP_NODE_INSTANCE_VARIABLE_READ_NODE = 69,
|
286
|
+
YP_NODE_INSTANCE_VARIABLE_TARGET_NODE = 70,
|
287
|
+
YP_NODE_INSTANCE_VARIABLE_WRITE_NODE = 71,
|
288
|
+
YP_NODE_INTEGER_NODE = 72,
|
289
|
+
YP_NODE_INTERPOLATED_REGULAR_EXPRESSION_NODE = 73,
|
290
|
+
YP_NODE_INTERPOLATED_STRING_NODE = 74,
|
291
|
+
YP_NODE_INTERPOLATED_SYMBOL_NODE = 75,
|
292
|
+
YP_NODE_INTERPOLATED_X_STRING_NODE = 76,
|
293
|
+
YP_NODE_KEYWORD_HASH_NODE = 77,
|
294
|
+
YP_NODE_KEYWORD_PARAMETER_NODE = 78,
|
295
|
+
YP_NODE_KEYWORD_REST_PARAMETER_NODE = 79,
|
296
|
+
YP_NODE_LAMBDA_NODE = 80,
|
297
|
+
YP_NODE_LOCAL_VARIABLE_AND_WRITE_NODE = 81,
|
298
|
+
YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 82,
|
299
|
+
YP_NODE_LOCAL_VARIABLE_OR_WRITE_NODE = 83,
|
300
|
+
YP_NODE_LOCAL_VARIABLE_READ_NODE = 84,
|
301
|
+
YP_NODE_LOCAL_VARIABLE_TARGET_NODE = 85,
|
302
|
+
YP_NODE_LOCAL_VARIABLE_WRITE_NODE = 86,
|
303
|
+
YP_NODE_MATCH_PREDICATE_NODE = 87,
|
304
|
+
YP_NODE_MATCH_REQUIRED_NODE = 88,
|
305
|
+
YP_NODE_MISSING_NODE = 89,
|
306
|
+
YP_NODE_MODULE_NODE = 90,
|
307
|
+
YP_NODE_MULTI_WRITE_NODE = 91,
|
308
|
+
YP_NODE_NEXT_NODE = 92,
|
309
|
+
YP_NODE_NIL_NODE = 93,
|
310
|
+
YP_NODE_NO_KEYWORDS_PARAMETER_NODE = 94,
|
311
|
+
YP_NODE_NUMBERED_REFERENCE_READ_NODE = 95,
|
312
|
+
YP_NODE_OPTIONAL_PARAMETER_NODE = 96,
|
313
|
+
YP_NODE_OR_NODE = 97,
|
314
|
+
YP_NODE_PARAMETERS_NODE = 98,
|
315
|
+
YP_NODE_PARENTHESES_NODE = 99,
|
316
|
+
YP_NODE_PINNED_EXPRESSION_NODE = 100,
|
317
|
+
YP_NODE_PINNED_VARIABLE_NODE = 101,
|
318
|
+
YP_NODE_POST_EXECUTION_NODE = 102,
|
319
|
+
YP_NODE_PRE_EXECUTION_NODE = 103,
|
320
|
+
YP_NODE_PROGRAM_NODE = 104,
|
321
|
+
YP_NODE_RANGE_NODE = 105,
|
322
|
+
YP_NODE_RATIONAL_NODE = 106,
|
323
|
+
YP_NODE_REDO_NODE = 107,
|
324
|
+
YP_NODE_REGULAR_EXPRESSION_NODE = 108,
|
325
|
+
YP_NODE_REQUIRED_DESTRUCTURED_PARAMETER_NODE = 109,
|
326
|
+
YP_NODE_REQUIRED_PARAMETER_NODE = 110,
|
327
|
+
YP_NODE_RESCUE_MODIFIER_NODE = 111,
|
328
|
+
YP_NODE_RESCUE_NODE = 112,
|
329
|
+
YP_NODE_REST_PARAMETER_NODE = 113,
|
330
|
+
YP_NODE_RETRY_NODE = 114,
|
331
|
+
YP_NODE_RETURN_NODE = 115,
|
332
|
+
YP_NODE_SELF_NODE = 116,
|
333
|
+
YP_NODE_SINGLETON_CLASS_NODE = 117,
|
334
|
+
YP_NODE_SOURCE_ENCODING_NODE = 118,
|
335
|
+
YP_NODE_SOURCE_FILE_NODE = 119,
|
336
|
+
YP_NODE_SOURCE_LINE_NODE = 120,
|
337
|
+
YP_NODE_SPLAT_NODE = 121,
|
338
|
+
YP_NODE_STATEMENTS_NODE = 122,
|
339
|
+
YP_NODE_STRING_CONCAT_NODE = 123,
|
340
|
+
YP_NODE_STRING_NODE = 124,
|
341
|
+
YP_NODE_SUPER_NODE = 125,
|
342
|
+
YP_NODE_SYMBOL_NODE = 126,
|
343
|
+
YP_NODE_TRUE_NODE = 127,
|
344
|
+
YP_NODE_UNDEF_NODE = 128,
|
345
|
+
YP_NODE_UNLESS_NODE = 129,
|
346
|
+
YP_NODE_UNTIL_NODE = 130,
|
347
|
+
YP_NODE_WHEN_NODE = 131,
|
348
|
+
YP_NODE_WHILE_NODE = 132,
|
349
|
+
YP_NODE_X_STRING_NODE = 133,
|
350
|
+
YP_NODE_YIELD_NODE = 134,
|
351
|
+
YP_NODE_SCOPE_NODE
|
330
352
|
};
|
331
353
|
|
332
354
|
typedef uint16_t yp_node_type_t;
|
@@ -346,8 +368,7 @@ typedef struct yp_node {
|
|
346
368
|
// existed in the original grammar and ripper, but it's not a 1:1 mapping.
|
347
369
|
yp_node_type_t type;
|
348
370
|
|
349
|
-
// This represents any flags on the node
|
350
|
-
// flag
|
371
|
+
// This represents any flags on the node
|
351
372
|
yp_node_flags_t flags;
|
352
373
|
|
353
374
|
// This is the location of the node in the source. It's a range of bytes
|
@@ -356,6 +377,8 @@ typedef struct yp_node {
|
|
356
377
|
} yp_node_t;
|
357
378
|
|
358
379
|
// AliasNode
|
380
|
+
//
|
381
|
+
// Type: YP_NODE_ALIAS_NODE
|
359
382
|
typedef struct yp_alias_node {
|
360
383
|
yp_node_t base;
|
361
384
|
struct yp_node *new_name;
|
@@ -364,6 +387,8 @@ typedef struct yp_alias_node {
|
|
364
387
|
} yp_alias_node_t;
|
365
388
|
|
366
389
|
// AlternationPatternNode
|
390
|
+
//
|
391
|
+
// Type: YP_NODE_ALTERNATION_PATTERN_NODE
|
367
392
|
typedef struct yp_alternation_pattern_node {
|
368
393
|
yp_node_t base;
|
369
394
|
struct yp_node *left;
|
@@ -372,6 +397,8 @@ typedef struct yp_alternation_pattern_node {
|
|
372
397
|
} yp_alternation_pattern_node_t;
|
373
398
|
|
374
399
|
// AndNode
|
400
|
+
//
|
401
|
+
// Type: YP_NODE_AND_NODE
|
375
402
|
typedef struct yp_and_node {
|
376
403
|
yp_node_t base;
|
377
404
|
struct yp_node *left;
|
@@ -379,21 +406,17 @@ typedef struct yp_and_node {
|
|
379
406
|
yp_location_t operator_loc;
|
380
407
|
} yp_and_node_t;
|
381
408
|
|
382
|
-
// AndWriteNode
|
383
|
-
typedef struct yp_and_write_node {
|
384
|
-
yp_node_t base;
|
385
|
-
struct yp_node *target;
|
386
|
-
struct yp_node *value;
|
387
|
-
yp_location_t operator_loc;
|
388
|
-
} yp_and_write_node_t;
|
389
|
-
|
390
409
|
// ArgumentsNode
|
410
|
+
//
|
411
|
+
// Type: YP_NODE_ARGUMENTS_NODE
|
391
412
|
typedef struct yp_arguments_node {
|
392
413
|
yp_node_t base;
|
393
414
|
struct yp_node_list arguments;
|
394
415
|
} yp_arguments_node_t;
|
395
416
|
|
396
417
|
// ArrayNode
|
418
|
+
//
|
419
|
+
// Type: YP_NODE_ARRAY_NODE
|
397
420
|
typedef struct yp_array_node {
|
398
421
|
yp_node_t base;
|
399
422
|
struct yp_node_list elements;
|
@@ -402,6 +425,8 @@ typedef struct yp_array_node {
|
|
402
425
|
} yp_array_node_t;
|
403
426
|
|
404
427
|
// ArrayPatternNode
|
428
|
+
//
|
429
|
+
// Type: YP_NODE_ARRAY_PATTERN_NODE
|
405
430
|
typedef struct yp_array_pattern_node {
|
406
431
|
yp_node_t base;
|
407
432
|
struct yp_node *constant;
|
@@ -413,6 +438,8 @@ typedef struct yp_array_pattern_node {
|
|
413
438
|
} yp_array_pattern_node_t;
|
414
439
|
|
415
440
|
// AssocNode
|
441
|
+
//
|
442
|
+
// Type: YP_NODE_ASSOC_NODE
|
416
443
|
typedef struct yp_assoc_node {
|
417
444
|
yp_node_t base;
|
418
445
|
struct yp_node *key;
|
@@ -421,6 +448,8 @@ typedef struct yp_assoc_node {
|
|
421
448
|
} yp_assoc_node_t;
|
422
449
|
|
423
450
|
// AssocSplatNode
|
451
|
+
//
|
452
|
+
// Type: YP_NODE_ASSOC_SPLAT_NODE
|
424
453
|
typedef struct yp_assoc_splat_node {
|
425
454
|
yp_node_t base;
|
426
455
|
struct yp_node *value;
|
@@ -428,11 +457,15 @@ typedef struct yp_assoc_splat_node {
|
|
428
457
|
} yp_assoc_splat_node_t;
|
429
458
|
|
430
459
|
// BackReferenceReadNode
|
460
|
+
//
|
461
|
+
// Type: YP_NODE_BACK_REFERENCE_READ_NODE
|
431
462
|
typedef struct yp_back_reference_read_node {
|
432
463
|
yp_node_t base;
|
433
464
|
} yp_back_reference_read_node_t;
|
434
465
|
|
435
466
|
// BeginNode
|
467
|
+
//
|
468
|
+
// Type: YP_NODE_BEGIN_NODE
|
436
469
|
typedef struct yp_begin_node {
|
437
470
|
yp_node_t base;
|
438
471
|
yp_location_t begin_keyword_loc;
|
@@ -444,6 +477,8 @@ typedef struct yp_begin_node {
|
|
444
477
|
} yp_begin_node_t;
|
445
478
|
|
446
479
|
// BlockArgumentNode
|
480
|
+
//
|
481
|
+
// Type: YP_NODE_BLOCK_ARGUMENT_NODE
|
447
482
|
typedef struct yp_block_argument_node {
|
448
483
|
yp_node_t base;
|
449
484
|
struct yp_node *expression;
|
@@ -451,6 +486,8 @@ typedef struct yp_block_argument_node {
|
|
451
486
|
} yp_block_argument_node_t;
|
452
487
|
|
453
488
|
// BlockNode
|
489
|
+
//
|
490
|
+
// Type: YP_NODE_BLOCK_NODE
|
454
491
|
typedef struct yp_block_node {
|
455
492
|
yp_node_t base;
|
456
493
|
yp_constant_id_list_t locals;
|
@@ -461,6 +498,8 @@ typedef struct yp_block_node {
|
|
461
498
|
} yp_block_node_t;
|
462
499
|
|
463
500
|
// BlockParameterNode
|
501
|
+
//
|
502
|
+
// Type: YP_NODE_BLOCK_PARAMETER_NODE
|
464
503
|
typedef struct yp_block_parameter_node {
|
465
504
|
yp_node_t base;
|
466
505
|
yp_location_t name_loc;
|
@@ -468,6 +507,8 @@ typedef struct yp_block_parameter_node {
|
|
468
507
|
} yp_block_parameter_node_t;
|
469
508
|
|
470
509
|
// BlockParametersNode
|
510
|
+
//
|
511
|
+
// Type: YP_NODE_BLOCK_PARAMETERS_NODE
|
471
512
|
typedef struct yp_block_parameters_node {
|
472
513
|
yp_node_t base;
|
473
514
|
struct yp_parameters_node *parameters;
|
@@ -477,6 +518,8 @@ typedef struct yp_block_parameters_node {
|
|
477
518
|
} yp_block_parameters_node_t;
|
478
519
|
|
479
520
|
// BreakNode
|
521
|
+
//
|
522
|
+
// Type: YP_NODE_BREAK_NODE
|
480
523
|
typedef struct yp_break_node {
|
481
524
|
yp_node_t base;
|
482
525
|
struct yp_arguments_node *arguments;
|
@@ -484,6 +527,11 @@ typedef struct yp_break_node {
|
|
484
527
|
} yp_break_node_t;
|
485
528
|
|
486
529
|
// CallNode
|
530
|
+
//
|
531
|
+
// Type: YP_NODE_CALL_NODE
|
532
|
+
// Flags:
|
533
|
+
// YP_CALL_NODE_FLAGS_SAFE_NAVIGATION
|
534
|
+
// YP_CALL_NODE_FLAGS_VARIABLE_CALL
|
487
535
|
typedef struct yp_call_node {
|
488
536
|
yp_node_t base;
|
489
537
|
struct yp_node *receiver;
|
@@ -497,6 +545,8 @@ typedef struct yp_call_node {
|
|
497
545
|
} yp_call_node_t;
|
498
546
|
|
499
547
|
// CallOperatorAndWriteNode
|
548
|
+
//
|
549
|
+
// Type: YP_NODE_CALL_OPERATOR_AND_WRITE_NODE
|
500
550
|
typedef struct yp_call_operator_and_write_node {
|
501
551
|
yp_node_t base;
|
502
552
|
struct yp_call_node *target;
|
@@ -505,6 +555,8 @@ typedef struct yp_call_operator_and_write_node {
|
|
505
555
|
} yp_call_operator_and_write_node_t;
|
506
556
|
|
507
557
|
// CallOperatorOrWriteNode
|
558
|
+
//
|
559
|
+
// Type: YP_NODE_CALL_OPERATOR_OR_WRITE_NODE
|
508
560
|
typedef struct yp_call_operator_or_write_node {
|
509
561
|
yp_node_t base;
|
510
562
|
struct yp_call_node *target;
|
@@ -513,15 +565,19 @@ typedef struct yp_call_operator_or_write_node {
|
|
513
565
|
} yp_call_operator_or_write_node_t;
|
514
566
|
|
515
567
|
// CallOperatorWriteNode
|
568
|
+
//
|
569
|
+
// Type: YP_NODE_CALL_OPERATOR_WRITE_NODE
|
516
570
|
typedef struct yp_call_operator_write_node {
|
517
571
|
yp_node_t base;
|
518
572
|
struct yp_call_node *target;
|
519
573
|
yp_location_t operator_loc;
|
520
574
|
struct yp_node *value;
|
521
|
-
yp_constant_id_t
|
575
|
+
yp_constant_id_t operator;
|
522
576
|
} yp_call_operator_write_node_t;
|
523
577
|
|
524
578
|
// CapturePatternNode
|
579
|
+
//
|
580
|
+
// Type: YP_NODE_CAPTURE_PATTERN_NODE
|
525
581
|
typedef struct yp_capture_pattern_node {
|
526
582
|
yp_node_t base;
|
527
583
|
struct yp_node *value;
|
@@ -530,6 +586,8 @@ typedef struct yp_capture_pattern_node {
|
|
530
586
|
} yp_capture_pattern_node_t;
|
531
587
|
|
532
588
|
// CaseNode
|
589
|
+
//
|
590
|
+
// Type: YP_NODE_CASE_NODE
|
533
591
|
typedef struct yp_case_node {
|
534
592
|
yp_node_t base;
|
535
593
|
struct yp_node *predicate;
|
@@ -540,6 +598,8 @@ typedef struct yp_case_node {
|
|
540
598
|
} yp_case_node_t;
|
541
599
|
|
542
600
|
// ClassNode
|
601
|
+
//
|
602
|
+
// Type: YP_NODE_CLASS_NODE
|
543
603
|
typedef struct yp_class_node {
|
544
604
|
yp_node_t base;
|
545
605
|
yp_constant_id_list_t locals;
|
@@ -549,22 +609,114 @@ typedef struct yp_class_node {
|
|
549
609
|
struct yp_node *superclass;
|
550
610
|
struct yp_node *body;
|
551
611
|
yp_location_t end_keyword_loc;
|
612
|
+
yp_string_t name;
|
552
613
|
} yp_class_node_t;
|
553
614
|
|
615
|
+
// ClassVariableAndWriteNode
|
616
|
+
//
|
617
|
+
// Type: YP_NODE_CLASS_VARIABLE_AND_WRITE_NODE
|
618
|
+
typedef struct yp_class_variable_and_write_node {
|
619
|
+
yp_node_t base;
|
620
|
+
yp_constant_id_t name;
|
621
|
+
yp_location_t name_loc;
|
622
|
+
yp_location_t operator_loc;
|
623
|
+
struct yp_node *value;
|
624
|
+
} yp_class_variable_and_write_node_t;
|
625
|
+
|
626
|
+
// ClassVariableOperatorWriteNode
|
627
|
+
//
|
628
|
+
// Type: YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE
|
629
|
+
typedef struct yp_class_variable_operator_write_node {
|
630
|
+
yp_node_t base;
|
631
|
+
yp_constant_id_t name;
|
632
|
+
yp_location_t name_loc;
|
633
|
+
yp_location_t operator_loc;
|
634
|
+
struct yp_node *value;
|
635
|
+
yp_constant_id_t operator;
|
636
|
+
} yp_class_variable_operator_write_node_t;
|
637
|
+
|
638
|
+
// ClassVariableOrWriteNode
|
639
|
+
//
|
640
|
+
// Type: YP_NODE_CLASS_VARIABLE_OR_WRITE_NODE
|
641
|
+
typedef struct yp_class_variable_or_write_node {
|
642
|
+
yp_node_t base;
|
643
|
+
yp_constant_id_t name;
|
644
|
+
yp_location_t name_loc;
|
645
|
+
yp_location_t operator_loc;
|
646
|
+
struct yp_node *value;
|
647
|
+
} yp_class_variable_or_write_node_t;
|
648
|
+
|
554
649
|
// ClassVariableReadNode
|
650
|
+
//
|
651
|
+
// Type: YP_NODE_CLASS_VARIABLE_READ_NODE
|
555
652
|
typedef struct yp_class_variable_read_node {
|
556
653
|
yp_node_t base;
|
654
|
+
yp_constant_id_t name;
|
557
655
|
} yp_class_variable_read_node_t;
|
558
656
|
|
657
|
+
// ClassVariableTargetNode
|
658
|
+
//
|
659
|
+
// Type: YP_NODE_CLASS_VARIABLE_TARGET_NODE
|
660
|
+
typedef struct yp_class_variable_target_node {
|
661
|
+
yp_node_t base;
|
662
|
+
yp_constant_id_t name;
|
663
|
+
} yp_class_variable_target_node_t;
|
664
|
+
|
559
665
|
// ClassVariableWriteNode
|
666
|
+
//
|
667
|
+
// Type: YP_NODE_CLASS_VARIABLE_WRITE_NODE
|
560
668
|
typedef struct yp_class_variable_write_node {
|
561
669
|
yp_node_t base;
|
670
|
+
yp_constant_id_t name;
|
562
671
|
yp_location_t name_loc;
|
563
672
|
struct yp_node *value;
|
564
673
|
yp_location_t operator_loc;
|
565
674
|
} yp_class_variable_write_node_t;
|
566
675
|
|
676
|
+
// ConstantAndWriteNode
|
677
|
+
//
|
678
|
+
// Type: YP_NODE_CONSTANT_AND_WRITE_NODE
|
679
|
+
typedef struct yp_constant_and_write_node {
|
680
|
+
yp_node_t base;
|
681
|
+
yp_location_t name_loc;
|
682
|
+
yp_location_t operator_loc;
|
683
|
+
struct yp_node *value;
|
684
|
+
} yp_constant_and_write_node_t;
|
685
|
+
|
686
|
+
// ConstantOperatorWriteNode
|
687
|
+
//
|
688
|
+
// Type: YP_NODE_CONSTANT_OPERATOR_WRITE_NODE
|
689
|
+
typedef struct yp_constant_operator_write_node {
|
690
|
+
yp_node_t base;
|
691
|
+
yp_location_t name_loc;
|
692
|
+
yp_location_t operator_loc;
|
693
|
+
struct yp_node *value;
|
694
|
+
yp_constant_id_t operator;
|
695
|
+
} yp_constant_operator_write_node_t;
|
696
|
+
|
697
|
+
// ConstantOrWriteNode
|
698
|
+
//
|
699
|
+
// Type: YP_NODE_CONSTANT_OR_WRITE_NODE
|
700
|
+
typedef struct yp_constant_or_write_node {
|
701
|
+
yp_node_t base;
|
702
|
+
yp_location_t name_loc;
|
703
|
+
yp_location_t operator_loc;
|
704
|
+
struct yp_node *value;
|
705
|
+
} yp_constant_or_write_node_t;
|
706
|
+
|
707
|
+
// ConstantPathAndWriteNode
|
708
|
+
//
|
709
|
+
// Type: YP_NODE_CONSTANT_PATH_AND_WRITE_NODE
|
710
|
+
typedef struct yp_constant_path_and_write_node {
|
711
|
+
yp_node_t base;
|
712
|
+
struct yp_constant_path_node *target;
|
713
|
+
yp_location_t operator_loc;
|
714
|
+
struct yp_node *value;
|
715
|
+
} yp_constant_path_and_write_node_t;
|
716
|
+
|
567
717
|
// ConstantPathNode
|
718
|
+
//
|
719
|
+
// Type: YP_NODE_CONSTANT_PATH_NODE
|
568
720
|
typedef struct yp_constant_path_node {
|
569
721
|
yp_node_t base;
|
570
722
|
struct yp_node *parent;
|
@@ -572,7 +724,40 @@ typedef struct yp_constant_path_node {
|
|
572
724
|
yp_location_t delimiter_loc;
|
573
725
|
} yp_constant_path_node_t;
|
574
726
|
|
727
|
+
// ConstantPathOperatorWriteNode
|
728
|
+
//
|
729
|
+
// Type: YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE
|
730
|
+
typedef struct yp_constant_path_operator_write_node {
|
731
|
+
yp_node_t base;
|
732
|
+
struct yp_constant_path_node *target;
|
733
|
+
yp_location_t operator_loc;
|
734
|
+
struct yp_node *value;
|
735
|
+
yp_constant_id_t operator;
|
736
|
+
} yp_constant_path_operator_write_node_t;
|
737
|
+
|
738
|
+
// ConstantPathOrWriteNode
|
739
|
+
//
|
740
|
+
// Type: YP_NODE_CONSTANT_PATH_OR_WRITE_NODE
|
741
|
+
typedef struct yp_constant_path_or_write_node {
|
742
|
+
yp_node_t base;
|
743
|
+
struct yp_constant_path_node *target;
|
744
|
+
yp_location_t operator_loc;
|
745
|
+
struct yp_node *value;
|
746
|
+
} yp_constant_path_or_write_node_t;
|
747
|
+
|
748
|
+
// ConstantPathTargetNode
|
749
|
+
//
|
750
|
+
// Type: YP_NODE_CONSTANT_PATH_TARGET_NODE
|
751
|
+
typedef struct yp_constant_path_target_node {
|
752
|
+
yp_node_t base;
|
753
|
+
struct yp_node *parent;
|
754
|
+
struct yp_node *child;
|
755
|
+
yp_location_t delimiter_loc;
|
756
|
+
} yp_constant_path_target_node_t;
|
757
|
+
|
575
758
|
// ConstantPathWriteNode
|
759
|
+
//
|
760
|
+
// Type: YP_NODE_CONSTANT_PATH_WRITE_NODE
|
576
761
|
typedef struct yp_constant_path_write_node {
|
577
762
|
yp_node_t base;
|
578
763
|
struct yp_constant_path_node *target;
|
@@ -581,11 +766,22 @@ typedef struct yp_constant_path_write_node {
|
|
581
766
|
} yp_constant_path_write_node_t;
|
582
767
|
|
583
768
|
// ConstantReadNode
|
769
|
+
//
|
770
|
+
// Type: YP_NODE_CONSTANT_READ_NODE
|
584
771
|
typedef struct yp_constant_read_node {
|
585
772
|
yp_node_t base;
|
586
773
|
} yp_constant_read_node_t;
|
587
774
|
|
775
|
+
// ConstantTargetNode
|
776
|
+
//
|
777
|
+
// Type: YP_NODE_CONSTANT_TARGET_NODE
|
778
|
+
typedef struct yp_constant_target_node {
|
779
|
+
yp_node_t base;
|
780
|
+
} yp_constant_target_node_t;
|
781
|
+
|
588
782
|
// ConstantWriteNode
|
783
|
+
//
|
784
|
+
// Type: YP_NODE_CONSTANT_WRITE_NODE
|
589
785
|
typedef struct yp_constant_write_node {
|
590
786
|
yp_node_t base;
|
591
787
|
yp_location_t name_loc;
|
@@ -594,6 +790,8 @@ typedef struct yp_constant_write_node {
|
|
594
790
|
} yp_constant_write_node_t;
|
595
791
|
|
596
792
|
// DefNode
|
793
|
+
//
|
794
|
+
// Type: YP_NODE_DEF_NODE
|
597
795
|
typedef struct yp_def_node {
|
598
796
|
yp_node_t base;
|
599
797
|
yp_location_t name_loc;
|
@@ -610,6 +808,8 @@ typedef struct yp_def_node {
|
|
610
808
|
} yp_def_node_t;
|
611
809
|
|
612
810
|
// DefinedNode
|
811
|
+
//
|
812
|
+
// Type: YP_NODE_DEFINED_NODE
|
613
813
|
typedef struct yp_defined_node {
|
614
814
|
yp_node_t base;
|
615
815
|
yp_location_t lparen_loc;
|
@@ -619,6 +819,8 @@ typedef struct yp_defined_node {
|
|
619
819
|
} yp_defined_node_t;
|
620
820
|
|
621
821
|
// ElseNode
|
822
|
+
//
|
823
|
+
// Type: YP_NODE_ELSE_NODE
|
622
824
|
typedef struct yp_else_node {
|
623
825
|
yp_node_t base;
|
624
826
|
yp_location_t else_keyword_loc;
|
@@ -627,6 +829,8 @@ typedef struct yp_else_node {
|
|
627
829
|
} yp_else_node_t;
|
628
830
|
|
629
831
|
// EmbeddedStatementsNode
|
832
|
+
//
|
833
|
+
// Type: YP_NODE_EMBEDDED_STATEMENTS_NODE
|
630
834
|
typedef struct yp_embedded_statements_node {
|
631
835
|
yp_node_t base;
|
632
836
|
yp_location_t opening_loc;
|
@@ -635,6 +839,8 @@ typedef struct yp_embedded_statements_node {
|
|
635
839
|
} yp_embedded_statements_node_t;
|
636
840
|
|
637
841
|
// EmbeddedVariableNode
|
842
|
+
//
|
843
|
+
// Type: YP_NODE_EMBEDDED_VARIABLE_NODE
|
638
844
|
typedef struct yp_embedded_variable_node {
|
639
845
|
yp_node_t base;
|
640
846
|
yp_location_t operator_loc;
|
@@ -642,6 +848,8 @@ typedef struct yp_embedded_variable_node {
|
|
642
848
|
} yp_embedded_variable_node_t;
|
643
849
|
|
644
850
|
// EnsureNode
|
851
|
+
//
|
852
|
+
// Type: YP_NODE_ENSURE_NODE
|
645
853
|
typedef struct yp_ensure_node {
|
646
854
|
yp_node_t base;
|
647
855
|
yp_location_t ensure_keyword_loc;
|
@@ -650,11 +858,15 @@ typedef struct yp_ensure_node {
|
|
650
858
|
} yp_ensure_node_t;
|
651
859
|
|
652
860
|
// FalseNode
|
861
|
+
//
|
862
|
+
// Type: YP_NODE_FALSE_NODE
|
653
863
|
typedef struct yp_false_node {
|
654
864
|
yp_node_t base;
|
655
865
|
} yp_false_node_t;
|
656
866
|
|
657
867
|
// FindPatternNode
|
868
|
+
//
|
869
|
+
// Type: YP_NODE_FIND_PATTERN_NODE
|
658
870
|
typedef struct yp_find_pattern_node {
|
659
871
|
yp_node_t base;
|
660
872
|
struct yp_node *constant;
|
@@ -666,6 +878,10 @@ typedef struct yp_find_pattern_node {
|
|
666
878
|
} yp_find_pattern_node_t;
|
667
879
|
|
668
880
|
// FlipFlopNode
|
881
|
+
//
|
882
|
+
// Type: YP_NODE_FLIP_FLOP_NODE
|
883
|
+
// Flags:
|
884
|
+
// YP_RANGE_FLAGS_EXCLUDE_END
|
669
885
|
typedef struct yp_flip_flop_node {
|
670
886
|
yp_node_t base;
|
671
887
|
struct yp_node *left;
|
@@ -674,11 +890,15 @@ typedef struct yp_flip_flop_node {
|
|
674
890
|
} yp_flip_flop_node_t;
|
675
891
|
|
676
892
|
// FloatNode
|
893
|
+
//
|
894
|
+
// Type: YP_NODE_FLOAT_NODE
|
677
895
|
typedef struct yp_float_node {
|
678
896
|
yp_node_t base;
|
679
897
|
} yp_float_node_t;
|
680
898
|
|
681
899
|
// ForNode
|
900
|
+
//
|
901
|
+
// Type: YP_NODE_FOR_NODE
|
682
902
|
typedef struct yp_for_node {
|
683
903
|
yp_node_t base;
|
684
904
|
struct yp_node *index;
|
@@ -691,35 +911,85 @@ typedef struct yp_for_node {
|
|
691
911
|
} yp_for_node_t;
|
692
912
|
|
693
913
|
// ForwardingArgumentsNode
|
914
|
+
//
|
915
|
+
// Type: YP_NODE_FORWARDING_ARGUMENTS_NODE
|
694
916
|
typedef struct yp_forwarding_arguments_node {
|
695
917
|
yp_node_t base;
|
696
918
|
} yp_forwarding_arguments_node_t;
|
697
919
|
|
698
920
|
// ForwardingParameterNode
|
921
|
+
//
|
922
|
+
// Type: YP_NODE_FORWARDING_PARAMETER_NODE
|
699
923
|
typedef struct yp_forwarding_parameter_node {
|
700
924
|
yp_node_t base;
|
701
925
|
} yp_forwarding_parameter_node_t;
|
702
926
|
|
703
927
|
// ForwardingSuperNode
|
928
|
+
//
|
929
|
+
// Type: YP_NODE_FORWARDING_SUPER_NODE
|
704
930
|
typedef struct yp_forwarding_super_node {
|
705
931
|
yp_node_t base;
|
706
932
|
struct yp_block_node *block;
|
707
933
|
} yp_forwarding_super_node_t;
|
708
934
|
|
935
|
+
// GlobalVariableAndWriteNode
|
936
|
+
//
|
937
|
+
// Type: YP_NODE_GLOBAL_VARIABLE_AND_WRITE_NODE
|
938
|
+
typedef struct yp_global_variable_and_write_node {
|
939
|
+
yp_node_t base;
|
940
|
+
yp_location_t name_loc;
|
941
|
+
yp_location_t operator_loc;
|
942
|
+
struct yp_node *value;
|
943
|
+
} yp_global_variable_and_write_node_t;
|
944
|
+
|
945
|
+
// GlobalVariableOperatorWriteNode
|
946
|
+
//
|
947
|
+
// Type: YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
|
948
|
+
typedef struct yp_global_variable_operator_write_node {
|
949
|
+
yp_node_t base;
|
950
|
+
yp_location_t name_loc;
|
951
|
+
yp_location_t operator_loc;
|
952
|
+
struct yp_node *value;
|
953
|
+
yp_constant_id_t operator;
|
954
|
+
} yp_global_variable_operator_write_node_t;
|
955
|
+
|
956
|
+
// GlobalVariableOrWriteNode
|
957
|
+
//
|
958
|
+
// Type: YP_NODE_GLOBAL_VARIABLE_OR_WRITE_NODE
|
959
|
+
typedef struct yp_global_variable_or_write_node {
|
960
|
+
yp_node_t base;
|
961
|
+
yp_location_t name_loc;
|
962
|
+
yp_location_t operator_loc;
|
963
|
+
struct yp_node *value;
|
964
|
+
} yp_global_variable_or_write_node_t;
|
965
|
+
|
709
966
|
// GlobalVariableReadNode
|
967
|
+
//
|
968
|
+
// Type: YP_NODE_GLOBAL_VARIABLE_READ_NODE
|
710
969
|
typedef struct yp_global_variable_read_node {
|
711
970
|
yp_node_t base;
|
712
971
|
} yp_global_variable_read_node_t;
|
713
972
|
|
973
|
+
// GlobalVariableTargetNode
|
974
|
+
//
|
975
|
+
// Type: YP_NODE_GLOBAL_VARIABLE_TARGET_NODE
|
976
|
+
typedef struct yp_global_variable_target_node {
|
977
|
+
yp_node_t base;
|
978
|
+
} yp_global_variable_target_node_t;
|
979
|
+
|
714
980
|
// GlobalVariableWriteNode
|
981
|
+
//
|
982
|
+
// Type: YP_NODE_GLOBAL_VARIABLE_WRITE_NODE
|
715
983
|
typedef struct yp_global_variable_write_node {
|
716
984
|
yp_node_t base;
|
717
985
|
yp_location_t name_loc;
|
718
|
-
yp_location_t operator_loc;
|
719
986
|
struct yp_node *value;
|
987
|
+
yp_location_t operator_loc;
|
720
988
|
} yp_global_variable_write_node_t;
|
721
989
|
|
722
990
|
// HashNode
|
991
|
+
//
|
992
|
+
// Type: YP_NODE_HASH_NODE
|
723
993
|
typedef struct yp_hash_node {
|
724
994
|
yp_node_t base;
|
725
995
|
yp_location_t opening_loc;
|
@@ -728,6 +998,8 @@ typedef struct yp_hash_node {
|
|
728
998
|
} yp_hash_node_t;
|
729
999
|
|
730
1000
|
// HashPatternNode
|
1001
|
+
//
|
1002
|
+
// Type: YP_NODE_HASH_PATTERN_NODE
|
731
1003
|
typedef struct yp_hash_pattern_node {
|
732
1004
|
yp_node_t base;
|
733
1005
|
struct yp_node *constant;
|
@@ -738,6 +1010,8 @@ typedef struct yp_hash_pattern_node {
|
|
738
1010
|
} yp_hash_pattern_node_t;
|
739
1011
|
|
740
1012
|
// IfNode
|
1013
|
+
//
|
1014
|
+
// Type: YP_NODE_IF_NODE
|
741
1015
|
typedef struct yp_if_node {
|
742
1016
|
yp_node_t base;
|
743
1017
|
yp_location_t if_keyword_loc;
|
@@ -748,12 +1022,16 @@ typedef struct yp_if_node {
|
|
748
1022
|
} yp_if_node_t;
|
749
1023
|
|
750
1024
|
// ImaginaryNode
|
1025
|
+
//
|
1026
|
+
// Type: YP_NODE_IMAGINARY_NODE
|
751
1027
|
typedef struct yp_imaginary_node {
|
752
1028
|
yp_node_t base;
|
753
1029
|
struct yp_node *numeric;
|
754
1030
|
} yp_imaginary_node_t;
|
755
1031
|
|
756
1032
|
// InNode
|
1033
|
+
//
|
1034
|
+
// Type: YP_NODE_IN_NODE
|
757
1035
|
typedef struct yp_in_node {
|
758
1036
|
yp_node_t base;
|
759
1037
|
struct yp_node *pattern;
|
@@ -762,25 +1040,86 @@ typedef struct yp_in_node {
|
|
762
1040
|
yp_location_t then_loc;
|
763
1041
|
} yp_in_node_t;
|
764
1042
|
|
1043
|
+
// InstanceVariableAndWriteNode
|
1044
|
+
//
|
1045
|
+
// Type: YP_NODE_INSTANCE_VARIABLE_AND_WRITE_NODE
|
1046
|
+
typedef struct yp_instance_variable_and_write_node {
|
1047
|
+
yp_node_t base;
|
1048
|
+
yp_constant_id_t name;
|
1049
|
+
yp_location_t name_loc;
|
1050
|
+
yp_location_t operator_loc;
|
1051
|
+
struct yp_node *value;
|
1052
|
+
} yp_instance_variable_and_write_node_t;
|
1053
|
+
|
1054
|
+
// InstanceVariableOperatorWriteNode
|
1055
|
+
//
|
1056
|
+
// Type: YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
|
1057
|
+
typedef struct yp_instance_variable_operator_write_node {
|
1058
|
+
yp_node_t base;
|
1059
|
+
yp_constant_id_t name;
|
1060
|
+
yp_location_t name_loc;
|
1061
|
+
yp_location_t operator_loc;
|
1062
|
+
struct yp_node *value;
|
1063
|
+
yp_constant_id_t operator;
|
1064
|
+
} yp_instance_variable_operator_write_node_t;
|
1065
|
+
|
1066
|
+
// InstanceVariableOrWriteNode
|
1067
|
+
//
|
1068
|
+
// Type: YP_NODE_INSTANCE_VARIABLE_OR_WRITE_NODE
|
1069
|
+
typedef struct yp_instance_variable_or_write_node {
|
1070
|
+
yp_node_t base;
|
1071
|
+
yp_constant_id_t name;
|
1072
|
+
yp_location_t name_loc;
|
1073
|
+
yp_location_t operator_loc;
|
1074
|
+
struct yp_node *value;
|
1075
|
+
} yp_instance_variable_or_write_node_t;
|
1076
|
+
|
765
1077
|
// InstanceVariableReadNode
|
1078
|
+
//
|
1079
|
+
// Type: YP_NODE_INSTANCE_VARIABLE_READ_NODE
|
766
1080
|
typedef struct yp_instance_variable_read_node {
|
767
1081
|
yp_node_t base;
|
1082
|
+
yp_constant_id_t name;
|
768
1083
|
} yp_instance_variable_read_node_t;
|
769
1084
|
|
1085
|
+
// InstanceVariableTargetNode
|
1086
|
+
//
|
1087
|
+
// Type: YP_NODE_INSTANCE_VARIABLE_TARGET_NODE
|
1088
|
+
typedef struct yp_instance_variable_target_node {
|
1089
|
+
yp_node_t base;
|
1090
|
+
yp_constant_id_t name;
|
1091
|
+
} yp_instance_variable_target_node_t;
|
1092
|
+
|
770
1093
|
// InstanceVariableWriteNode
|
1094
|
+
//
|
1095
|
+
// Type: YP_NODE_INSTANCE_VARIABLE_WRITE_NODE
|
771
1096
|
typedef struct yp_instance_variable_write_node {
|
772
1097
|
yp_node_t base;
|
1098
|
+
yp_constant_id_t name;
|
773
1099
|
yp_location_t name_loc;
|
774
1100
|
struct yp_node *value;
|
775
1101
|
yp_location_t operator_loc;
|
776
1102
|
} yp_instance_variable_write_node_t;
|
777
1103
|
|
778
1104
|
// IntegerNode
|
1105
|
+
//
|
1106
|
+
// Type: YP_NODE_INTEGER_NODE
|
779
1107
|
typedef struct yp_integer_node {
|
780
1108
|
yp_node_t base;
|
781
1109
|
} yp_integer_node_t;
|
782
1110
|
|
783
1111
|
// InterpolatedRegularExpressionNode
|
1112
|
+
//
|
1113
|
+
// Type: YP_NODE_INTERPOLATED_REGULAR_EXPRESSION_NODE
|
1114
|
+
// Flags:
|
1115
|
+
// YP_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
|
1116
|
+
// YP_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
|
1117
|
+
// YP_REGULAR_EXPRESSION_FLAGS_EXTENDED
|
1118
|
+
// YP_REGULAR_EXPRESSION_FLAGS_EUC_JP
|
1119
|
+
// YP_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
|
1120
|
+
// YP_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
|
1121
|
+
// YP_REGULAR_EXPRESSION_FLAGS_UTF_8
|
1122
|
+
// YP_REGULAR_EXPRESSION_FLAGS_ONCE
|
784
1123
|
typedef struct yp_interpolated_regular_expression_node {
|
785
1124
|
yp_node_t base;
|
786
1125
|
yp_location_t opening_loc;
|
@@ -789,6 +1128,8 @@ typedef struct yp_interpolated_regular_expression_node {
|
|
789
1128
|
} yp_interpolated_regular_expression_node_t;
|
790
1129
|
|
791
1130
|
// InterpolatedStringNode
|
1131
|
+
//
|
1132
|
+
// Type: YP_NODE_INTERPOLATED_STRING_NODE
|
792
1133
|
typedef struct yp_interpolated_string_node {
|
793
1134
|
yp_node_t base;
|
794
1135
|
yp_location_t opening_loc;
|
@@ -797,6 +1138,8 @@ typedef struct yp_interpolated_string_node {
|
|
797
1138
|
} yp_interpolated_string_node_t;
|
798
1139
|
|
799
1140
|
// InterpolatedSymbolNode
|
1141
|
+
//
|
1142
|
+
// Type: YP_NODE_INTERPOLATED_SYMBOL_NODE
|
800
1143
|
typedef struct yp_interpolated_symbol_node {
|
801
1144
|
yp_node_t base;
|
802
1145
|
yp_location_t opening_loc;
|
@@ -805,6 +1148,8 @@ typedef struct yp_interpolated_symbol_node {
|
|
805
1148
|
} yp_interpolated_symbol_node_t;
|
806
1149
|
|
807
1150
|
// InterpolatedXStringNode
|
1151
|
+
//
|
1152
|
+
// Type: YP_NODE_INTERPOLATED_X_STRING_NODE
|
808
1153
|
typedef struct yp_interpolated_x_string_node {
|
809
1154
|
yp_node_t base;
|
810
1155
|
yp_location_t opening_loc;
|
@@ -813,12 +1158,16 @@ typedef struct yp_interpolated_x_string_node {
|
|
813
1158
|
} yp_interpolated_x_string_node_t;
|
814
1159
|
|
815
1160
|
// KeywordHashNode
|
1161
|
+
//
|
1162
|
+
// Type: YP_NODE_KEYWORD_HASH_NODE
|
816
1163
|
typedef struct yp_keyword_hash_node {
|
817
1164
|
yp_node_t base;
|
818
1165
|
struct yp_node_list elements;
|
819
1166
|
} yp_keyword_hash_node_t;
|
820
1167
|
|
821
1168
|
// KeywordParameterNode
|
1169
|
+
//
|
1170
|
+
// Type: YP_NODE_KEYWORD_PARAMETER_NODE
|
822
1171
|
typedef struct yp_keyword_parameter_node {
|
823
1172
|
yp_node_t base;
|
824
1173
|
yp_location_t name_loc;
|
@@ -826,6 +1175,8 @@ typedef struct yp_keyword_parameter_node {
|
|
826
1175
|
} yp_keyword_parameter_node_t;
|
827
1176
|
|
828
1177
|
// KeywordRestParameterNode
|
1178
|
+
//
|
1179
|
+
// Type: YP_NODE_KEYWORD_REST_PARAMETER_NODE
|
829
1180
|
typedef struct yp_keyword_rest_parameter_node {
|
830
1181
|
yp_node_t base;
|
831
1182
|
yp_location_t operator_loc;
|
@@ -833,32 +1184,88 @@ typedef struct yp_keyword_rest_parameter_node {
|
|
833
1184
|
} yp_keyword_rest_parameter_node_t;
|
834
1185
|
|
835
1186
|
// LambdaNode
|
1187
|
+
//
|
1188
|
+
// Type: YP_NODE_LAMBDA_NODE
|
836
1189
|
typedef struct yp_lambda_node {
|
837
1190
|
yp_node_t base;
|
838
1191
|
yp_constant_id_list_t locals;
|
1192
|
+
yp_location_t operator_loc;
|
839
1193
|
yp_location_t opening_loc;
|
1194
|
+
yp_location_t closing_loc;
|
840
1195
|
struct yp_block_parameters_node *parameters;
|
841
1196
|
struct yp_node *body;
|
842
1197
|
} yp_lambda_node_t;
|
843
1198
|
|
1199
|
+
// LocalVariableAndWriteNode
|
1200
|
+
//
|
1201
|
+
// Type: YP_NODE_LOCAL_VARIABLE_AND_WRITE_NODE
|
1202
|
+
typedef struct yp_local_variable_and_write_node {
|
1203
|
+
yp_node_t base;
|
1204
|
+
yp_location_t name_loc;
|
1205
|
+
yp_location_t operator_loc;
|
1206
|
+
struct yp_node *value;
|
1207
|
+
yp_constant_id_t name;
|
1208
|
+
uint32_t depth;
|
1209
|
+
} yp_local_variable_and_write_node_t;
|
1210
|
+
|
1211
|
+
// LocalVariableOperatorWriteNode
|
1212
|
+
//
|
1213
|
+
// Type: YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
|
1214
|
+
typedef struct yp_local_variable_operator_write_node {
|
1215
|
+
yp_node_t base;
|
1216
|
+
yp_location_t name_loc;
|
1217
|
+
yp_location_t operator_loc;
|
1218
|
+
struct yp_node *value;
|
1219
|
+
yp_constant_id_t name;
|
1220
|
+
yp_constant_id_t operator;
|
1221
|
+
uint32_t depth;
|
1222
|
+
} yp_local_variable_operator_write_node_t;
|
1223
|
+
|
1224
|
+
// LocalVariableOrWriteNode
|
1225
|
+
//
|
1226
|
+
// Type: YP_NODE_LOCAL_VARIABLE_OR_WRITE_NODE
|
1227
|
+
typedef struct yp_local_variable_or_write_node {
|
1228
|
+
yp_node_t base;
|
1229
|
+
yp_location_t name_loc;
|
1230
|
+
yp_location_t operator_loc;
|
1231
|
+
struct yp_node *value;
|
1232
|
+
yp_constant_id_t name;
|
1233
|
+
uint32_t depth;
|
1234
|
+
} yp_local_variable_or_write_node_t;
|
1235
|
+
|
844
1236
|
// LocalVariableReadNode
|
1237
|
+
//
|
1238
|
+
// Type: YP_NODE_LOCAL_VARIABLE_READ_NODE
|
845
1239
|
typedef struct yp_local_variable_read_node {
|
846
1240
|
yp_node_t base;
|
847
|
-
yp_constant_id_t
|
1241
|
+
yp_constant_id_t name;
|
848
1242
|
uint32_t depth;
|
849
1243
|
} yp_local_variable_read_node_t;
|
850
1244
|
|
1245
|
+
// LocalVariableTargetNode
|
1246
|
+
//
|
1247
|
+
// Type: YP_NODE_LOCAL_VARIABLE_TARGET_NODE
|
1248
|
+
typedef struct yp_local_variable_target_node {
|
1249
|
+
yp_node_t base;
|
1250
|
+
yp_constant_id_t name;
|
1251
|
+
uint32_t depth;
|
1252
|
+
} yp_local_variable_target_node_t;
|
1253
|
+
|
851
1254
|
// LocalVariableWriteNode
|
1255
|
+
//
|
1256
|
+
// Type: YP_NODE_LOCAL_VARIABLE_WRITE_NODE
|
852
1257
|
typedef struct yp_local_variable_write_node {
|
853
1258
|
yp_node_t base;
|
854
|
-
yp_constant_id_t
|
1259
|
+
yp_constant_id_t name;
|
855
1260
|
uint32_t depth;
|
856
|
-
struct yp_node *value;
|
857
1261
|
yp_location_t name_loc;
|
1262
|
+
struct yp_node *value;
|
858
1263
|
yp_location_t operator_loc;
|
859
1264
|
} yp_local_variable_write_node_t;
|
860
1265
|
|
861
1266
|
// MatchPredicateNode
|
1267
|
+
//
|
1268
|
+
// Type: YP_NODE_MATCH_PREDICATE_NODE
|
862
1269
|
typedef struct yp_match_predicate_node {
|
863
1270
|
yp_node_t base;
|
864
1271
|
struct yp_node *value;
|
@@ -867,6 +1274,8 @@ typedef struct yp_match_predicate_node {
|
|
867
1274
|
} yp_match_predicate_node_t;
|
868
1275
|
|
869
1276
|
// MatchRequiredNode
|
1277
|
+
//
|
1278
|
+
// Type: YP_NODE_MATCH_REQUIRED_NODE
|
870
1279
|
typedef struct yp_match_required_node {
|
871
1280
|
yp_node_t base;
|
872
1281
|
struct yp_node *value;
|
@@ -875,11 +1284,15 @@ typedef struct yp_match_required_node {
|
|
875
1284
|
} yp_match_required_node_t;
|
876
1285
|
|
877
1286
|
// MissingNode
|
1287
|
+
//
|
1288
|
+
// Type: YP_NODE_MISSING_NODE
|
878
1289
|
typedef struct yp_missing_node {
|
879
1290
|
yp_node_t base;
|
880
1291
|
} yp_missing_node_t;
|
881
1292
|
|
882
1293
|
// ModuleNode
|
1294
|
+
//
|
1295
|
+
// Type: YP_NODE_MODULE_NODE
|
883
1296
|
typedef struct yp_module_node {
|
884
1297
|
yp_node_t base;
|
885
1298
|
yp_constant_id_list_t locals;
|
@@ -887,9 +1300,12 @@ typedef struct yp_module_node {
|
|
887
1300
|
struct yp_node *constant_path;
|
888
1301
|
struct yp_node *body;
|
889
1302
|
yp_location_t end_keyword_loc;
|
1303
|
+
yp_string_t name;
|
890
1304
|
} yp_module_node_t;
|
891
1305
|
|
892
1306
|
// MultiWriteNode
|
1307
|
+
//
|
1308
|
+
// Type: YP_NODE_MULTI_WRITE_NODE
|
893
1309
|
typedef struct yp_multi_write_node {
|
894
1310
|
yp_node_t base;
|
895
1311
|
struct yp_node_list targets;
|
@@ -900,6 +1316,8 @@ typedef struct yp_multi_write_node {
|
|
900
1316
|
} yp_multi_write_node_t;
|
901
1317
|
|
902
1318
|
// NextNode
|
1319
|
+
//
|
1320
|
+
// Type: YP_NODE_NEXT_NODE
|
903
1321
|
typedef struct yp_next_node {
|
904
1322
|
yp_node_t base;
|
905
1323
|
struct yp_arguments_node *arguments;
|
@@ -907,11 +1325,15 @@ typedef struct yp_next_node {
|
|
907
1325
|
} yp_next_node_t;
|
908
1326
|
|
909
1327
|
// NilNode
|
1328
|
+
//
|
1329
|
+
// Type: YP_NODE_NIL_NODE
|
910
1330
|
typedef struct yp_nil_node {
|
911
1331
|
yp_node_t base;
|
912
1332
|
} yp_nil_node_t;
|
913
1333
|
|
914
1334
|
// NoKeywordsParameterNode
|
1335
|
+
//
|
1336
|
+
// Type: YP_NODE_NO_KEYWORDS_PARAMETER_NODE
|
915
1337
|
typedef struct yp_no_keywords_parameter_node {
|
916
1338
|
yp_node_t base;
|
917
1339
|
yp_location_t operator_loc;
|
@@ -919,29 +1341,27 @@ typedef struct yp_no_keywords_parameter_node {
|
|
919
1341
|
} yp_no_keywords_parameter_node_t;
|
920
1342
|
|
921
1343
|
// NumberedReferenceReadNode
|
1344
|
+
//
|
1345
|
+
// Type: YP_NODE_NUMBERED_REFERENCE_READ_NODE
|
922
1346
|
typedef struct yp_numbered_reference_read_node {
|
923
1347
|
yp_node_t base;
|
1348
|
+
uint32_t number;
|
924
1349
|
} yp_numbered_reference_read_node_t;
|
925
1350
|
|
926
|
-
// OperatorWriteNode
|
927
|
-
typedef struct yp_operator_write_node {
|
928
|
-
yp_node_t base;
|
929
|
-
struct yp_node *target;
|
930
|
-
yp_location_t operator_loc;
|
931
|
-
yp_constant_id_t operator;
|
932
|
-
struct yp_node *value;
|
933
|
-
} yp_operator_write_node_t;
|
934
|
-
|
935
1351
|
// OptionalParameterNode
|
1352
|
+
//
|
1353
|
+
// Type: YP_NODE_OPTIONAL_PARAMETER_NODE
|
936
1354
|
typedef struct yp_optional_parameter_node {
|
937
1355
|
yp_node_t base;
|
938
|
-
yp_constant_id_t
|
1356
|
+
yp_constant_id_t name;
|
939
1357
|
yp_location_t name_loc;
|
940
1358
|
yp_location_t operator_loc;
|
941
1359
|
struct yp_node *value;
|
942
1360
|
} yp_optional_parameter_node_t;
|
943
1361
|
|
944
1362
|
// OrNode
|
1363
|
+
//
|
1364
|
+
// Type: YP_NODE_OR_NODE
|
945
1365
|
typedef struct yp_or_node {
|
946
1366
|
yp_node_t base;
|
947
1367
|
struct yp_node *left;
|
@@ -949,15 +1369,9 @@ typedef struct yp_or_node {
|
|
949
1369
|
yp_location_t operator_loc;
|
950
1370
|
} yp_or_node_t;
|
951
1371
|
|
952
|
-
// OrWriteNode
|
953
|
-
typedef struct yp_or_write_node {
|
954
|
-
yp_node_t base;
|
955
|
-
struct yp_node *target;
|
956
|
-
struct yp_node *value;
|
957
|
-
yp_location_t operator_loc;
|
958
|
-
} yp_or_write_node_t;
|
959
|
-
|
960
1372
|
// ParametersNode
|
1373
|
+
//
|
1374
|
+
// Type: YP_NODE_PARAMETERS_NODE
|
961
1375
|
typedef struct yp_parameters_node {
|
962
1376
|
yp_node_t base;
|
963
1377
|
struct yp_node_list requireds;
|
@@ -970,6 +1384,8 @@ typedef struct yp_parameters_node {
|
|
970
1384
|
} yp_parameters_node_t;
|
971
1385
|
|
972
1386
|
// ParenthesesNode
|
1387
|
+
//
|
1388
|
+
// Type: YP_NODE_PARENTHESES_NODE
|
973
1389
|
typedef struct yp_parentheses_node {
|
974
1390
|
yp_node_t base;
|
975
1391
|
struct yp_node *body;
|
@@ -978,6 +1394,8 @@ typedef struct yp_parentheses_node {
|
|
978
1394
|
} yp_parentheses_node_t;
|
979
1395
|
|
980
1396
|
// PinnedExpressionNode
|
1397
|
+
//
|
1398
|
+
// Type: YP_NODE_PINNED_EXPRESSION_NODE
|
981
1399
|
typedef struct yp_pinned_expression_node {
|
982
1400
|
yp_node_t base;
|
983
1401
|
struct yp_node *expression;
|
@@ -987,6 +1405,8 @@ typedef struct yp_pinned_expression_node {
|
|
987
1405
|
} yp_pinned_expression_node_t;
|
988
1406
|
|
989
1407
|
// PinnedVariableNode
|
1408
|
+
//
|
1409
|
+
// Type: YP_NODE_PINNED_VARIABLE_NODE
|
990
1410
|
typedef struct yp_pinned_variable_node {
|
991
1411
|
yp_node_t base;
|
992
1412
|
struct yp_node *variable;
|
@@ -994,6 +1414,8 @@ typedef struct yp_pinned_variable_node {
|
|
994
1414
|
} yp_pinned_variable_node_t;
|
995
1415
|
|
996
1416
|
// PostExecutionNode
|
1417
|
+
//
|
1418
|
+
// Type: YP_NODE_POST_EXECUTION_NODE
|
997
1419
|
typedef struct yp_post_execution_node {
|
998
1420
|
yp_node_t base;
|
999
1421
|
struct yp_statements_node *statements;
|
@@ -1003,6 +1425,8 @@ typedef struct yp_post_execution_node {
|
|
1003
1425
|
} yp_post_execution_node_t;
|
1004
1426
|
|
1005
1427
|
// PreExecutionNode
|
1428
|
+
//
|
1429
|
+
// Type: YP_NODE_PRE_EXECUTION_NODE
|
1006
1430
|
typedef struct yp_pre_execution_node {
|
1007
1431
|
yp_node_t base;
|
1008
1432
|
struct yp_statements_node *statements;
|
@@ -1012,6 +1436,8 @@ typedef struct yp_pre_execution_node {
|
|
1012
1436
|
} yp_pre_execution_node_t;
|
1013
1437
|
|
1014
1438
|
// ProgramNode
|
1439
|
+
//
|
1440
|
+
// Type: YP_NODE_PROGRAM_NODE
|
1015
1441
|
typedef struct yp_program_node {
|
1016
1442
|
yp_node_t base;
|
1017
1443
|
yp_constant_id_list_t locals;
|
@@ -1019,6 +1445,10 @@ typedef struct yp_program_node {
|
|
1019
1445
|
} yp_program_node_t;
|
1020
1446
|
|
1021
1447
|
// RangeNode
|
1448
|
+
//
|
1449
|
+
// Type: YP_NODE_RANGE_NODE
|
1450
|
+
// Flags:
|
1451
|
+
// YP_RANGE_FLAGS_EXCLUDE_END
|
1022
1452
|
typedef struct yp_range_node {
|
1023
1453
|
yp_node_t base;
|
1024
1454
|
struct yp_node *left;
|
@@ -1027,17 +1457,32 @@ typedef struct yp_range_node {
|
|
1027
1457
|
} yp_range_node_t;
|
1028
1458
|
|
1029
1459
|
// RationalNode
|
1460
|
+
//
|
1461
|
+
// Type: YP_NODE_RATIONAL_NODE
|
1030
1462
|
typedef struct yp_rational_node {
|
1031
1463
|
yp_node_t base;
|
1032
1464
|
struct yp_node *numeric;
|
1033
1465
|
} yp_rational_node_t;
|
1034
1466
|
|
1035
1467
|
// RedoNode
|
1468
|
+
//
|
1469
|
+
// Type: YP_NODE_REDO_NODE
|
1036
1470
|
typedef struct yp_redo_node {
|
1037
1471
|
yp_node_t base;
|
1038
1472
|
} yp_redo_node_t;
|
1039
1473
|
|
1040
1474
|
// RegularExpressionNode
|
1475
|
+
//
|
1476
|
+
// Type: YP_NODE_REGULAR_EXPRESSION_NODE
|
1477
|
+
// Flags:
|
1478
|
+
// YP_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
|
1479
|
+
// YP_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
|
1480
|
+
// YP_REGULAR_EXPRESSION_FLAGS_EXTENDED
|
1481
|
+
// YP_REGULAR_EXPRESSION_FLAGS_EUC_JP
|
1482
|
+
// YP_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
|
1483
|
+
// YP_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
|
1484
|
+
// YP_REGULAR_EXPRESSION_FLAGS_UTF_8
|
1485
|
+
// YP_REGULAR_EXPRESSION_FLAGS_ONCE
|
1041
1486
|
typedef struct yp_regular_expression_node {
|
1042
1487
|
yp_node_t base;
|
1043
1488
|
yp_location_t opening_loc;
|
@@ -1047,6 +1492,8 @@ typedef struct yp_regular_expression_node {
|
|
1047
1492
|
} yp_regular_expression_node_t;
|
1048
1493
|
|
1049
1494
|
// RequiredDestructuredParameterNode
|
1495
|
+
//
|
1496
|
+
// Type: YP_NODE_REQUIRED_DESTRUCTURED_PARAMETER_NODE
|
1050
1497
|
typedef struct yp_required_destructured_parameter_node {
|
1051
1498
|
yp_node_t base;
|
1052
1499
|
struct yp_node_list parameters;
|
@@ -1055,12 +1502,16 @@ typedef struct yp_required_destructured_parameter_node {
|
|
1055
1502
|
} yp_required_destructured_parameter_node_t;
|
1056
1503
|
|
1057
1504
|
// RequiredParameterNode
|
1505
|
+
//
|
1506
|
+
// Type: YP_NODE_REQUIRED_PARAMETER_NODE
|
1058
1507
|
typedef struct yp_required_parameter_node {
|
1059
1508
|
yp_node_t base;
|
1060
|
-
yp_constant_id_t
|
1509
|
+
yp_constant_id_t name;
|
1061
1510
|
} yp_required_parameter_node_t;
|
1062
1511
|
|
1063
1512
|
// RescueModifierNode
|
1513
|
+
//
|
1514
|
+
// Type: YP_NODE_RESCUE_MODIFIER_NODE
|
1064
1515
|
typedef struct yp_rescue_modifier_node {
|
1065
1516
|
yp_node_t base;
|
1066
1517
|
struct yp_node *expression;
|
@@ -1069,6 +1520,8 @@ typedef struct yp_rescue_modifier_node {
|
|
1069
1520
|
} yp_rescue_modifier_node_t;
|
1070
1521
|
|
1071
1522
|
// RescueNode
|
1523
|
+
//
|
1524
|
+
// Type: YP_NODE_RESCUE_NODE
|
1072
1525
|
typedef struct yp_rescue_node {
|
1073
1526
|
yp_node_t base;
|
1074
1527
|
yp_location_t keyword_loc;
|
@@ -1080,6 +1533,8 @@ typedef struct yp_rescue_node {
|
|
1080
1533
|
} yp_rescue_node_t;
|
1081
1534
|
|
1082
1535
|
// RestParameterNode
|
1536
|
+
//
|
1537
|
+
// Type: YP_NODE_REST_PARAMETER_NODE
|
1083
1538
|
typedef struct yp_rest_parameter_node {
|
1084
1539
|
yp_node_t base;
|
1085
1540
|
yp_location_t operator_loc;
|
@@ -1087,11 +1542,15 @@ typedef struct yp_rest_parameter_node {
|
|
1087
1542
|
} yp_rest_parameter_node_t;
|
1088
1543
|
|
1089
1544
|
// RetryNode
|
1545
|
+
//
|
1546
|
+
// Type: YP_NODE_RETRY_NODE
|
1090
1547
|
typedef struct yp_retry_node {
|
1091
1548
|
yp_node_t base;
|
1092
1549
|
} yp_retry_node_t;
|
1093
1550
|
|
1094
1551
|
// ReturnNode
|
1552
|
+
//
|
1553
|
+
// Type: YP_NODE_RETURN_NODE
|
1095
1554
|
typedef struct yp_return_node {
|
1096
1555
|
yp_node_t base;
|
1097
1556
|
yp_location_t keyword_loc;
|
@@ -1099,11 +1558,15 @@ typedef struct yp_return_node {
|
|
1099
1558
|
} yp_return_node_t;
|
1100
1559
|
|
1101
1560
|
// SelfNode
|
1561
|
+
//
|
1562
|
+
// Type: YP_NODE_SELF_NODE
|
1102
1563
|
typedef struct yp_self_node {
|
1103
1564
|
yp_node_t base;
|
1104
1565
|
} yp_self_node_t;
|
1105
1566
|
|
1106
1567
|
// SingletonClassNode
|
1568
|
+
//
|
1569
|
+
// Type: YP_NODE_SINGLETON_CLASS_NODE
|
1107
1570
|
typedef struct yp_singleton_class_node {
|
1108
1571
|
yp_node_t base;
|
1109
1572
|
yp_constant_id_list_t locals;
|
@@ -1115,22 +1578,30 @@ typedef struct yp_singleton_class_node {
|
|
1115
1578
|
} yp_singleton_class_node_t;
|
1116
1579
|
|
1117
1580
|
// SourceEncodingNode
|
1581
|
+
//
|
1582
|
+
// Type: YP_NODE_SOURCE_ENCODING_NODE
|
1118
1583
|
typedef struct yp_source_encoding_node {
|
1119
1584
|
yp_node_t base;
|
1120
1585
|
} yp_source_encoding_node_t;
|
1121
1586
|
|
1122
1587
|
// SourceFileNode
|
1588
|
+
//
|
1589
|
+
// Type: YP_NODE_SOURCE_FILE_NODE
|
1123
1590
|
typedef struct yp_source_file_node {
|
1124
1591
|
yp_node_t base;
|
1125
1592
|
yp_string_t filepath;
|
1126
1593
|
} yp_source_file_node_t;
|
1127
1594
|
|
1128
1595
|
// SourceLineNode
|
1596
|
+
//
|
1597
|
+
// Type: YP_NODE_SOURCE_LINE_NODE
|
1129
1598
|
typedef struct yp_source_line_node {
|
1130
1599
|
yp_node_t base;
|
1131
1600
|
} yp_source_line_node_t;
|
1132
1601
|
|
1133
1602
|
// SplatNode
|
1603
|
+
//
|
1604
|
+
// Type: YP_NODE_SPLAT_NODE
|
1134
1605
|
typedef struct yp_splat_node {
|
1135
1606
|
yp_node_t base;
|
1136
1607
|
yp_location_t operator_loc;
|
@@ -1138,12 +1609,16 @@ typedef struct yp_splat_node {
|
|
1138
1609
|
} yp_splat_node_t;
|
1139
1610
|
|
1140
1611
|
// StatementsNode
|
1612
|
+
//
|
1613
|
+
// Type: YP_NODE_STATEMENTS_NODE
|
1141
1614
|
typedef struct yp_statements_node {
|
1142
1615
|
yp_node_t base;
|
1143
1616
|
struct yp_node_list body;
|
1144
1617
|
} yp_statements_node_t;
|
1145
1618
|
|
1146
1619
|
// StringConcatNode
|
1620
|
+
//
|
1621
|
+
// Type: YP_NODE_STRING_CONCAT_NODE
|
1147
1622
|
typedef struct yp_string_concat_node {
|
1148
1623
|
yp_node_t base;
|
1149
1624
|
struct yp_node *left;
|
@@ -1151,6 +1626,8 @@ typedef struct yp_string_concat_node {
|
|
1151
1626
|
} yp_string_concat_node_t;
|
1152
1627
|
|
1153
1628
|
// StringNode
|
1629
|
+
//
|
1630
|
+
// Type: YP_NODE_STRING_NODE
|
1154
1631
|
typedef struct yp_string_node {
|
1155
1632
|
yp_node_t base;
|
1156
1633
|
yp_location_t opening_loc;
|
@@ -1160,6 +1637,8 @@ typedef struct yp_string_node {
|
|
1160
1637
|
} yp_string_node_t;
|
1161
1638
|
|
1162
1639
|
// SuperNode
|
1640
|
+
//
|
1641
|
+
// Type: YP_NODE_SUPER_NODE
|
1163
1642
|
typedef struct yp_super_node {
|
1164
1643
|
yp_node_t base;
|
1165
1644
|
yp_location_t keyword_loc;
|
@@ -1170,6 +1649,8 @@ typedef struct yp_super_node {
|
|
1170
1649
|
} yp_super_node_t;
|
1171
1650
|
|
1172
1651
|
// SymbolNode
|
1652
|
+
//
|
1653
|
+
// Type: YP_NODE_SYMBOL_NODE
|
1173
1654
|
typedef struct yp_symbol_node {
|
1174
1655
|
yp_node_t base;
|
1175
1656
|
yp_location_t opening_loc;
|
@@ -1179,11 +1660,15 @@ typedef struct yp_symbol_node {
|
|
1179
1660
|
} yp_symbol_node_t;
|
1180
1661
|
|
1181
1662
|
// TrueNode
|
1663
|
+
//
|
1664
|
+
// Type: YP_NODE_TRUE_NODE
|
1182
1665
|
typedef struct yp_true_node {
|
1183
1666
|
yp_node_t base;
|
1184
1667
|
} yp_true_node_t;
|
1185
1668
|
|
1186
1669
|
// UndefNode
|
1670
|
+
//
|
1671
|
+
// Type: YP_NODE_UNDEF_NODE
|
1187
1672
|
typedef struct yp_undef_node {
|
1188
1673
|
yp_node_t base;
|
1189
1674
|
struct yp_node_list names;
|
@@ -1191,6 +1676,8 @@ typedef struct yp_undef_node {
|
|
1191
1676
|
} yp_undef_node_t;
|
1192
1677
|
|
1193
1678
|
// UnlessNode
|
1679
|
+
//
|
1680
|
+
// Type: YP_NODE_UNLESS_NODE
|
1194
1681
|
typedef struct yp_unless_node {
|
1195
1682
|
yp_node_t base;
|
1196
1683
|
yp_location_t keyword_loc;
|
@@ -1201,14 +1688,21 @@ typedef struct yp_unless_node {
|
|
1201
1688
|
} yp_unless_node_t;
|
1202
1689
|
|
1203
1690
|
// UntilNode
|
1691
|
+
//
|
1692
|
+
// Type: YP_NODE_UNTIL_NODE
|
1693
|
+
// Flags:
|
1694
|
+
// YP_LOOP_FLAGS_BEGIN_MODIFIER
|
1204
1695
|
typedef struct yp_until_node {
|
1205
1696
|
yp_node_t base;
|
1206
1697
|
yp_location_t keyword_loc;
|
1698
|
+
yp_location_t closing_loc;
|
1207
1699
|
struct yp_node *predicate;
|
1208
1700
|
struct yp_statements_node *statements;
|
1209
1701
|
} yp_until_node_t;
|
1210
1702
|
|
1211
1703
|
// WhenNode
|
1704
|
+
//
|
1705
|
+
// Type: YP_NODE_WHEN_NODE
|
1212
1706
|
typedef struct yp_when_node {
|
1213
1707
|
yp_node_t base;
|
1214
1708
|
yp_location_t keyword_loc;
|
@@ -1217,14 +1711,21 @@ typedef struct yp_when_node {
|
|
1217
1711
|
} yp_when_node_t;
|
1218
1712
|
|
1219
1713
|
// WhileNode
|
1714
|
+
//
|
1715
|
+
// Type: YP_NODE_WHILE_NODE
|
1716
|
+
// Flags:
|
1717
|
+
// YP_LOOP_FLAGS_BEGIN_MODIFIER
|
1220
1718
|
typedef struct yp_while_node {
|
1221
1719
|
yp_node_t base;
|
1222
1720
|
yp_location_t keyword_loc;
|
1721
|
+
yp_location_t closing_loc;
|
1223
1722
|
struct yp_node *predicate;
|
1224
1723
|
struct yp_statements_node *statements;
|
1225
1724
|
} yp_while_node_t;
|
1226
1725
|
|
1227
1726
|
// XStringNode
|
1727
|
+
//
|
1728
|
+
// Type: YP_NODE_X_STRING_NODE
|
1228
1729
|
typedef struct yp_x_string_node {
|
1229
1730
|
yp_node_t base;
|
1230
1731
|
yp_location_t opening_loc;
|
@@ -1234,6 +1735,8 @@ typedef struct yp_x_string_node {
|
|
1234
1735
|
} yp_x_string_node_t;
|
1235
1736
|
|
1236
1737
|
// YieldNode
|
1738
|
+
//
|
1739
|
+
// Type: YP_NODE_YIELD_NODE
|
1237
1740
|
typedef struct yp_yield_node {
|
1238
1741
|
yp_node_t base;
|
1239
1742
|
yp_location_t keyword_loc;
|