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