Ruby 4.0.5p0 (2026-05-20 revision 64336ffd0ee9e1f4c05891695a3d7b49cb709721)
ast.h
1/* :markup: markdown */
2
3/*----------------------------------------------------------------------------*/
4/* This file is generated by the templates/template.rb script and should not */
5/* be modified manually. See */
6/* templates/include/prism/ast.h.erb */
7/* if you are looking to modify the */
8/* template */
9/*----------------------------------------------------------------------------*/
10
13#ifndef PRISM_AST_H
14#define PRISM_AST_H
15
16#include "prism/defines.h"
20
21#include <assert.h>
22#include <stddef.h>
23#include <stdint.h>
24
28typedef enum pm_token_type {
30 PM_TOKEN_EOF = 1,
31
33 PM_TOKEN_BRACE_RIGHT,
34
36 PM_TOKEN_COMMA,
37
39 PM_TOKEN_EMBEXPR_END,
40
42 PM_TOKEN_KEYWORD_DO,
43
45 PM_TOKEN_KEYWORD_ELSE,
46
48 PM_TOKEN_KEYWORD_ELSIF,
49
51 PM_TOKEN_KEYWORD_END,
52
54 PM_TOKEN_KEYWORD_ENSURE,
55
57 PM_TOKEN_KEYWORD_IN,
58
60 PM_TOKEN_KEYWORD_RESCUE,
61
63 PM_TOKEN_KEYWORD_THEN,
64
66 PM_TOKEN_KEYWORD_WHEN,
67
69 PM_TOKEN_NEWLINE,
70
72 PM_TOKEN_PARENTHESIS_RIGHT,
73
75 PM_TOKEN_PIPE,
76
78 PM_TOKEN_SEMICOLON,
79
81 PM_TOKEN_AMPERSAND,
82
84 PM_TOKEN_AMPERSAND_AMPERSAND,
85
87 PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL,
88
90 PM_TOKEN_AMPERSAND_DOT,
91
93 PM_TOKEN_AMPERSAND_EQUAL,
94
96 PM_TOKEN_BACKTICK,
97
99 PM_TOKEN_BACK_REFERENCE,
100
102 PM_TOKEN_BANG,
103
105 PM_TOKEN_BANG_EQUAL,
106
108 PM_TOKEN_BANG_TILDE,
109
111 PM_TOKEN_BRACE_LEFT,
112
114 PM_TOKEN_BRACKET_LEFT,
115
117 PM_TOKEN_BRACKET_LEFT_ARRAY,
118
120 PM_TOKEN_BRACKET_LEFT_RIGHT,
121
123 PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL,
124
126 PM_TOKEN_BRACKET_RIGHT,
127
129 PM_TOKEN_CARET,
130
132 PM_TOKEN_CARET_EQUAL,
133
135 PM_TOKEN_CHARACTER_LITERAL,
136
138 PM_TOKEN_CLASS_VARIABLE,
139
141 PM_TOKEN_COLON,
142
144 PM_TOKEN_COLON_COLON,
145
147 PM_TOKEN_COMMENT,
148
150 PM_TOKEN_CONSTANT,
151
153 PM_TOKEN_DOT,
154
156 PM_TOKEN_DOT_DOT,
157
159 PM_TOKEN_DOT_DOT_DOT,
160
162 PM_TOKEN_EMBDOC_BEGIN,
163
165 PM_TOKEN_EMBDOC_END,
166
168 PM_TOKEN_EMBDOC_LINE,
169
171 PM_TOKEN_EMBEXPR_BEGIN,
172
174 PM_TOKEN_EMBVAR,
175
177 PM_TOKEN_EQUAL,
178
180 PM_TOKEN_EQUAL_EQUAL,
181
183 PM_TOKEN_EQUAL_EQUAL_EQUAL,
184
186 PM_TOKEN_EQUAL_GREATER,
187
189 PM_TOKEN_EQUAL_TILDE,
190
192 PM_TOKEN_FLOAT,
193
195 PM_TOKEN_FLOAT_IMAGINARY,
196
198 PM_TOKEN_FLOAT_RATIONAL,
199
201 PM_TOKEN_FLOAT_RATIONAL_IMAGINARY,
202
204 PM_TOKEN_GLOBAL_VARIABLE,
205
207 PM_TOKEN_GREATER,
208
210 PM_TOKEN_GREATER_EQUAL,
211
213 PM_TOKEN_GREATER_GREATER,
214
216 PM_TOKEN_GREATER_GREATER_EQUAL,
217
219 PM_TOKEN_HEREDOC_END,
220
222 PM_TOKEN_HEREDOC_START,
223
225 PM_TOKEN_IDENTIFIER,
226
228 PM_TOKEN_IGNORED_NEWLINE,
229
231 PM_TOKEN_INSTANCE_VARIABLE,
232
234 PM_TOKEN_INTEGER,
235
237 PM_TOKEN_INTEGER_IMAGINARY,
238
240 PM_TOKEN_INTEGER_RATIONAL,
241
243 PM_TOKEN_INTEGER_RATIONAL_IMAGINARY,
244
246 PM_TOKEN_KEYWORD_ALIAS,
247
249 PM_TOKEN_KEYWORD_AND,
250
252 PM_TOKEN_KEYWORD_BEGIN,
253
255 PM_TOKEN_KEYWORD_BEGIN_UPCASE,
256
258 PM_TOKEN_KEYWORD_BREAK,
259
261 PM_TOKEN_KEYWORD_CASE,
262
264 PM_TOKEN_KEYWORD_CLASS,
265
267 PM_TOKEN_KEYWORD_DEF,
268
270 PM_TOKEN_KEYWORD_DEFINED,
271
273 PM_TOKEN_KEYWORD_DO_LOOP,
274
276 PM_TOKEN_KEYWORD_END_UPCASE,
277
279 PM_TOKEN_KEYWORD_FALSE,
280
282 PM_TOKEN_KEYWORD_FOR,
283
285 PM_TOKEN_KEYWORD_IF,
286
288 PM_TOKEN_KEYWORD_IF_MODIFIER,
289
291 PM_TOKEN_KEYWORD_MODULE,
292
294 PM_TOKEN_KEYWORD_NEXT,
295
297 PM_TOKEN_KEYWORD_NIL,
298
300 PM_TOKEN_KEYWORD_NOT,
301
303 PM_TOKEN_KEYWORD_OR,
304
306 PM_TOKEN_KEYWORD_REDO,
307
309 PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
310
312 PM_TOKEN_KEYWORD_RETRY,
313
315 PM_TOKEN_KEYWORD_RETURN,
316
318 PM_TOKEN_KEYWORD_SELF,
319
321 PM_TOKEN_KEYWORD_SUPER,
322
324 PM_TOKEN_KEYWORD_TRUE,
325
327 PM_TOKEN_KEYWORD_UNDEF,
328
330 PM_TOKEN_KEYWORD_UNLESS,
331
333 PM_TOKEN_KEYWORD_UNLESS_MODIFIER,
334
336 PM_TOKEN_KEYWORD_UNTIL,
337
339 PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
340
342 PM_TOKEN_KEYWORD_WHILE,
343
345 PM_TOKEN_KEYWORD_WHILE_MODIFIER,
346
348 PM_TOKEN_KEYWORD_YIELD,
349
351 PM_TOKEN_KEYWORD___ENCODING__,
352
354 PM_TOKEN_KEYWORD___FILE__,
355
357 PM_TOKEN_KEYWORD___LINE__,
358
360 PM_TOKEN_LABEL,
361
363 PM_TOKEN_LABEL_END,
364
366 PM_TOKEN_LAMBDA_BEGIN,
367
369 PM_TOKEN_LESS,
370
372 PM_TOKEN_LESS_EQUAL,
373
375 PM_TOKEN_LESS_EQUAL_GREATER,
376
378 PM_TOKEN_LESS_LESS,
379
381 PM_TOKEN_LESS_LESS_EQUAL,
382
384 PM_TOKEN_METHOD_NAME,
385
387 PM_TOKEN_MINUS,
388
390 PM_TOKEN_MINUS_EQUAL,
391
393 PM_TOKEN_MINUS_GREATER,
394
396 PM_TOKEN_NUMBERED_REFERENCE,
397
399 PM_TOKEN_PARENTHESIS_LEFT,
400
402 PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
403
405 PM_TOKEN_PERCENT,
406
408 PM_TOKEN_PERCENT_EQUAL,
409
411 PM_TOKEN_PERCENT_LOWER_I,
412
414 PM_TOKEN_PERCENT_LOWER_W,
415
417 PM_TOKEN_PERCENT_LOWER_X,
418
420 PM_TOKEN_PERCENT_UPPER_I,
421
423 PM_TOKEN_PERCENT_UPPER_W,
424
426 PM_TOKEN_PIPE_EQUAL,
427
429 PM_TOKEN_PIPE_PIPE,
430
432 PM_TOKEN_PIPE_PIPE_EQUAL,
433
435 PM_TOKEN_PLUS,
436
438 PM_TOKEN_PLUS_EQUAL,
439
441 PM_TOKEN_QUESTION_MARK,
442
444 PM_TOKEN_REGEXP_BEGIN,
445
447 PM_TOKEN_REGEXP_END,
448
450 PM_TOKEN_SLASH,
451
453 PM_TOKEN_SLASH_EQUAL,
454
456 PM_TOKEN_STAR,
457
459 PM_TOKEN_STAR_EQUAL,
460
462 PM_TOKEN_STAR_STAR,
463
465 PM_TOKEN_STAR_STAR_EQUAL,
466
468 PM_TOKEN_STRING_BEGIN,
469
471 PM_TOKEN_STRING_CONTENT,
472
474 PM_TOKEN_STRING_END,
475
477 PM_TOKEN_SYMBOL_BEGIN,
478
480 PM_TOKEN_TILDE,
481
483 PM_TOKEN_UAMPERSAND,
484
486 PM_TOKEN_UCOLON_COLON,
487
489 PM_TOKEN_UDOT_DOT,
490
492 PM_TOKEN_UDOT_DOT_DOT,
493
495 PM_TOKEN_UMINUS,
496
498 PM_TOKEN_UMINUS_NUM,
499
501 PM_TOKEN_UPLUS,
502
504 PM_TOKEN_USTAR,
505
507 PM_TOKEN_USTAR_STAR,
508
510 PM_TOKEN_WORDS_SEP,
511
513 PM_TOKEN___END__,
514
516 PM_TOKEN_MISSING,
517
519 PM_TOKEN_NOT_PROVIDED,
520
522 PM_TOKEN_MAXIMUM,
523} pm_token_type_t;
524
529typedef struct {
531 pm_token_type_t type;
532
534 const uint8_t *start;
535
537 const uint8_t *end;
538} pm_token_t;
539
544typedef struct {
546 const uint8_t *start;
547
549 const uint8_t *end;
551
552struct pm_node;
553
557typedef struct pm_node_list {
559 size_t size;
560
562 size_t capacity;
563
565 struct pm_node **nodes;
566} pm_node_list_t;
567
571enum pm_node_type {
573 PM_ALIAS_GLOBAL_VARIABLE_NODE = 1,
574
576 PM_ALIAS_METHOD_NODE = 2,
577
579 PM_ALTERNATION_PATTERN_NODE = 3,
580
582 PM_AND_NODE = 4,
583
585 PM_ARGUMENTS_NODE = 5,
586
588 PM_ARRAY_NODE = 6,
589
591 PM_ARRAY_PATTERN_NODE = 7,
592
594 PM_ASSOC_NODE = 8,
595
597 PM_ASSOC_SPLAT_NODE = 9,
598
600 PM_BACK_REFERENCE_READ_NODE = 10,
601
603 PM_BEGIN_NODE = 11,
604
606 PM_BLOCK_ARGUMENT_NODE = 12,
607
609 PM_BLOCK_LOCAL_VARIABLE_NODE = 13,
610
612 PM_BLOCK_NODE = 14,
613
615 PM_BLOCK_PARAMETER_NODE = 15,
616
618 PM_BLOCK_PARAMETERS_NODE = 16,
619
621 PM_BREAK_NODE = 17,
622
624 PM_CALL_AND_WRITE_NODE = 18,
625
627 PM_CALL_NODE = 19,
628
630 PM_CALL_OPERATOR_WRITE_NODE = 20,
631
633 PM_CALL_OR_WRITE_NODE = 21,
634
636 PM_CALL_TARGET_NODE = 22,
637
639 PM_CAPTURE_PATTERN_NODE = 23,
640
642 PM_CASE_MATCH_NODE = 24,
643
645 PM_CASE_NODE = 25,
646
648 PM_CLASS_NODE = 26,
649
651 PM_CLASS_VARIABLE_AND_WRITE_NODE = 27,
652
654 PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 28,
655
657 PM_CLASS_VARIABLE_OR_WRITE_NODE = 29,
658
660 PM_CLASS_VARIABLE_READ_NODE = 30,
661
663 PM_CLASS_VARIABLE_TARGET_NODE = 31,
664
666 PM_CLASS_VARIABLE_WRITE_NODE = 32,
667
669 PM_CONSTANT_AND_WRITE_NODE = 33,
670
672 PM_CONSTANT_OPERATOR_WRITE_NODE = 34,
673
675 PM_CONSTANT_OR_WRITE_NODE = 35,
676
678 PM_CONSTANT_PATH_AND_WRITE_NODE = 36,
679
681 PM_CONSTANT_PATH_NODE = 37,
682
684 PM_CONSTANT_PATH_OPERATOR_WRITE_NODE = 38,
685
687 PM_CONSTANT_PATH_OR_WRITE_NODE = 39,
688
690 PM_CONSTANT_PATH_TARGET_NODE = 40,
691
693 PM_CONSTANT_PATH_WRITE_NODE = 41,
694
696 PM_CONSTANT_READ_NODE = 42,
697
699 PM_CONSTANT_TARGET_NODE = 43,
700
702 PM_CONSTANT_WRITE_NODE = 44,
703
705 PM_DEF_NODE = 45,
706
708 PM_DEFINED_NODE = 46,
709
711 PM_ELSE_NODE = 47,
712
714 PM_EMBEDDED_STATEMENTS_NODE = 48,
715
717 PM_EMBEDDED_VARIABLE_NODE = 49,
718
720 PM_ENSURE_NODE = 50,
721
723 PM_FALSE_NODE = 51,
724
726 PM_FIND_PATTERN_NODE = 52,
727
729 PM_FLIP_FLOP_NODE = 53,
730
732 PM_FLOAT_NODE = 54,
733
735 PM_FOR_NODE = 55,
736
738 PM_FORWARDING_ARGUMENTS_NODE = 56,
739
741 PM_FORWARDING_PARAMETER_NODE = 57,
742
744 PM_FORWARDING_SUPER_NODE = 58,
745
747 PM_GLOBAL_VARIABLE_AND_WRITE_NODE = 59,
748
750 PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 60,
751
753 PM_GLOBAL_VARIABLE_OR_WRITE_NODE = 61,
754
756 PM_GLOBAL_VARIABLE_READ_NODE = 62,
757
759 PM_GLOBAL_VARIABLE_TARGET_NODE = 63,
760
762 PM_GLOBAL_VARIABLE_WRITE_NODE = 64,
763
765 PM_HASH_NODE = 65,
766
768 PM_HASH_PATTERN_NODE = 66,
769
771 PM_IF_NODE = 67,
772
774 PM_IMAGINARY_NODE = 68,
775
777 PM_IMPLICIT_NODE = 69,
778
780 PM_IMPLICIT_REST_NODE = 70,
781
783 PM_IN_NODE = 71,
784
786 PM_INDEX_AND_WRITE_NODE = 72,
787
789 PM_INDEX_OPERATOR_WRITE_NODE = 73,
790
792 PM_INDEX_OR_WRITE_NODE = 74,
793
795 PM_INDEX_TARGET_NODE = 75,
796
798 PM_INSTANCE_VARIABLE_AND_WRITE_NODE = 76,
799
801 PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 77,
802
804 PM_INSTANCE_VARIABLE_OR_WRITE_NODE = 78,
805
807 PM_INSTANCE_VARIABLE_READ_NODE = 79,
808
810 PM_INSTANCE_VARIABLE_TARGET_NODE = 80,
811
813 PM_INSTANCE_VARIABLE_WRITE_NODE = 81,
814
816 PM_INTEGER_NODE = 82,
817
819 PM_INTERPOLATED_MATCH_LAST_LINE_NODE = 83,
820
822 PM_INTERPOLATED_REGULAR_EXPRESSION_NODE = 84,
823
825 PM_INTERPOLATED_STRING_NODE = 85,
826
828 PM_INTERPOLATED_SYMBOL_NODE = 86,
829
831 PM_INTERPOLATED_X_STRING_NODE = 87,
832
834 PM_IT_LOCAL_VARIABLE_READ_NODE = 88,
835
837 PM_IT_PARAMETERS_NODE = 89,
838
840 PM_KEYWORD_HASH_NODE = 90,
841
843 PM_KEYWORD_REST_PARAMETER_NODE = 91,
844
846 PM_LAMBDA_NODE = 92,
847
849 PM_LOCAL_VARIABLE_AND_WRITE_NODE = 93,
850
852 PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 94,
853
855 PM_LOCAL_VARIABLE_OR_WRITE_NODE = 95,
856
858 PM_LOCAL_VARIABLE_READ_NODE = 96,
859
861 PM_LOCAL_VARIABLE_TARGET_NODE = 97,
862
864 PM_LOCAL_VARIABLE_WRITE_NODE = 98,
865
867 PM_MATCH_LAST_LINE_NODE = 99,
868
870 PM_MATCH_PREDICATE_NODE = 100,
871
873 PM_MATCH_REQUIRED_NODE = 101,
874
876 PM_MATCH_WRITE_NODE = 102,
877
879 PM_MISSING_NODE = 103,
880
882 PM_MODULE_NODE = 104,
883
885 PM_MULTI_TARGET_NODE = 105,
886
888 PM_MULTI_WRITE_NODE = 106,
889
891 PM_NEXT_NODE = 107,
892
894 PM_NIL_NODE = 108,
895
897 PM_NO_KEYWORDS_PARAMETER_NODE = 109,
898
900 PM_NUMBERED_PARAMETERS_NODE = 110,
901
903 PM_NUMBERED_REFERENCE_READ_NODE = 111,
904
906 PM_OPTIONAL_KEYWORD_PARAMETER_NODE = 112,
907
909 PM_OPTIONAL_PARAMETER_NODE = 113,
910
912 PM_OR_NODE = 114,
913
915 PM_PARAMETERS_NODE = 115,
916
918 PM_PARENTHESES_NODE = 116,
919
921 PM_PINNED_EXPRESSION_NODE = 117,
922
924 PM_PINNED_VARIABLE_NODE = 118,
925
927 PM_POST_EXECUTION_NODE = 119,
928
930 PM_PRE_EXECUTION_NODE = 120,
931
933 PM_PROGRAM_NODE = 121,
934
936 PM_RANGE_NODE = 122,
937
939 PM_RATIONAL_NODE = 123,
940
942 PM_REDO_NODE = 124,
943
945 PM_REGULAR_EXPRESSION_NODE = 125,
946
948 PM_REQUIRED_KEYWORD_PARAMETER_NODE = 126,
949
951 PM_REQUIRED_PARAMETER_NODE = 127,
952
954 PM_RESCUE_MODIFIER_NODE = 128,
955
957 PM_RESCUE_NODE = 129,
958
960 PM_REST_PARAMETER_NODE = 130,
961
963 PM_RETRY_NODE = 131,
964
966 PM_RETURN_NODE = 132,
967
969 PM_SELF_NODE = 133,
970
972 PM_SHAREABLE_CONSTANT_NODE = 134,
973
975 PM_SINGLETON_CLASS_NODE = 135,
976
978 PM_SOURCE_ENCODING_NODE = 136,
979
981 PM_SOURCE_FILE_NODE = 137,
982
984 PM_SOURCE_LINE_NODE = 138,
985
987 PM_SPLAT_NODE = 139,
988
990 PM_STATEMENTS_NODE = 140,
991
993 PM_STRING_NODE = 141,
994
996 PM_SUPER_NODE = 142,
997
999 PM_SYMBOL_NODE = 143,
1000
1002 PM_TRUE_NODE = 144,
1003
1005 PM_UNDEF_NODE = 145,
1006
1008 PM_UNLESS_NODE = 146,
1009
1011 PM_UNTIL_NODE = 147,
1012
1014 PM_WHEN_NODE = 148,
1015
1017 PM_WHILE_NODE = 149,
1018
1020 PM_X_STRING_NODE = 150,
1021
1023 PM_YIELD_NODE = 151,
1024
1026 PM_SCOPE_NODE
1027};
1028
1033typedef uint16_t pm_node_type_t;
1034
1039typedef uint16_t pm_node_flags_t;
1040
1045static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1046static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1047
1052typedef struct pm_node {
1057 pm_node_type_t type;
1058
1063 pm_node_flags_t flags;
1064
1069 uint32_t node_id;
1070
1076} pm_node_t;
1077
1081#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1082
1087#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1088
1092#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1093
1097#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1098
1102#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1103
1118 pm_node_t base;
1119
1120
1130
1140
1150} pm_alias_global_variable_node_t;
1151
1164typedef struct pm_alias_method_node {
1166 pm_node_t base;
1167
1168
1184
1200
1210} pm_alias_method_node_t;
1211
1226 pm_node_t base;
1227
1228
1237 struct pm_node *left;
1238
1248
1258} pm_alternation_pattern_node_t;
1259
1272typedef struct pm_and_node {
1274 pm_node_t base;
1275
1276
1288 struct pm_node *left;
1289
1302
1312} pm_and_node_t;
1313
1333typedef struct pm_arguments_node {
1335 pm_node_t base;
1336
1337
1347} pm_arguments_node_t;
1348
1364typedef struct pm_array_node {
1366 pm_node_t base;
1367
1368
1375
1387
1399} pm_array_node_t;
1400
1427 pm_node_t base;
1428
1429
1445
1455
1464 struct pm_node *rest;
1465
1475
1485
1495} pm_array_pattern_node_t;
1496
1509typedef struct pm_assoc_node {
1511 pm_node_t base;
1512
1513
1528 struct pm_node *key;
1529
1542
1552} pm_assoc_node_t;
1553
1566typedef struct pm_assoc_splat_node {
1568 pm_node_t base;
1569
1570
1580
1590} pm_assoc_splat_node_t;
1591
1606 pm_node_t base;
1607
1608
1619} pm_back_reference_read_node_t;
1620
1700
1715 pm_node_t base;
1716
1717
1727
1737} pm_block_argument_node_t;
1738
1756 pm_node_t base;
1757
1758
1768} pm_block_local_variable_node_t;
1769
1782typedef struct pm_block_node {
1784 pm_node_t base;
1785
1786
1796
1810
1819 struct pm_node *body;
1820
1830
1840} pm_block_node_t;
1841
1860 pm_node_t base;
1861
1862
1873
1883
1894} pm_block_parameter_node_t;
1895
1914 pm_node_t base;
1915
1916
1930
1944
1958
1972} pm_block_parameters_node_t;
1973
1986typedef struct pm_break_node {
1988 pm_node_t base;
1989
1990
2000
2010} pm_break_node_t;
2011
2105
2245
2349
2443
2470typedef struct pm_call_target_node {
2472 pm_node_t base;
2473
2474
2484
2494
2504
2514} pm_call_target_node_t;
2515
2530 pm_node_t base;
2531
2532
2542
2552
2562} pm_capture_pattern_node_t;
2563
2578typedef struct pm_case_match_node {
2580 pm_node_t base;
2581
2582
2592
2602
2612
2622
2632} pm_case_match_node_t;
2633
2648typedef struct pm_case_node {
2650 pm_node_t base;
2651
2652
2662
2672
2682
2692
2702} pm_case_node_t;
2703
2791
2806 pm_node_t base;
2807
2808
2818
2828
2838
2848} pm_class_variable_and_write_node_t;
2849
2864 pm_node_t base;
2865
2866
2871
2876
2881
2886
2891} pm_class_variable_operator_write_node_t;
2892
2907 pm_node_t base;
2908
2909
2914
2919
2924
2929} pm_class_variable_or_write_node_t;
2930
2945 pm_node_t base;
2946
2947
2958} pm_class_variable_read_node_t;
2959
2974 pm_node_t base;
2975
2976
2981} pm_class_variable_target_node_t;
2982
2997 pm_node_t base;
2998
2999
3010
3020
3033
3043} pm_class_variable_write_node_t;
3044
3059 pm_node_t base;
3060
3061
3066
3071
3076
3081} pm_constant_and_write_node_t;
3082
3097 pm_node_t base;
3098
3099
3104
3109
3114
3119
3124} pm_constant_operator_write_node_t;
3125
3140 pm_node_t base;
3141
3142
3147
3152
3157
3162} pm_constant_or_write_node_t;
3163
3178 pm_node_t base;
3179
3180
3185
3190
3195} pm_constant_path_and_write_node_t;
3196
3211 pm_node_t base;
3212
3213
3229
3236
3249
3262} pm_constant_path_node_t;
3263
3278 pm_node_t base;
3279
3280
3285
3290
3295
3300} pm_constant_path_operator_write_node_t;
3301
3316 pm_node_t base;
3317
3318
3323
3328
3333} pm_constant_path_or_write_node_t;
3334
3349 pm_node_t base;
3350
3351
3356
3361
3366
3371} pm_constant_path_target_node_t;
3372
3393 pm_node_t base;
3394
3395
3408
3418
3428} pm_constant_path_write_node_t;
3429
3444 pm_node_t base;
3445
3446
3457} pm_constant_read_node_t;
3458
3473 pm_node_t base;
3474
3475
3480} pm_constant_target_node_t;
3481
3496 pm_node_t base;
3497
3498
3509
3519
3532
3542} pm_constant_write_node_t;
3543
3622
3635typedef struct pm_defined_node {
3637 pm_node_t base;
3638
3639
3644
3649
3654
3659} pm_defined_node_t;
3660
3673typedef struct pm_else_node {
3675 pm_node_t base;
3676
3677
3682
3687
3692} pm_else_node_t;
3693
3708 pm_node_t base;
3709
3710
3715
3720
3725} pm_embedded_statements_node_t;
3726
3741 pm_node_t base;
3742
3743
3748
3753} pm_embedded_variable_node_t;
3754
3771typedef struct pm_ensure_node {
3773 pm_node_t base;
3774
3775
3780
3785
3790} pm_ensure_node_t;
3791
3804typedef struct pm_false_node {
3806 pm_node_t base;
3807
3808} pm_false_node_t;
3809
3831typedef struct pm_find_pattern_node {
3833 pm_node_t base;
3834
3835
3845
3858
3871
3884
3897
3910} pm_find_pattern_node_t;
3911
3927typedef struct pm_flip_flop_node {
3929 pm_node_t base;
3930
3931
3935 struct pm_node *left;
3936
3941
3946} pm_flip_flop_node_t;
3947
3960typedef struct pm_float_node {
3962 pm_node_t base;
3963
3964
3970 double value;
3971} pm_float_node_t;
3972
4062
4079 pm_node_t base;
4080
4081} pm_forwarding_arguments_node_t;
4082
4098 pm_node_t base;
4099
4100} pm_forwarding_parameter_node_t;
4101
4121 pm_node_t base;
4122
4123
4130} pm_forwarding_super_node_t;
4131
4146 pm_node_t base;
4147
4148
4153
4158
4163
4168} pm_global_variable_and_write_node_t;
4169
4184 pm_node_t base;
4185
4186
4191
4196
4201
4206
4211} pm_global_variable_operator_write_node_t;
4212
4227 pm_node_t base;
4228
4229
4234
4239
4244
4249} pm_global_variable_or_write_node_t;
4250
4265 pm_node_t base;
4266
4267
4278} pm_global_variable_read_node_t;
4279
4294 pm_node_t base;
4295
4296
4301} pm_global_variable_target_node_t;
4302
4317 pm_node_t base;
4318
4319
4330
4340
4353
4363} pm_global_variable_write_node_t;
4364
4377typedef struct pm_hash_node {
4379 pm_node_t base;
4380
4381
4391
4404
4414} pm_hash_node_t;
4415
4437typedef struct pm_hash_pattern_node {
4439 pm_node_t base;
4440
4441
4454
4464
4479 struct pm_node *rest;
4480
4493
4506} pm_hash_pattern_node_t;
4507
4619
4632typedef struct pm_imaginary_node {
4634 pm_node_t base;
4635
4636
4641} pm_imaginary_node_t;
4642
4661typedef struct pm_implicit_node {
4663 pm_node_t base;
4664
4665
4670} pm_implicit_node_t;
4671
4695 pm_node_t base;
4696
4697} pm_implicit_rest_node_t;
4698
4711typedef struct pm_in_node {
4713 pm_node_t base;
4714
4715
4720
4725
4730
4735} pm_in_node_t;
4736
4800
4869
4933
4960typedef struct pm_index_target_node {
4962 pm_node_t base;
4963
4964
4969
4974
4979
4984
4989} pm_index_target_node_t;
4990
5005 pm_node_t base;
5006
5007
5012
5017
5022
5027} pm_instance_variable_and_write_node_t;
5028
5043 pm_node_t base;
5044
5045
5050
5055
5060
5065
5070} pm_instance_variable_operator_write_node_t;
5071
5086 pm_node_t base;
5087
5088
5093
5098
5103
5108} pm_instance_variable_or_write_node_t;
5109
5124 pm_node_t base;
5125
5126
5137} pm_instance_variable_read_node_t;
5138
5153 pm_node_t base;
5154
5155
5160} pm_instance_variable_target_node_t;
5161
5176 pm_node_t base;
5177
5178
5189
5199
5212
5222} pm_instance_variable_write_node_t;
5223
5242typedef struct pm_integer_node {
5244 pm_node_t base;
5245
5246
5253} pm_integer_node_t;
5254
5282 pm_node_t base;
5283
5284
5289
5294
5299} pm_interpolated_match_last_line_node_t;
5300
5328 pm_node_t base;
5329
5330
5335
5340
5345} pm_interpolated_regular_expression_node_t;
5346
5365 pm_node_t base;
5366
5367
5372
5377
5382} pm_interpolated_string_node_t;
5383
5398 pm_node_t base;
5399
5400
5405
5410
5415} pm_interpolated_symbol_node_t;
5416
5431 pm_node_t base;
5432
5433
5438
5443
5448} pm_interpolated_x_string_node_t;
5449
5464 pm_node_t base;
5465
5466} pm_it_local_variable_read_node_t;
5467
5482 pm_node_t base;
5483
5484} pm_it_parameters_node_t;
5485
5501typedef struct pm_keyword_hash_node {
5503 pm_node_t base;
5504
5505
5510} pm_keyword_hash_node_t;
5511
5530 pm_node_t base;
5531
5532
5537
5542
5547} pm_keyword_rest_parameter_node_t;
5548
5596
5611 pm_node_t base;
5612
5613
5618
5623
5628
5633
5637 uint32_t depth;
5638} pm_local_variable_and_write_node_t;
5639
5654 pm_node_t base;
5655
5656
5661
5666
5671
5676
5681
5685 uint32_t depth;
5686} pm_local_variable_operator_write_node_t;
5687
5702 pm_node_t base;
5703
5704
5709
5714
5719
5724
5728 uint32_t depth;
5729} pm_local_variable_or_write_node_t;
5730
5745 pm_node_t base;
5746
5747
5762
5774 uint32_t depth;
5775} pm_local_variable_read_node_t;
5776
5794 pm_node_t base;
5795
5796
5801
5805 uint32_t depth;
5806} pm_local_variable_target_node_t;
5807
5822 pm_node_t base;
5823
5824
5835
5847 uint32_t depth;
5848
5858
5875
5885} pm_local_variable_write_node_t;
5886
5914 pm_node_t base;
5915
5916
5921
5926
5931
5936} pm_match_last_line_node_t;
5937
5952 pm_node_t base;
5953
5954
5959
5964
5969} pm_match_predicate_node_t;
5970
5985 pm_node_t base;
5986
5987
5997
6046
6056} pm_match_required_node_t;
6057
6070typedef struct pm_match_write_node {
6072 pm_node_t base;
6073
6074
6079
6084} pm_match_write_node_t;
6085
6095typedef struct pm_missing_node {
6097 pm_node_t base;
6098
6099} pm_missing_node_t;
6100
6148
6166typedef struct pm_multi_target_node {
6168 pm_node_t base;
6169
6170
6185
6204 struct pm_node *rest;
6205
6215
6225
6235} pm_multi_target_node_t;
6236
6249typedef struct pm_multi_write_node {
6251 pm_node_t base;
6252
6253
6268
6287 struct pm_node *rest;
6288
6298
6308
6318
6328
6338} pm_multi_write_node_t;
6339
6352typedef struct pm_next_node {
6354 pm_node_t base;
6355
6356
6361
6366} pm_next_node_t;
6367
6380typedef struct pm_nil_node {
6382 pm_node_t base;
6383
6384} pm_nil_node_t;
6385
6401 pm_node_t base;
6402
6403
6408
6413} pm_no_keywords_parameter_node_t;
6414
6429 pm_node_t base;
6430
6431
6435 uint8_t maximum;
6436} pm_numbered_parameters_node_t;
6437
6452 pm_node_t base;
6453
6454
6466 uint32_t number;
6467} pm_numbered_reference_read_node_t;
6468
6487 pm_node_t base;
6488
6489
6494
6499
6504} pm_optional_keyword_parameter_node_t;
6505
6524 pm_node_t base;
6525
6526
6531
6536
6541
6546} pm_optional_parameter_node_t;
6547
6560typedef struct pm_or_node {
6562 pm_node_t base;
6563
6564
6576 struct pm_node *left;
6577
6590
6600} pm_or_node_t;
6601
6615typedef struct pm_parameters_node {
6617 pm_node_t base;
6618
6619
6624
6629
6633 struct pm_node *rest;
6634
6639
6644
6649
6654} pm_parameters_node_t;
6655
6671typedef struct pm_parentheses_node {
6673 pm_node_t base;
6674
6675
6679 struct pm_node *body;
6680
6685
6690} pm_parentheses_node_t;
6691
6706 pm_node_t base;
6707
6708
6718
6728
6738
6748} pm_pinned_expression_node_t;
6749
6764 pm_node_t base;
6765
6766
6776
6786} pm_pinned_variable_node_t;
6787
6802 pm_node_t base;
6803
6804
6809
6814
6819
6824} pm_post_execution_node_t;
6825
6840 pm_node_t base;
6841
6842
6847
6852
6857
6862} pm_pre_execution_node_t;
6863
6873typedef struct pm_program_node {
6875 pm_node_t base;
6876
6877
6882
6887} pm_program_node_t;
6888
6907typedef struct pm_range_node {
6909 pm_node_t base;
6910
6911
6923 struct pm_node *left;
6924
6938
6945} pm_range_node_t;
6946
6965typedef struct pm_rational_node {
6967 pm_node_t base;
6968
6969
6978
6987} pm_rational_node_t;
6988
7001typedef struct pm_redo_node {
7003 pm_node_t base;
7004
7005} pm_redo_node_t;
7006
7034 pm_node_t base;
7035
7036
7041
7046
7051
7056} pm_regular_expression_node_t;
7057
7076 pm_node_t base;
7077
7078
7083
7088} pm_required_keyword_parameter_node_t;
7089
7108 pm_node_t base;
7109
7110
7115} pm_required_parameter_node_t;
7116
7131 pm_node_t base;
7132
7133
7138
7143
7148} pm_rescue_modifier_node_t;
7149
7207
7226 pm_node_t base;
7227
7228
7233
7238
7243} pm_rest_parameter_node_t;
7244
7257typedef struct pm_retry_node {
7259 pm_node_t base;
7260
7261} pm_retry_node_t;
7262
7275typedef struct pm_return_node {
7277 pm_node_t base;
7278
7279
7284
7289} pm_return_node_t;
7290
7303typedef struct pm_self_node {
7305 pm_node_t base;
7306
7307} pm_self_node_t;
7308
7329 pm_node_t base;
7330
7331
7338} pm_shareable_constant_node_t;
7339
7387
7402 pm_node_t base;
7403
7404} pm_source_encoding_node_t;
7405
7424typedef struct pm_source_file_node {
7426 pm_node_t base;
7427
7428
7435} pm_source_file_node_t;
7436
7449typedef struct pm_source_line_node {
7451 pm_node_t base;
7452
7453} pm_source_line_node_t;
7454
7467typedef struct pm_splat_node {
7469 pm_node_t base;
7470
7471
7476
7481} pm_splat_node_t;
7482
7495typedef struct pm_statements_node {
7497 pm_node_t base;
7498
7499
7504} pm_statements_node_t;
7505
7555
7573typedef struct pm_super_node {
7575 pm_node_t base;
7576
7577
7582
7587
7594
7599
7604} pm_super_node_t;
7605
7651
7664typedef struct pm_true_node {
7666 pm_node_t base;
7667
7668} pm_true_node_t;
7669
7682typedef struct pm_undef_node {
7684 pm_node_t base;
7685
7686
7691
7696} pm_undef_node_t;
7697
7785
7804typedef struct pm_until_node {
7806 pm_node_t base;
7807
7808
7813
7818
7823
7828
7833} pm_until_node_t;
7834
7849typedef struct pm_when_node {
7851 pm_node_t base;
7852
7853
7858
7863
7868
7873} pm_when_node_t;
7874
7893typedef struct pm_while_node {
7895 pm_node_t base;
7896
7897
7902
7907
7912
7917
7922} pm_while_node_t;
7923
7965
7978typedef struct pm_yield_node {
7980 pm_node_t base;
7981
7982
7987
7992
7997
8002} pm_yield_node_t;
8003
8007typedef enum pm_arguments_node_flags {
8009 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING = 4,
8010
8012 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS = 8,
8013
8015 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT = 16,
8016
8018 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT = 32,
8019
8021 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
8022
8023 PM_ARGUMENTS_NODE_FLAGS_LAST,
8024} pm_arguments_node_flags_t;
8025
8029typedef enum pm_array_node_flags {
8031 PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
8032
8033 PM_ARRAY_NODE_FLAGS_LAST,
8034} pm_array_node_flags_t;
8035
8039typedef enum pm_call_node_flags {
8041 PM_CALL_NODE_FLAGS_SAFE_NAVIGATION = 4,
8042
8044 PM_CALL_NODE_FLAGS_VARIABLE_CALL = 8,
8045
8047 PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 16,
8048
8050 PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
8051
8052 PM_CALL_NODE_FLAGS_LAST,
8053} pm_call_node_flags_t;
8054
8058typedef enum pm_encoding_flags {
8060 PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING = 4,
8061
8063 PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
8064
8065 PM_ENCODING_FLAGS_LAST,
8066} pm_encoding_flags_t;
8067
8071typedef enum pm_integer_base_flags {
8073 PM_INTEGER_BASE_FLAGS_BINARY = 4,
8074
8076 PM_INTEGER_BASE_FLAGS_DECIMAL = 8,
8077
8079 PM_INTEGER_BASE_FLAGS_OCTAL = 16,
8080
8082 PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
8083
8084 PM_INTEGER_BASE_FLAGS_LAST,
8085} pm_integer_base_flags_t;
8086
8090typedef enum pm_interpolated_string_node_flags {
8092 PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN = 4,
8093
8095 PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
8096
8097 PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
8098} pm_interpolated_string_node_flags_t;
8099
8103typedef enum pm_keyword_hash_node_flags {
8105 PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
8106
8107 PM_KEYWORD_HASH_NODE_FLAGS_LAST,
8108} pm_keyword_hash_node_flags_t;
8109
8113typedef enum pm_loop_flags {
8115 PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8116
8117 PM_LOOP_FLAGS_LAST,
8118} pm_loop_flags_t;
8119
8123typedef enum pm_parameter_flags {
8125 PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8126
8127 PM_PARAMETER_FLAGS_LAST,
8128} pm_parameter_flags_t;
8129
8133typedef enum pm_parentheses_node_flags {
8135 PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8136
8137 PM_PARENTHESES_NODE_FLAGS_LAST,
8138} pm_parentheses_node_flags_t;
8139
8143typedef enum pm_range_flags {
8145 PM_RANGE_FLAGS_EXCLUDE_END = 4,
8146
8147 PM_RANGE_FLAGS_LAST,
8148} pm_range_flags_t;
8149
8153typedef enum pm_regular_expression_flags {
8155 PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 4,
8156
8158 PM_REGULAR_EXPRESSION_FLAGS_EXTENDED = 8,
8159
8161 PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 16,
8162
8164 PM_REGULAR_EXPRESSION_FLAGS_ONCE = 32,
8165
8167 PM_REGULAR_EXPRESSION_FLAGS_EUC_JP = 64,
8168
8170 PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 128,
8171
8173 PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 256,
8174
8176 PM_REGULAR_EXPRESSION_FLAGS_UTF_8 = 512,
8177
8179 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING = 1024,
8180
8182 PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING = 2048,
8183
8185 PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8186
8187 PM_REGULAR_EXPRESSION_FLAGS_LAST,
8188} pm_regular_expression_flags_t;
8189
8193typedef enum pm_shareable_constant_node_flags {
8195 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL = 4,
8196
8198 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING = 8,
8199
8201 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8202
8203 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
8204} pm_shareable_constant_node_flags_t;
8205
8209typedef enum pm_string_flags {
8211 PM_STRING_FLAGS_FORCED_UTF8_ENCODING = 4,
8212
8214 PM_STRING_FLAGS_FORCED_BINARY_ENCODING = 8,
8215
8217 PM_STRING_FLAGS_FROZEN = 16,
8218
8220 PM_STRING_FLAGS_MUTABLE = 32,
8221
8222 PM_STRING_FLAGS_LAST,
8223} pm_string_flags_t;
8224
8228typedef enum pm_symbol_flags {
8230 PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING = 4,
8231
8233 PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING = 8,
8234
8236 PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
8237
8238 PM_SYMBOL_FLAGS_LAST,
8239} pm_symbol_flags_t;
8240
8247#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
8248
8249#endif
A data structure that stores a set of strings.
uint32_t pm_constant_id_t
A constant id is a unique identifier for a constant in the constant pool.
This module provides functions for working with arbitrary-sized integers.
A generic string type that can have various ownership semantics.
Macro definitions used throughout the prism library.
AliasGlobalVariableNode.
Definition ast.h:1116
struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1139
pm_node_t base
The embedded base node.
Definition ast.h:1118
struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1129
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1149
AliasMethodNode.
Definition ast.h:1164
struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1199
struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1183
pm_node_t base
The embedded base node.
Definition ast.h:1166
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1209
AlternationPatternNode.
Definition ast.h:1224
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1257
struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1237
struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1247
pm_node_t base
The embedded base node.
Definition ast.h:1226
AndNode.
Definition ast.h:1272
struct pm_node * left
AndNode::left.
Definition ast.h:1288
struct pm_node * right
AndNode::right.
Definition ast.h:1301
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1311
pm_node_t base
The embedded base node.
Definition ast.h:1274
ArgumentsNode.
Definition ast.h:1333
pm_node_t base
The embedded base node.
Definition ast.h:1335
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1346
ArrayNode.
Definition ast.h:1364
pm_node_t base
The embedded base node.
Definition ast.h:1366
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1398
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1374
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1386
ArrayPatternNode.
Definition ast.h:1425
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1454
struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1464
struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1444
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1484
pm_node_t base
The embedded base node.
Definition ast.h:1427
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1494
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1474
AssocNode.
Definition ast.h:1509
pm_node_t base
The embedded base node.
Definition ast.h:1511
struct pm_node * value
AssocNode::value.
Definition ast.h:1541
struct pm_node * key
AssocNode::key.
Definition ast.h:1528
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1551
AssocSplatNode.
Definition ast.h:1566
struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1579
pm_node_t base
The embedded base node.
Definition ast.h:1568
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1589
BackReferenceReadNode.
Definition ast.h:1604
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1618
pm_node_t base
The embedded base node.
Definition ast.h:1606
BeginNode.
Definition ast.h:1635
struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1688
struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1668
struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1658
pm_node_t base
The embedded base node.
Definition ast.h:1637
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1698
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1648
struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1678
BlockArgumentNode.
Definition ast.h:1713
pm_node_t base
The embedded base node.
Definition ast.h:1715
struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1726
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1736
BlockLocalVariableNode.
Definition ast.h:1754
pm_node_t base
The embedded base node.
Definition ast.h:1756
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1767
BlockNode.
Definition ast.h:1782
pm_node_t base
The embedded base node.
Definition ast.h:1784
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1839
struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1809
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1829
struct pm_node * body
BlockNode::body.
Definition ast.h:1819
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1795
BlockParameterNode.
Definition ast.h:1858
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1893
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1882
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1872
pm_node_t base
The embedded base node.
Definition ast.h:1860
BlockParametersNode.
Definition ast.h:1912
struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1929
pm_node_t base
The embedded base node.
Definition ast.h:1914
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1943
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1971
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1957
BreakNode.
Definition ast.h:1986
struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:1999
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2009
pm_node_t base
The embedded base node.
Definition ast.h:1988
CallAndWriteNode.
Definition ast.h:2030
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2093
struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2103
pm_node_t base
The embedded base node.
Definition ast.h:2032
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2053
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2063
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2073
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2083
struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2043
CallNode.
Definition ast.h:2139
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2200
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2220
struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2158
pm_constant_id_t name
CallNode::name.
Definition ast.h:2181
pm_node_t base
The embedded base node.
Definition ast.h:2141
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2233
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2171
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2191
struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2210
struct pm_node * block
CallNode::block.
Definition ast.h:2243
CallOperatorWriteNode.
Definition ast.h:2264
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2307
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2327
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2337
struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2277
pm_node_t base
The embedded base node.
Definition ast.h:2266
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2317
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2297
struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2347
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2287
CallOrWriteNode.
Definition ast.h:2368
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2431
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2391
pm_node_t base
The embedded base node.
Definition ast.h:2370
struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2381
struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2441
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2421
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2411
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2401
CallTargetNode.
Definition ast.h:2470
pm_node_t base
The embedded base node.
Definition ast.h:2472
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2503
struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2483
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2493
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2513
CapturePatternNode.
Definition ast.h:2528
struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2551
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2561
struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2541
pm_node_t base
The embedded base node.
Definition ast.h:2530
CaseMatchNode.
Definition ast.h:2578
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2631
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2601
pm_node_t base
The embedded base node.
Definition ast.h:2580
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2621
struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2611
struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2591
CaseNode.
Definition ast.h:2648
struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2661
struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2681
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2671
pm_node_t base
The embedded base node.
Definition ast.h:2650
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2691
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2701
ClassNode.
Definition ast.h:2716
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2734
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2780
struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2739
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2724
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2749
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2789
pm_node_t base
The embedded base node.
Definition ast.h:2718
struct pm_node * body
ClassNode::body.
Definition ast.h:2770
struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2759
ClassVariableAndWriteNode.
Definition ast.h:2804
struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2847
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2817
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2837
pm_node_t base
The embedded base node.
Definition ast.h:2806
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2827
ClassVariableOperatorWriteNode.
Definition ast.h:2862
pm_node_t base
The embedded base node.
Definition ast.h:2864
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2870
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2875
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2890
struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2885
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2880
ClassVariableOrWriteNode.
Definition ast.h:2905
pm_node_t base
The embedded base node.
Definition ast.h:2907
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2918
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2923
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2913
struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2928
ClassVariableReadNode.
Definition ast.h:2943
pm_node_t base
The embedded base node.
Definition ast.h:2945
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2957
ClassVariableTargetNode.
Definition ast.h:2972
pm_node_t base
The embedded base node.
Definition ast.h:2974
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2980
ClassVariableWriteNode.
Definition ast.h:2995
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:3019
pm_node_t base
The embedded base node.
Definition ast.h:2997
struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3032
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3042
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:3009
ConstantAndWriteNode.
Definition ast.h:3057
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3075
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3070
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3065
struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3080
pm_node_t base
The embedded base node.
Definition ast.h:3059
A list of constant IDs.
ConstantOperatorWriteNode.
Definition ast.h:3095
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3103
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3108
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3123
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3113
struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3118
pm_node_t base
The embedded base node.
Definition ast.h:3097
ConstantOrWriteNode.
Definition ast.h:3138
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3156
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3151
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3146
pm_node_t base
The embedded base node.
Definition ast.h:3140
struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3161
ConstantPathAndWriteNode.
Definition ast.h:3176
pm_node_t base
The embedded base node.
Definition ast.h:3178
struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3184
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3189
struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3194
ConstantPathNode.
Definition ast.h:3209
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3248
pm_node_t base
The embedded base node.
Definition ast.h:3211
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3261
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3235
struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3228
ConstantPathOperatorWriteNode.
Definition ast.h:3276
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3284
struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3294
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3299
pm_node_t base
The embedded base node.
Definition ast.h:3278
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3289
ConstantPathOrWriteNode.
Definition ast.h:3314
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3327
pm_node_t base
The embedded base node.
Definition ast.h:3316
struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3332
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3322
ConstantPathTargetNode.
Definition ast.h:3347
pm_node_t base
The embedded base node.
Definition ast.h:3349
struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3355
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3365
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3360
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3370
ConstantPathWriteNode.
Definition ast.h:3391
struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3407
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3417
pm_node_t base
The embedded base node.
Definition ast.h:3393
struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3427
ConstantReadNode.
Definition ast.h:3442
pm_node_t base
The embedded base node.
Definition ast.h:3444
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3456
ConstantTargetNode.
Definition ast.h:3471
pm_node_t base
The embedded base node.
Definition ast.h:3473
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3479
ConstantWriteNode.
Definition ast.h:3494
pm_node_t base
The embedded base node.
Definition ast.h:3496
struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3531
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3508
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3518
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3541
DefNode.
Definition ast.h:3557
struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3580
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3620
pm_constant_id_t name
DefNode::name.
Definition ast.h:3565
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3570
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3610
struct pm_node * body
DefNode::body.
Definition ast.h:3585
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3615
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3595
struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3575
pm_node_t base
The embedded base node.
Definition ast.h:3559
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3605
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3600
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3590
DefinedNode.
Definition ast.h:3635
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3643
pm_node_t base
The embedded base node.
Definition ast.h:3637
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3653
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3658
struct pm_node * value
DefinedNode::value.
Definition ast.h:3648
ElseNode.
Definition ast.h:3673
struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3686
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3681
pm_node_t base
The embedded base node.
Definition ast.h:3675
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3691
EmbeddedStatementsNode.
Definition ast.h:3706
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3724
struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3719
pm_node_t base
The embedded base node.
Definition ast.h:3708
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3714
EmbeddedVariableNode.
Definition ast.h:3739
struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3752
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3747
pm_node_t base
The embedded base node.
Definition ast.h:3741
EnsureNode.
Definition ast.h:3771
struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3784
pm_node_t base
The embedded base node.
Definition ast.h:3773
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3779
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3789
FalseNode.
Definition ast.h:3804
pm_node_t base
The embedded base node.
Definition ast.h:3806
FindPatternNode.
Definition ast.h:3831
struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3844
struct pm_node * right
FindPatternNode::right.
Definition ast.h:3883
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3896
pm_node_t base
The embedded base node.
Definition ast.h:3833
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3870
struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3857
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3909
FlipFlopNode.
Definition ast.h:3927
pm_node_t base
The embedded base node.
Definition ast.h:3929
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3945
struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3935
struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3940
FloatNode.
Definition ast.h:3960
double value
FloatNode::value.
Definition ast.h:3970
pm_node_t base
The embedded base node.
Definition ast.h:3962
ForNode.
Definition ast.h:3985
struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:4020
struct pm_node * index
ForNode::index.
Definition ast.h:3998
struct pm_node * collection
ForNode::collection.
Definition ast.h:4008
pm_node_t base
The embedded base node.
Definition ast.h:3987
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4060
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4030
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4050
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4040
ForwardingArgumentsNode.
Definition ast.h:4077
pm_node_t base
The embedded base node.
Definition ast.h:4079
ForwardingParameterNode.
Definition ast.h:4096
pm_node_t base
The embedded base node.
Definition ast.h:4098
ForwardingSuperNode.
Definition ast.h:4119
pm_node_t base
The embedded base node.
Definition ast.h:4121
struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4129
GlobalVariableAndWriteNode.
Definition ast.h:4144
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4162
pm_node_t base
The embedded base node.
Definition ast.h:4146
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4157
struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4167
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4152
GlobalVariableOperatorWriteNode.
Definition ast.h:4182
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4190
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4210
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4205
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4195
pm_node_t base
The embedded base node.
Definition ast.h:4184
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4200
GlobalVariableOrWriteNode.
Definition ast.h:4225
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4233
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4238
pm_node_t base
The embedded base node.
Definition ast.h:4227
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4243
struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4248
GlobalVariableReadNode.
Definition ast.h:4263
pm_node_t base
The embedded base node.
Definition ast.h:4265
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4277
GlobalVariableTargetNode.
Definition ast.h:4292
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4300
pm_node_t base
The embedded base node.
Definition ast.h:4294
GlobalVariableWriteNode.
Definition ast.h:4315
struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4352
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4339
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4362
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4329
pm_node_t base
The embedded base node.
Definition ast.h:4317
HashNode.
Definition ast.h:4377
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4403
pm_node_t base
The embedded base node.
Definition ast.h:4379
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4413
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4390
HashPatternNode.
Definition ast.h:4437
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4463
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4492
pm_node_t base
The embedded base node.
Definition ast.h:4439
struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4479
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4505
struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4453
IfNode.
Definition ast.h:4526
struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4559
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4617
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4541
struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4586
pm_node_t base
The embedded base node.
Definition ast.h:4528
struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4605
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4572
ImaginaryNode.
Definition ast.h:4632
struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4640
pm_node_t base
The embedded base node.
Definition ast.h:4634
ImplicitNode.
Definition ast.h:4661
struct pm_node * value
ImplicitNode::value.
Definition ast.h:4669
pm_node_t base
The embedded base node.
Definition ast.h:4663
ImplicitRestNode.
Definition ast.h:4693
pm_node_t base
The embedded base node.
Definition ast.h:4695
InNode.
Definition ast.h:4711
struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4724
struct pm_node * pattern
InNode::pattern.
Definition ast.h:4719
pm_node_t base
The embedded base node.
Definition ast.h:4713
pm_location_t then_loc
InNode::then_loc.
Definition ast.h:4734
pm_location_t in_loc
InNode::in_loc.
Definition ast.h:4729
IndexAndWriteNode.
Definition ast.h:4755
struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4778
struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4763
pm_node_t base
The embedded base node.
Definition ast.h:4757
struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4788
struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4798
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4793
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4783
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4773
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4768
IndexOperatorWriteNode.
Definition ast.h:4819
pm_node_t base
The embedded base node.
Definition ast.h:4821
struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4852
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4862
struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4867
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4837
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4832
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4847
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4842
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4857
struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4827
IndexOrWriteNode.
Definition ast.h:4888
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4916
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4901
pm_node_t base
The embedded base node.
Definition ast.h:4890
struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4921
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4926
struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4896
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4906
struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4931
struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4911
IndexTargetNode.
Definition ast.h:4960
pm_node_t base
The embedded base node.
Definition ast.h:4962
struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4968
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4983
struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4978
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4973
struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4988
InstanceVariableAndWriteNode.
Definition ast.h:5003
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:5021
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:5016
struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:5026
pm_node_t base
The embedded base node.
Definition ast.h:5005
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:5011
InstanceVariableOperatorWriteNode.
Definition ast.h:5041
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5064
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5069
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5059
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5049
pm_node_t base
The embedded base node.
Definition ast.h:5043
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5054
InstanceVariableOrWriteNode.
Definition ast.h:5084
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5102
struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5107
pm_node_t base
The embedded base node.
Definition ast.h:5086
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5097
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5092
InstanceVariableReadNode.
Definition ast.h:5122
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5136
pm_node_t base
The embedded base node.
Definition ast.h:5124
InstanceVariableTargetNode.
Definition ast.h:5151
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5159
pm_node_t base
The embedded base node.
Definition ast.h:5153
InstanceVariableWriteNode.
Definition ast.h:5174
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5221
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5188
pm_node_t base
The embedded base node.
Definition ast.h:5176
struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5211
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5198
IntegerNode.
Definition ast.h:5242
pm_integer_t value
IntegerNode::value.
Definition ast.h:5252
pm_node_t base
The embedded base node.
Definition ast.h:5244
A structure represents an arbitrary-sized integer.
Definition pm_integer.h:20
InterpolatedMatchLastLineNode.
Definition ast.h:5280
pm_node_t base
The embedded base node.
Definition ast.h:5282
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5298
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5293
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5288
InterpolatedRegularExpressionNode.
Definition ast.h:5326
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5334
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5339
pm_node_t base
The embedded base node.
Definition ast.h:5328
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5344
InterpolatedStringNode.
Definition ast.h:5363
pm_node_t base
The embedded base node.
Definition ast.h:5365
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5381
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5371
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5376
InterpolatedSymbolNode.
Definition ast.h:5396
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5409
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5414
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5404
pm_node_t base
The embedded base node.
Definition ast.h:5398
InterpolatedXStringNode.
Definition ast.h:5429
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5437
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5447
pm_node_t base
The embedded base node.
Definition ast.h:5431
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5442
ItLocalVariableReadNode.
Definition ast.h:5462
pm_node_t base
The embedded base node.
Definition ast.h:5464
ItParametersNode.
Definition ast.h:5480
pm_node_t base
The embedded base node.
Definition ast.h:5482
KeywordHashNode.
Definition ast.h:5501
pm_node_t base
The embedded base node.
Definition ast.h:5503
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5509
KeywordRestParameterNode.
Definition ast.h:5528
pm_node_t base
The embedded base node.
Definition ast.h:5530
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5536
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5546
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5541
LambdaNode.
Definition ast.h:5561
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5584
pm_node_t base
The embedded base node.
Definition ast.h:5563
struct pm_node * body
LambdaNode::body.
Definition ast.h:5594
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5579
struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5589
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5574
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5569
LocalVariableAndWriteNode.
Definition ast.h:5609
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5632
pm_node_t base
The embedded base node.
Definition ast.h:5611
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5637
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5622
struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5627
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5617
LocalVariableOperatorWriteNode.
Definition ast.h:5652
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5685
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5680
pm_node_t base
The embedded base node.
Definition ast.h:5654
struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5670
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5660
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5665
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5675
LocalVariableOrWriteNode.
Definition ast.h:5700
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5728
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5713
struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5718
pm_node_t base
The embedded base node.
Definition ast.h:5702
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5723
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5708
LocalVariableReadNode.
Definition ast.h:5743
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5774
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5761
pm_node_t base
The embedded base node.
Definition ast.h:5745
LocalVariableTargetNode.
Definition ast.h:5792
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5805
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5800
pm_node_t base
The embedded base node.
Definition ast.h:5794
LocalVariableWriteNode.
Definition ast.h:5820
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5884
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5857
pm_node_t base
The embedded base node.
Definition ast.h:5822
struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5874
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5847
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5834
This represents a range of bytes in the source string to which a node or token corresponds.
Definition ast.h:544
const uint8_t * start
A pointer to the start location of the range in the source.
Definition ast.h:546
const uint8_t * end
A pointer to the end location of the range in the source.
Definition ast.h:549
MatchLastLineNode.
Definition ast.h:5912
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5925
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5920
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5930
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5935
pm_node_t base
The embedded base node.
Definition ast.h:5914
MatchPredicateNode.
Definition ast.h:5950
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition ast.h:5968
struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5963
struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5958
pm_node_t base
The embedded base node.
Definition ast.h:5952
MatchRequiredNode.
Definition ast.h:5983
pm_node_t base
The embedded base node.
Definition ast.h:5985
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6055
struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5996
struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:6045
MatchWriteNode.
Definition ast.h:6070
pm_node_t base
The embedded base node.
Definition ast.h:6072
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6083
struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6078
MissingNode.
Definition ast.h:6095
pm_node_t base
The embedded base node.
Definition ast.h:6097
ModuleNode.
Definition ast.h:6113
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6141
struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6131
struct pm_node * body
ModuleNode::body.
Definition ast.h:6136
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6121
pm_node_t base
The embedded base node.
Definition ast.h:6115
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6126
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6146
MultiTargetNode.
Definition ast.h:6166
pm_node_t base
The embedded base node.
Definition ast.h:6168
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6224
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6184
struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6204
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6234
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6214
MultiWriteNode.
Definition ast.h:6249
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6317
struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6337
struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6287
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6297
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6327
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6307
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6267
pm_node_t base
The embedded base node.
Definition ast.h:6251
NextNode.
Definition ast.h:6352
struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6360
pm_node_t base
The embedded base node.
Definition ast.h:6354
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6365
NilNode.
Definition ast.h:6380
pm_node_t base
The embedded base node.
Definition ast.h:6382
NoKeywordsParameterNode.
Definition ast.h:6399
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6412
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6407
pm_node_t base
The embedded base node.
Definition ast.h:6401
A list of nodes in the source, most often used for lists of children.
Definition ast.h:557
size_t size
The number of nodes in the list.
Definition ast.h:559
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:565
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:562
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1052
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1057
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1069
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1063
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1075
NumberedParametersNode.
Definition ast.h:6427
pm_node_t base
The embedded base node.
Definition ast.h:6429
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6435
NumberedReferenceReadNode.
Definition ast.h:6450
pm_node_t base
The embedded base node.
Definition ast.h:6452
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6466
OptionalKeywordParameterNode.
Definition ast.h:6485
pm_node_t base
The embedded base node.
Definition ast.h:6487
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6493
struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6503
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6498
OptionalParameterNode.
Definition ast.h:6522
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6535
struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6545
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6530
pm_node_t base
The embedded base node.
Definition ast.h:6524
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6540
OrNode.
Definition ast.h:6560
struct pm_node * left
OrNode::left.
Definition ast.h:6576
struct pm_node * right
OrNode::right.
Definition ast.h:6589
pm_node_t base
The embedded base node.
Definition ast.h:6562
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6599
ParametersNode.
Definition ast.h:6615
struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6633
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6623
struct pm_block_parameter_node * block
ParametersNode::block.
Definition ast.h:6653
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6628
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6638
pm_node_t base
The embedded base node.
Definition ast.h:6617
struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6648
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6643
ParenthesesNode.
Definition ast.h:6671
struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6679
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6689
pm_node_t base
The embedded base node.
Definition ast.h:6673
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6684
PinnedExpressionNode.
Definition ast.h:6704
pm_node_t base
The embedded base node.
Definition ast.h:6706
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6747
struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6717
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6737
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6727
PinnedVariableNode.
Definition ast.h:6762
struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6775
pm_node_t base
The embedded base node.
Definition ast.h:6764
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6785
PostExecutionNode.
Definition ast.h:6800
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6823
struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6808
pm_node_t base
The embedded base node.
Definition ast.h:6802
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6818
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6813
PreExecutionNode.
Definition ast.h:6838
struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6846
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6861
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6856
pm_node_t base
The embedded base node.
Definition ast.h:6840
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6851
ProgramNode.
Definition ast.h:6873
struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6886
pm_node_t base
The embedded base node.
Definition ast.h:6875
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6881
RangeNode.
Definition ast.h:6907
struct pm_node * right
RangeNode::right.
Definition ast.h:6937
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6944
pm_node_t base
The embedded base node.
Definition ast.h:6909
struct pm_node * left
RangeNode::left.
Definition ast.h:6923
RationalNode.
Definition ast.h:6965
pm_node_t base
The embedded base node.
Definition ast.h:6967
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6986
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6977
RedoNode.
Definition ast.h:7001
pm_node_t base
The embedded base node.
Definition ast.h:7003
RegularExpressionNode.
Definition ast.h:7032
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:7050
pm_node_t base
The embedded base node.
Definition ast.h:7034
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:7055
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:7040
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:7045
RequiredKeywordParameterNode.
Definition ast.h:7074
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7087
pm_node_t base
The embedded base node.
Definition ast.h:7076
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7082
RequiredParameterNode.
Definition ast.h:7106
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7114
pm_node_t base
The embedded base node.
Definition ast.h:7108
RescueModifierNode.
Definition ast.h:7129
pm_node_t base
The embedded base node.
Definition ast.h:7131
struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7147
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7142
struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7137
RescueNode.
Definition ast.h:7167
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7175
struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7205
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7195
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7185
struct pm_node * reference
RescueNode::reference.
Definition ast.h:7190
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7180
struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7200
pm_node_t base
The embedded base node.
Definition ast.h:7169
RestParameterNode.
Definition ast.h:7224
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7232
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7237
pm_node_t base
The embedded base node.
Definition ast.h:7226
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7242
RetryNode.
Definition ast.h:7257
pm_node_t base
The embedded base node.
Definition ast.h:7259
ReturnNode.
Definition ast.h:7275
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7283
pm_node_t base
The embedded base node.
Definition ast.h:7277
struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7288
SelfNode.
Definition ast.h:7303
pm_node_t base
The embedded base node.
Definition ast.h:7305
ShareableConstantNode.
Definition ast.h:7327
struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7337
pm_node_t base
The embedded base node.
Definition ast.h:7329
SingletonClassNode.
Definition ast.h:7352
pm_node_t base
The embedded base node.
Definition ast.h:7354
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7360
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7370
struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7375
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7385
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7365
struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7380
SourceEncodingNode.
Definition ast.h:7400
pm_node_t base
The embedded base node.
Definition ast.h:7402
SourceFileNode.
Definition ast.h:7424
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7434
pm_node_t base
The embedded base node.
Definition ast.h:7426
SourceLineNode.
Definition ast.h:7449
pm_node_t base
The embedded base node.
Definition ast.h:7451
SplatNode.
Definition ast.h:7467
struct pm_node * expression
SplatNode::expression.
Definition ast.h:7480
pm_node_t base
The embedded base node.
Definition ast.h:7469
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7475
StatementsNode.
Definition ast.h:7495
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7503
pm_node_t base
The embedded base node.
Definition ast.h:7497
StringNode.
Definition ast.h:7530
pm_node_t base
The embedded base node.
Definition ast.h:7532
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7553
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7543
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7548
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7538
A generic string type that can have various ownership semantics.
Definition pm_string.h:33
SuperNode.
Definition ast.h:7573
struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7593
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7586
pm_node_t base
The embedded base node.
Definition ast.h:7575
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7581
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7598
struct pm_node * block
SuperNode::block.
Definition ast.h:7603
SymbolNode.
Definition ast.h:7626
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7634
pm_location_t value_loc
SymbolNode::value_loc.
Definition ast.h:7639
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7644
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7649
pm_node_t base
The embedded base node.
Definition ast.h:7628
This struct represents a token in the Ruby source.
Definition ast.h:529
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:537
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:534
pm_token_type_t type
The type of the token.
Definition ast.h:531
TrueNode.
Definition ast.h:7664
pm_node_t base
The embedded base node.
Definition ast.h:7666
UndefNode.
Definition ast.h:7682
pm_node_t base
The embedded base node.
Definition ast.h:7684
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7695
struct pm_node_list names
UndefNode::names.
Definition ast.h:7690
UnlessNode.
Definition ast.h:7713
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition ast.h:7729
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7752
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7783
pm_node_t base
The embedded base node.
Definition ast.h:7715
struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7763
struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7742
struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7773
UntilNode.
Definition ast.h:7804
struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7832
pm_location_t closing_loc
UntilNode::closing_loc.
Definition ast.h:7822
struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7827
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition ast.h:7812
pm_node_t base
The embedded base node.
Definition ast.h:7806
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7817
WhenNode.
Definition ast.h:7849
struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7872
pm_node_t base
The embedded base node.
Definition ast.h:7851
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7867
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition ast.h:7857
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7862
WhileNode.
Definition ast.h:7893
pm_location_t closing_loc
WhileNode::closing_loc.
Definition ast.h:7911
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition ast.h:7901
struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7921
pm_node_t base
The embedded base node.
Definition ast.h:7895
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7906
struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7916
XStringNode.
Definition ast.h:7940
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7958
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7948
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7953
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7963
pm_node_t base
The embedded base node.
Definition ast.h:7942
YieldNode.
Definition ast.h:7978
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7986
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7991
pm_node_t base
The embedded base node.
Definition ast.h:7980
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:8001
struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7996