Ruby 3.4.7p58 (2025-10-08 revision 7a5688e2a27668e48f8d6ff4af5b2208b98a2f5e)
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_SEMICOLON,
76
78 PM_TOKEN_AMPERSAND,
79
81 PM_TOKEN_AMPERSAND_AMPERSAND,
82
84 PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL,
85
87 PM_TOKEN_AMPERSAND_DOT,
88
90 PM_TOKEN_AMPERSAND_EQUAL,
91
93 PM_TOKEN_BACKTICK,
94
96 PM_TOKEN_BACK_REFERENCE,
97
99 PM_TOKEN_BANG,
100
102 PM_TOKEN_BANG_EQUAL,
103
105 PM_TOKEN_BANG_TILDE,
106
108 PM_TOKEN_BRACE_LEFT,
109
111 PM_TOKEN_BRACKET_LEFT,
112
114 PM_TOKEN_BRACKET_LEFT_ARRAY,
115
117 PM_TOKEN_BRACKET_LEFT_RIGHT,
118
120 PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL,
121
123 PM_TOKEN_BRACKET_RIGHT,
124
126 PM_TOKEN_CARET,
127
129 PM_TOKEN_CARET_EQUAL,
130
132 PM_TOKEN_CHARACTER_LITERAL,
133
135 PM_TOKEN_CLASS_VARIABLE,
136
138 PM_TOKEN_COLON,
139
141 PM_TOKEN_COLON_COLON,
142
144 PM_TOKEN_COMMENT,
145
147 PM_TOKEN_CONSTANT,
148
150 PM_TOKEN_DOT,
151
153 PM_TOKEN_DOT_DOT,
154
156 PM_TOKEN_DOT_DOT_DOT,
157
159 PM_TOKEN_EMBDOC_BEGIN,
160
162 PM_TOKEN_EMBDOC_END,
163
165 PM_TOKEN_EMBDOC_LINE,
166
168 PM_TOKEN_EMBEXPR_BEGIN,
169
171 PM_TOKEN_EMBVAR,
172
174 PM_TOKEN_EQUAL,
175
177 PM_TOKEN_EQUAL_EQUAL,
178
180 PM_TOKEN_EQUAL_EQUAL_EQUAL,
181
183 PM_TOKEN_EQUAL_GREATER,
184
186 PM_TOKEN_EQUAL_TILDE,
187
189 PM_TOKEN_FLOAT,
190
192 PM_TOKEN_FLOAT_IMAGINARY,
193
195 PM_TOKEN_FLOAT_RATIONAL,
196
198 PM_TOKEN_FLOAT_RATIONAL_IMAGINARY,
199
201 PM_TOKEN_GLOBAL_VARIABLE,
202
204 PM_TOKEN_GREATER,
205
207 PM_TOKEN_GREATER_EQUAL,
208
210 PM_TOKEN_GREATER_GREATER,
211
213 PM_TOKEN_GREATER_GREATER_EQUAL,
214
216 PM_TOKEN_HEREDOC_END,
217
219 PM_TOKEN_HEREDOC_START,
220
222 PM_TOKEN_IDENTIFIER,
223
225 PM_TOKEN_IGNORED_NEWLINE,
226
228 PM_TOKEN_INSTANCE_VARIABLE,
229
231 PM_TOKEN_INTEGER,
232
234 PM_TOKEN_INTEGER_IMAGINARY,
235
237 PM_TOKEN_INTEGER_RATIONAL,
238
240 PM_TOKEN_INTEGER_RATIONAL_IMAGINARY,
241
243 PM_TOKEN_KEYWORD_ALIAS,
244
246 PM_TOKEN_KEYWORD_AND,
247
249 PM_TOKEN_KEYWORD_BEGIN,
250
252 PM_TOKEN_KEYWORD_BEGIN_UPCASE,
253
255 PM_TOKEN_KEYWORD_BREAK,
256
258 PM_TOKEN_KEYWORD_CASE,
259
261 PM_TOKEN_KEYWORD_CLASS,
262
264 PM_TOKEN_KEYWORD_DEF,
265
267 PM_TOKEN_KEYWORD_DEFINED,
268
270 PM_TOKEN_KEYWORD_DO_LOOP,
271
273 PM_TOKEN_KEYWORD_END_UPCASE,
274
276 PM_TOKEN_KEYWORD_FALSE,
277
279 PM_TOKEN_KEYWORD_FOR,
280
282 PM_TOKEN_KEYWORD_IF,
283
285 PM_TOKEN_KEYWORD_IF_MODIFIER,
286
288 PM_TOKEN_KEYWORD_MODULE,
289
291 PM_TOKEN_KEYWORD_NEXT,
292
294 PM_TOKEN_KEYWORD_NIL,
295
297 PM_TOKEN_KEYWORD_NOT,
298
300 PM_TOKEN_KEYWORD_OR,
301
303 PM_TOKEN_KEYWORD_REDO,
304
306 PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
307
309 PM_TOKEN_KEYWORD_RETRY,
310
312 PM_TOKEN_KEYWORD_RETURN,
313
315 PM_TOKEN_KEYWORD_SELF,
316
318 PM_TOKEN_KEYWORD_SUPER,
319
321 PM_TOKEN_KEYWORD_TRUE,
322
324 PM_TOKEN_KEYWORD_UNDEF,
325
327 PM_TOKEN_KEYWORD_UNLESS,
328
330 PM_TOKEN_KEYWORD_UNLESS_MODIFIER,
331
333 PM_TOKEN_KEYWORD_UNTIL,
334
336 PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
337
339 PM_TOKEN_KEYWORD_WHILE,
340
342 PM_TOKEN_KEYWORD_WHILE_MODIFIER,
343
345 PM_TOKEN_KEYWORD_YIELD,
346
348 PM_TOKEN_KEYWORD___ENCODING__,
349
351 PM_TOKEN_KEYWORD___FILE__,
352
354 PM_TOKEN_KEYWORD___LINE__,
355
357 PM_TOKEN_LABEL,
358
360 PM_TOKEN_LABEL_END,
361
363 PM_TOKEN_LAMBDA_BEGIN,
364
366 PM_TOKEN_LESS,
367
369 PM_TOKEN_LESS_EQUAL,
370
372 PM_TOKEN_LESS_EQUAL_GREATER,
373
375 PM_TOKEN_LESS_LESS,
376
378 PM_TOKEN_LESS_LESS_EQUAL,
379
381 PM_TOKEN_METHOD_NAME,
382
384 PM_TOKEN_MINUS,
385
387 PM_TOKEN_MINUS_EQUAL,
388
390 PM_TOKEN_MINUS_GREATER,
391
393 PM_TOKEN_NUMBERED_REFERENCE,
394
396 PM_TOKEN_PARENTHESIS_LEFT,
397
399 PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
400
402 PM_TOKEN_PERCENT,
403
405 PM_TOKEN_PERCENT_EQUAL,
406
408 PM_TOKEN_PERCENT_LOWER_I,
409
411 PM_TOKEN_PERCENT_LOWER_W,
412
414 PM_TOKEN_PERCENT_LOWER_X,
415
417 PM_TOKEN_PERCENT_UPPER_I,
418
420 PM_TOKEN_PERCENT_UPPER_W,
421
423 PM_TOKEN_PIPE,
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
1052#define PM_NODE_TYPE(node) ((enum pm_node_type) (node)->type)
1053
1057#define PM_NODE_TYPE_P(node, type) (PM_NODE_TYPE(node) == (type))
1058
1062#define PM_NODE_FLAG_P(node, flag) ((((pm_node_t *)(node))->flags & (flag)) != 0)
1063
1068typedef struct pm_node {
1073 pm_node_type_t type;
1074
1079 pm_node_flags_t flags;
1080
1085 uint32_t node_id;
1086
1092} pm_node_t;
1093
1108 pm_node_t base;
1109
1110
1120
1130
1140} pm_alias_global_variable_node_t;
1141
1154typedef struct pm_alias_method_node {
1156 pm_node_t base;
1157
1158
1174
1190
1200} pm_alias_method_node_t;
1201
1216 pm_node_t base;
1217
1218
1227 struct pm_node *left;
1228
1238
1248} pm_alternation_pattern_node_t;
1249
1262typedef struct pm_and_node {
1264 pm_node_t base;
1265
1266
1278 struct pm_node *left;
1279
1292
1302} pm_and_node_t;
1303
1323typedef struct pm_arguments_node {
1325 pm_node_t base;
1326
1327
1337} pm_arguments_node_t;
1338
1354typedef struct pm_array_node {
1356 pm_node_t base;
1357
1358
1365
1377
1389} pm_array_node_t;
1390
1417 pm_node_t base;
1418
1419
1435
1445
1454 struct pm_node *rest;
1455
1465
1475
1485} pm_array_pattern_node_t;
1486
1499typedef struct pm_assoc_node {
1501 pm_node_t base;
1502
1503
1518 struct pm_node *key;
1519
1532
1542} pm_assoc_node_t;
1543
1556typedef struct pm_assoc_splat_node {
1558 pm_node_t base;
1559
1560
1570
1580} pm_assoc_splat_node_t;
1581
1596 pm_node_t base;
1597
1598
1609} pm_back_reference_read_node_t;
1610
1690
1705 pm_node_t base;
1706
1707
1717
1727} pm_block_argument_node_t;
1728
1746 pm_node_t base;
1747
1748
1758} pm_block_local_variable_node_t;
1759
1772typedef struct pm_block_node {
1774 pm_node_t base;
1775
1776
1786
1800
1809 struct pm_node *body;
1810
1820
1830} pm_block_node_t;
1831
1850 pm_node_t base;
1851
1852
1863
1873
1884} pm_block_parameter_node_t;
1885
1904 pm_node_t base;
1905
1906
1920
1934
1948
1962} pm_block_parameters_node_t;
1963
1976typedef struct pm_break_node {
1978 pm_node_t base;
1979
1980
1990
2000} pm_break_node_t;
2001
2095
2222
2326
2420
2447typedef struct pm_call_target_node {
2449 pm_node_t base;
2450
2451
2461
2471
2481
2491} pm_call_target_node_t;
2492
2507 pm_node_t base;
2508
2509
2519
2529
2539} pm_capture_pattern_node_t;
2540
2555typedef struct pm_case_match_node {
2557 pm_node_t base;
2558
2559
2569
2579
2589
2599
2609} pm_case_match_node_t;
2610
2625typedef struct pm_case_node {
2627 pm_node_t base;
2628
2629
2639
2649
2659
2669
2679} pm_case_node_t;
2680
2768
2783 pm_node_t base;
2784
2785
2795
2805
2815
2825} pm_class_variable_and_write_node_t;
2826
2841 pm_node_t base;
2842
2843
2848
2853
2858
2863
2868} pm_class_variable_operator_write_node_t;
2869
2884 pm_node_t base;
2885
2886
2891
2896
2901
2906} pm_class_variable_or_write_node_t;
2907
2922 pm_node_t base;
2923
2924
2935} pm_class_variable_read_node_t;
2936
2951 pm_node_t base;
2952
2953
2958} pm_class_variable_target_node_t;
2959
2974 pm_node_t base;
2975
2976
2987
2997
3010
3020} pm_class_variable_write_node_t;
3021
3036 pm_node_t base;
3037
3038
3043
3048
3053
3058} pm_constant_and_write_node_t;
3059
3074 pm_node_t base;
3075
3076
3081
3086
3091
3096
3101} pm_constant_operator_write_node_t;
3102
3117 pm_node_t base;
3118
3119
3124
3129
3134
3139} pm_constant_or_write_node_t;
3140
3155 pm_node_t base;
3156
3157
3162
3167
3172} pm_constant_path_and_write_node_t;
3173
3188 pm_node_t base;
3189
3190
3206
3213
3226
3239} pm_constant_path_node_t;
3240
3255 pm_node_t base;
3256
3257
3262
3267
3272
3277} pm_constant_path_operator_write_node_t;
3278
3293 pm_node_t base;
3294
3295
3300
3305
3310} pm_constant_path_or_write_node_t;
3311
3326 pm_node_t base;
3327
3328
3333
3338
3343
3348} pm_constant_path_target_node_t;
3349
3370 pm_node_t base;
3371
3372
3385
3395
3405} pm_constant_path_write_node_t;
3406
3421 pm_node_t base;
3422
3423
3434} pm_constant_read_node_t;
3435
3450 pm_node_t base;
3451
3452
3457} pm_constant_target_node_t;
3458
3473 pm_node_t base;
3474
3475
3486
3496
3509
3519} pm_constant_write_node_t;
3520
3599
3612typedef struct pm_defined_node {
3614 pm_node_t base;
3615
3616
3621
3626
3631
3636} pm_defined_node_t;
3637
3650typedef struct pm_else_node {
3652 pm_node_t base;
3653
3654
3659
3664
3669} pm_else_node_t;
3670
3685 pm_node_t base;
3686
3687
3692
3697
3702} pm_embedded_statements_node_t;
3703
3718 pm_node_t base;
3719
3720
3725
3730} pm_embedded_variable_node_t;
3731
3748typedef struct pm_ensure_node {
3750 pm_node_t base;
3751
3752
3757
3762
3767} pm_ensure_node_t;
3768
3781typedef struct pm_false_node {
3783 pm_node_t base;
3784
3785} pm_false_node_t;
3786
3808typedef struct pm_find_pattern_node {
3810 pm_node_t base;
3811
3812
3822
3835
3848
3861
3874
3887} pm_find_pattern_node_t;
3888
3904typedef struct pm_flip_flop_node {
3906 pm_node_t base;
3907
3908
3912 struct pm_node *left;
3913
3918
3923} pm_flip_flop_node_t;
3924
3937typedef struct pm_float_node {
3939 pm_node_t base;
3940
3941
3947 double value;
3948} pm_float_node_t;
3949
4039
4056 pm_node_t base;
4057
4058} pm_forwarding_arguments_node_t;
4059
4075 pm_node_t base;
4076
4077} pm_forwarding_parameter_node_t;
4078
4093 pm_node_t base;
4094
4095
4100} pm_forwarding_super_node_t;
4101
4116 pm_node_t base;
4117
4118
4123
4128
4133
4138} pm_global_variable_and_write_node_t;
4139
4154 pm_node_t base;
4155
4156
4161
4166
4171
4176
4181} pm_global_variable_operator_write_node_t;
4182
4197 pm_node_t base;
4198
4199
4204
4209
4214
4219} pm_global_variable_or_write_node_t;
4220
4235 pm_node_t base;
4236
4237
4248} pm_global_variable_read_node_t;
4249
4264 pm_node_t base;
4265
4266
4271} pm_global_variable_target_node_t;
4272
4287 pm_node_t base;
4288
4289
4300
4310
4323
4333} pm_global_variable_write_node_t;
4334
4347typedef struct pm_hash_node {
4349 pm_node_t base;
4350
4351
4361
4374
4384} pm_hash_node_t;
4385
4407typedef struct pm_hash_pattern_node {
4409 pm_node_t base;
4410
4411
4424
4434
4449 struct pm_node *rest;
4450
4463
4476} pm_hash_pattern_node_t;
4477
4589
4602typedef struct pm_imaginary_node {
4604 pm_node_t base;
4605
4606
4611} pm_imaginary_node_t;
4612
4631typedef struct pm_implicit_node {
4633 pm_node_t base;
4634
4635
4640} pm_implicit_node_t;
4641
4665 pm_node_t base;
4666
4667} pm_implicit_rest_node_t;
4668
4681typedef struct pm_in_node {
4683 pm_node_t base;
4684
4685
4690
4695
4700
4705} pm_in_node_t;
4706
4770
4839
4903
4930typedef struct pm_index_target_node {
4932 pm_node_t base;
4933
4934
4939
4944
4949
4954
4959} pm_index_target_node_t;
4960
4975 pm_node_t base;
4976
4977
4982
4987
4992
4997} pm_instance_variable_and_write_node_t;
4998
5013 pm_node_t base;
5014
5015
5020
5025
5030
5035
5040} pm_instance_variable_operator_write_node_t;
5041
5056 pm_node_t base;
5057
5058
5063
5068
5073
5078} pm_instance_variable_or_write_node_t;
5079
5094 pm_node_t base;
5095
5096
5107} pm_instance_variable_read_node_t;
5108
5123 pm_node_t base;
5124
5125
5130} pm_instance_variable_target_node_t;
5131
5146 pm_node_t base;
5147
5148
5159
5169
5182
5192} pm_instance_variable_write_node_t;
5193
5212typedef struct pm_integer_node {
5214 pm_node_t base;
5215
5216
5223} pm_integer_node_t;
5224
5252 pm_node_t base;
5253
5254
5259
5264
5269} pm_interpolated_match_last_line_node_t;
5270
5298 pm_node_t base;
5299
5300
5305
5310
5315} pm_interpolated_regular_expression_node_t;
5316
5335 pm_node_t base;
5336
5337
5342
5347
5352} pm_interpolated_string_node_t;
5353
5368 pm_node_t base;
5369
5370
5375
5380
5385} pm_interpolated_symbol_node_t;
5386
5401 pm_node_t base;
5402
5403
5408
5413
5418} pm_interpolated_x_string_node_t;
5419
5434 pm_node_t base;
5435
5436} pm_it_local_variable_read_node_t;
5437
5452 pm_node_t base;
5453
5454} pm_it_parameters_node_t;
5455
5471typedef struct pm_keyword_hash_node {
5473 pm_node_t base;
5474
5475
5480} pm_keyword_hash_node_t;
5481
5500 pm_node_t base;
5501
5502
5507
5512
5517} pm_keyword_rest_parameter_node_t;
5518
5566
5581 pm_node_t base;
5582
5583
5588
5593
5598
5603
5607 uint32_t depth;
5608} pm_local_variable_and_write_node_t;
5609
5624 pm_node_t base;
5625
5626
5631
5636
5641
5646
5651
5655 uint32_t depth;
5656} pm_local_variable_operator_write_node_t;
5657
5672 pm_node_t base;
5673
5674
5679
5684
5689
5694
5698 uint32_t depth;
5699} pm_local_variable_or_write_node_t;
5700
5715 pm_node_t base;
5716
5717
5732
5744 uint32_t depth;
5745} pm_local_variable_read_node_t;
5746
5764 pm_node_t base;
5765
5766
5771
5775 uint32_t depth;
5776} pm_local_variable_target_node_t;
5777
5792 pm_node_t base;
5793
5794
5805
5817 uint32_t depth;
5818
5828
5845
5855} pm_local_variable_write_node_t;
5856
5884 pm_node_t base;
5885
5886
5891
5896
5901
5906} pm_match_last_line_node_t;
5907
5922 pm_node_t base;
5923
5924
5929
5934
5939} pm_match_predicate_node_t;
5940
5955 pm_node_t base;
5956
5957
5967
6016
6026} pm_match_required_node_t;
6027
6040typedef struct pm_match_write_node {
6042 pm_node_t base;
6043
6044
6049
6054} pm_match_write_node_t;
6055
6065typedef struct pm_missing_node {
6067 pm_node_t base;
6068
6069} pm_missing_node_t;
6070
6118
6136typedef struct pm_multi_target_node {
6138 pm_node_t base;
6139
6140
6155
6174 struct pm_node *rest;
6175
6185
6195
6205} pm_multi_target_node_t;
6206
6219typedef struct pm_multi_write_node {
6221 pm_node_t base;
6222
6223
6238
6257 struct pm_node *rest;
6258
6268
6278
6288
6298
6308} pm_multi_write_node_t;
6309
6322typedef struct pm_next_node {
6324 pm_node_t base;
6325
6326
6331
6336} pm_next_node_t;
6337
6350typedef struct pm_nil_node {
6352 pm_node_t base;
6353
6354} pm_nil_node_t;
6355
6371 pm_node_t base;
6372
6373
6378
6383} pm_no_keywords_parameter_node_t;
6384
6399 pm_node_t base;
6400
6401
6405 uint8_t maximum;
6406} pm_numbered_parameters_node_t;
6407
6422 pm_node_t base;
6423
6424
6436 uint32_t number;
6437} pm_numbered_reference_read_node_t;
6438
6457 pm_node_t base;
6458
6459
6464
6469
6474} pm_optional_keyword_parameter_node_t;
6475
6494 pm_node_t base;
6495
6496
6501
6506
6511
6516} pm_optional_parameter_node_t;
6517
6530typedef struct pm_or_node {
6532 pm_node_t base;
6533
6534
6546 struct pm_node *left;
6547
6560
6570} pm_or_node_t;
6571
6585typedef struct pm_parameters_node {
6587 pm_node_t base;
6588
6589
6594
6599
6603 struct pm_node *rest;
6604
6609
6614
6619
6624} pm_parameters_node_t;
6625
6641typedef struct pm_parentheses_node {
6643 pm_node_t base;
6644
6645
6649 struct pm_node *body;
6650
6655
6660} pm_parentheses_node_t;
6661
6676 pm_node_t base;
6677
6678
6688
6698
6708
6718} pm_pinned_expression_node_t;
6719
6734 pm_node_t base;
6735
6736
6746
6756} pm_pinned_variable_node_t;
6757
6772 pm_node_t base;
6773
6774
6779
6784
6789
6794} pm_post_execution_node_t;
6795
6810 pm_node_t base;
6811
6812
6817
6822
6827
6832} pm_pre_execution_node_t;
6833
6843typedef struct pm_program_node {
6845 pm_node_t base;
6846
6847
6852
6857} pm_program_node_t;
6858
6877typedef struct pm_range_node {
6879 pm_node_t base;
6880
6881
6893 struct pm_node *left;
6894
6908
6915} pm_range_node_t;
6916
6935typedef struct pm_rational_node {
6937 pm_node_t base;
6938
6939
6948
6957} pm_rational_node_t;
6958
6971typedef struct pm_redo_node {
6973 pm_node_t base;
6974
6975} pm_redo_node_t;
6976
7004 pm_node_t base;
7005
7006
7011
7016
7021
7026} pm_regular_expression_node_t;
7027
7046 pm_node_t base;
7047
7048
7053
7058} pm_required_keyword_parameter_node_t;
7059
7078 pm_node_t base;
7079
7080
7085} pm_required_parameter_node_t;
7086
7101 pm_node_t base;
7102
7103
7108
7113
7118} pm_rescue_modifier_node_t;
7119
7177
7196 pm_node_t base;
7197
7198
7203
7208
7213} pm_rest_parameter_node_t;
7214
7227typedef struct pm_retry_node {
7229 pm_node_t base;
7230
7231} pm_retry_node_t;
7232
7245typedef struct pm_return_node {
7247 pm_node_t base;
7248
7249
7254
7259} pm_return_node_t;
7260
7273typedef struct pm_self_node {
7275 pm_node_t base;
7276
7277} pm_self_node_t;
7278
7299 pm_node_t base;
7300
7301
7308} pm_shareable_constant_node_t;
7309
7357
7372 pm_node_t base;
7373
7374} pm_source_encoding_node_t;
7375
7394typedef struct pm_source_file_node {
7396 pm_node_t base;
7397
7398
7405} pm_source_file_node_t;
7406
7419typedef struct pm_source_line_node {
7421 pm_node_t base;
7422
7423} pm_source_line_node_t;
7424
7437typedef struct pm_splat_node {
7439 pm_node_t base;
7440
7441
7446
7451} pm_splat_node_t;
7452
7465typedef struct pm_statements_node {
7467 pm_node_t base;
7468
7469
7474} pm_statements_node_t;
7475
7525
7541typedef struct pm_super_node {
7543 pm_node_t base;
7544
7545
7550
7555
7560
7565
7570} pm_super_node_t;
7571
7617
7630typedef struct pm_true_node {
7632 pm_node_t base;
7633
7634} pm_true_node_t;
7635
7648typedef struct pm_undef_node {
7650 pm_node_t base;
7651
7652
7657
7662} pm_undef_node_t;
7663
7751
7770typedef struct pm_until_node {
7772 pm_node_t base;
7773
7774
7779
7784
7789
7794
7799} pm_until_node_t;
7800
7815typedef struct pm_when_node {
7817 pm_node_t base;
7818
7819
7824
7829
7834
7839} pm_when_node_t;
7840
7859typedef struct pm_while_node {
7861 pm_node_t base;
7862
7863
7868
7873
7878
7883
7888} pm_while_node_t;
7889
7931
7944typedef struct pm_yield_node {
7946 pm_node_t base;
7947
7948
7953
7958
7963
7968} pm_yield_node_t;
7969
7973typedef enum pm_arguments_node_flags {
7975 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING = 4,
7976
7978 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS = 8,
7979
7981 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT = 16,
7982
7984 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT = 32,
7985
7987 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
7988} pm_arguments_node_flags_t;
7989
7993typedef enum pm_array_node_flags {
7995 PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
7996} pm_array_node_flags_t;
7997
8001typedef enum pm_call_node_flags {
8003 PM_CALL_NODE_FLAGS_SAFE_NAVIGATION = 4,
8004
8006 PM_CALL_NODE_FLAGS_VARIABLE_CALL = 8,
8007
8009 PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 16,
8010
8012 PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
8013} pm_call_node_flags_t;
8014
8018typedef enum pm_encoding_flags {
8020 PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING = 4,
8021
8023 PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
8024} pm_encoding_flags_t;
8025
8029typedef enum pm_integer_base_flags {
8031 PM_INTEGER_BASE_FLAGS_BINARY = 4,
8032
8034 PM_INTEGER_BASE_FLAGS_DECIMAL = 8,
8035
8037 PM_INTEGER_BASE_FLAGS_OCTAL = 16,
8038
8040 PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
8041} pm_integer_base_flags_t;
8042
8046typedef enum pm_interpolated_string_node_flags {
8048 PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN = 4,
8049
8051 PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
8052} pm_interpolated_string_node_flags_t;
8053
8057typedef enum pm_keyword_hash_node_flags {
8059 PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
8060} pm_keyword_hash_node_flags_t;
8061
8065typedef enum pm_loop_flags {
8067 PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8068} pm_loop_flags_t;
8069
8073typedef enum pm_parameter_flags {
8075 PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8076} pm_parameter_flags_t;
8077
8081typedef enum pm_parentheses_node_flags {
8083 PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8084} pm_parentheses_node_flags_t;
8085
8089typedef enum pm_range_flags {
8091 PM_RANGE_FLAGS_EXCLUDE_END = 4,
8092} pm_range_flags_t;
8093
8097typedef enum pm_regular_expression_flags {
8099 PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 4,
8100
8102 PM_REGULAR_EXPRESSION_FLAGS_EXTENDED = 8,
8103
8105 PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 16,
8106
8108 PM_REGULAR_EXPRESSION_FLAGS_ONCE = 32,
8109
8111 PM_REGULAR_EXPRESSION_FLAGS_EUC_JP = 64,
8112
8114 PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 128,
8115
8117 PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 256,
8118
8120 PM_REGULAR_EXPRESSION_FLAGS_UTF_8 = 512,
8121
8123 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING = 1024,
8124
8126 PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING = 2048,
8127
8129 PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8130} pm_regular_expression_flags_t;
8131
8135typedef enum pm_shareable_constant_node_flags {
8137 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL = 4,
8138
8140 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING = 8,
8141
8143 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8144} pm_shareable_constant_node_flags_t;
8145
8149typedef enum pm_string_flags {
8151 PM_STRING_FLAGS_FORCED_UTF8_ENCODING = 4,
8152
8154 PM_STRING_FLAGS_FORCED_BINARY_ENCODING = 8,
8155
8157 PM_STRING_FLAGS_FROZEN = 16,
8158
8160 PM_STRING_FLAGS_MUTABLE = 32,
8161} pm_string_flags_t;
8162
8166typedef enum pm_symbol_flags {
8168 PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING = 4,
8169
8171 PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING = 8,
8172
8174 PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
8175} pm_symbol_flags_t;
8176
8183#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
8184
8185#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:1106
struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1129
pm_node_t base
The embedded base node.
Definition ast.h:1108
struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1119
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1139
AliasMethodNode.
Definition ast.h:1154
struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1189
struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1173
pm_node_t base
The embedded base node.
Definition ast.h:1156
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1199
AlternationPatternNode.
Definition ast.h:1214
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1247
struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1227
struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1237
pm_node_t base
The embedded base node.
Definition ast.h:1216
AndNode.
Definition ast.h:1262
struct pm_node * left
AndNode::left.
Definition ast.h:1278
struct pm_node * right
AndNode::right.
Definition ast.h:1291
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1301
pm_node_t base
The embedded base node.
Definition ast.h:1264
ArgumentsNode.
Definition ast.h:1323
pm_node_t base
The embedded base node.
Definition ast.h:1325
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1336
ArrayNode.
Definition ast.h:1354
pm_node_t base
The embedded base node.
Definition ast.h:1356
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1388
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1364
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1376
ArrayPatternNode.
Definition ast.h:1415
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1444
struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1454
struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1434
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1474
pm_node_t base
The embedded base node.
Definition ast.h:1417
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1484
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1464
AssocNode.
Definition ast.h:1499
pm_node_t base
The embedded base node.
Definition ast.h:1501
struct pm_node * value
AssocNode::value.
Definition ast.h:1531
struct pm_node * key
AssocNode::key.
Definition ast.h:1518
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1541
AssocSplatNode.
Definition ast.h:1556
struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1569
pm_node_t base
The embedded base node.
Definition ast.h:1558
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1579
BackReferenceReadNode.
Definition ast.h:1594
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1608
pm_node_t base
The embedded base node.
Definition ast.h:1596
BeginNode.
Definition ast.h:1625
struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1678
struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1658
struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1648
pm_node_t base
The embedded base node.
Definition ast.h:1627
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1688
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1638
struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1668
BlockArgumentNode.
Definition ast.h:1703
pm_node_t base
The embedded base node.
Definition ast.h:1705
struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1716
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1726
BlockLocalVariableNode.
Definition ast.h:1744
pm_node_t base
The embedded base node.
Definition ast.h:1746
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1757
BlockNode.
Definition ast.h:1772
pm_node_t base
The embedded base node.
Definition ast.h:1774
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1829
struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1799
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1819
struct pm_node * body
BlockNode::body.
Definition ast.h:1809
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1785
BlockParameterNode.
Definition ast.h:1848
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1883
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1872
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1862
pm_node_t base
The embedded base node.
Definition ast.h:1850
BlockParametersNode.
Definition ast.h:1902
struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1919
pm_node_t base
The embedded base node.
Definition ast.h:1904
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1933
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1961
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1947
BreakNode.
Definition ast.h:1976
struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:1989
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:1999
pm_node_t base
The embedded base node.
Definition ast.h:1978
CallAndWriteNode.
Definition ast.h:2020
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2083
struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2093
pm_node_t base
The embedded base node.
Definition ast.h:2022
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2043
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2053
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2063
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2073
struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2033
CallNode.
Definition ast.h:2129
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2190
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2210
struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2148
pm_constant_id_t name
CallNode::name.
Definition ast.h:2171
pm_node_t base
The embedded base node.
Definition ast.h:2131
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2161
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2181
struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2200
struct pm_node * block
CallNode::block.
Definition ast.h:2220
CallOperatorWriteNode.
Definition ast.h:2241
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2284
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2304
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2314
struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2254
pm_node_t base
The embedded base node.
Definition ast.h:2243
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2294
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2274
struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2324
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2264
CallOrWriteNode.
Definition ast.h:2345
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2408
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2368
pm_node_t base
The embedded base node.
Definition ast.h:2347
struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2358
struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2418
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2398
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2388
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2378
CallTargetNode.
Definition ast.h:2447
pm_node_t base
The embedded base node.
Definition ast.h:2449
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2480
struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2460
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2470
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2490
CapturePatternNode.
Definition ast.h:2505
struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2528
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2538
struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2518
pm_node_t base
The embedded base node.
Definition ast.h:2507
CaseMatchNode.
Definition ast.h:2555
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2608
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2578
pm_node_t base
The embedded base node.
Definition ast.h:2557
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2598
struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2588
struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2568
CaseNode.
Definition ast.h:2625
struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2638
struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2658
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2648
pm_node_t base
The embedded base node.
Definition ast.h:2627
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2668
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2678
ClassNode.
Definition ast.h:2693
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2711
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2757
struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2716
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2701
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2726
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2766
pm_node_t base
The embedded base node.
Definition ast.h:2695
struct pm_node * body
ClassNode::body.
Definition ast.h:2747
struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2736
ClassVariableAndWriteNode.
Definition ast.h:2781
struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2824
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2794
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2814
pm_node_t base
The embedded base node.
Definition ast.h:2783
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2804
ClassVariableOperatorWriteNode.
Definition ast.h:2839
pm_node_t base
The embedded base node.
Definition ast.h:2841
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2847
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2852
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2867
struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2862
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2857
ClassVariableOrWriteNode.
Definition ast.h:2882
pm_node_t base
The embedded base node.
Definition ast.h:2884
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2895
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2900
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2890
struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2905
ClassVariableReadNode.
Definition ast.h:2920
pm_node_t base
The embedded base node.
Definition ast.h:2922
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2934
ClassVariableTargetNode.
Definition ast.h:2949
pm_node_t base
The embedded base node.
Definition ast.h:2951
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2957
ClassVariableWriteNode.
Definition ast.h:2972
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:2996
pm_node_t base
The embedded base node.
Definition ast.h:2974
struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3009
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3019
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:2986
ConstantAndWriteNode.
Definition ast.h:3034
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3052
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3047
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3042
struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3057
pm_node_t base
The embedded base node.
Definition ast.h:3036
A list of constant IDs.
ConstantOperatorWriteNode.
Definition ast.h:3072
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3080
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3085
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3100
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3090
struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3095
pm_node_t base
The embedded base node.
Definition ast.h:3074
ConstantOrWriteNode.
Definition ast.h:3115
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3133
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3128
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3123
pm_node_t base
The embedded base node.
Definition ast.h:3117
struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3138
ConstantPathAndWriteNode.
Definition ast.h:3153
pm_node_t base
The embedded base node.
Definition ast.h:3155
struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3161
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3166
struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3171
ConstantPathNode.
Definition ast.h:3186
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3225
pm_node_t base
The embedded base node.
Definition ast.h:3188
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3238
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3212
struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3205
ConstantPathOperatorWriteNode.
Definition ast.h:3253
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3261
struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3271
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3276
pm_node_t base
The embedded base node.
Definition ast.h:3255
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3266
ConstantPathOrWriteNode.
Definition ast.h:3291
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3304
pm_node_t base
The embedded base node.
Definition ast.h:3293
struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3309
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3299
ConstantPathTargetNode.
Definition ast.h:3324
pm_node_t base
The embedded base node.
Definition ast.h:3326
struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3332
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3342
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3337
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3347
ConstantPathWriteNode.
Definition ast.h:3368
struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3384
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3394
pm_node_t base
The embedded base node.
Definition ast.h:3370
struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3404
ConstantReadNode.
Definition ast.h:3419
pm_node_t base
The embedded base node.
Definition ast.h:3421
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3433
ConstantTargetNode.
Definition ast.h:3448
pm_node_t base
The embedded base node.
Definition ast.h:3450
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3456
ConstantWriteNode.
Definition ast.h:3471
pm_node_t base
The embedded base node.
Definition ast.h:3473
struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3508
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3485
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3495
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3518
DefNode.
Definition ast.h:3534
struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3557
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3597
pm_constant_id_t name
DefNode::name.
Definition ast.h:3542
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3547
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3587
struct pm_node * body
DefNode::body.
Definition ast.h:3562
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3592
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3572
struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3552
pm_node_t base
The embedded base node.
Definition ast.h:3536
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3582
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3577
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3567
DefinedNode.
Definition ast.h:3612
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3620
pm_node_t base
The embedded base node.
Definition ast.h:3614
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3630
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3635
struct pm_node * value
DefinedNode::value.
Definition ast.h:3625
ElseNode.
Definition ast.h:3650
struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3663
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3658
pm_node_t base
The embedded base node.
Definition ast.h:3652
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3668
EmbeddedStatementsNode.
Definition ast.h:3683
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3701
struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3696
pm_node_t base
The embedded base node.
Definition ast.h:3685
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3691
EmbeddedVariableNode.
Definition ast.h:3716
struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3729
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3724
pm_node_t base
The embedded base node.
Definition ast.h:3718
EnsureNode.
Definition ast.h:3748
struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3761
pm_node_t base
The embedded base node.
Definition ast.h:3750
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3756
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3766
FalseNode.
Definition ast.h:3781
pm_node_t base
The embedded base node.
Definition ast.h:3783
FindPatternNode.
Definition ast.h:3808
struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3821
struct pm_node * right
FindPatternNode::right.
Definition ast.h:3860
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3873
pm_node_t base
The embedded base node.
Definition ast.h:3810
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3847
struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3834
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3886
FlipFlopNode.
Definition ast.h:3904
pm_node_t base
The embedded base node.
Definition ast.h:3906
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3922
struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3912
struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3917
FloatNode.
Definition ast.h:3937
double value
FloatNode::value.
Definition ast.h:3947
pm_node_t base
The embedded base node.
Definition ast.h:3939
ForNode.
Definition ast.h:3962
struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:3997
struct pm_node * index
ForNode::index.
Definition ast.h:3975
struct pm_node * collection
ForNode::collection.
Definition ast.h:3985
pm_node_t base
The embedded base node.
Definition ast.h:3964
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4037
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4007
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4027
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4017
ForwardingArgumentsNode.
Definition ast.h:4054
pm_node_t base
The embedded base node.
Definition ast.h:4056
ForwardingParameterNode.
Definition ast.h:4073
pm_node_t base
The embedded base node.
Definition ast.h:4075
ForwardingSuperNode.
Definition ast.h:4091
pm_node_t base
The embedded base node.
Definition ast.h:4093
struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4099
GlobalVariableAndWriteNode.
Definition ast.h:4114
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4132
pm_node_t base
The embedded base node.
Definition ast.h:4116
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4127
struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4137
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4122
GlobalVariableOperatorWriteNode.
Definition ast.h:4152
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4160
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4180
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4175
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4165
pm_node_t base
The embedded base node.
Definition ast.h:4154
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4170
GlobalVariableOrWriteNode.
Definition ast.h:4195
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4203
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4208
pm_node_t base
The embedded base node.
Definition ast.h:4197
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4213
struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4218
GlobalVariableReadNode.
Definition ast.h:4233
pm_node_t base
The embedded base node.
Definition ast.h:4235
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4247
GlobalVariableTargetNode.
Definition ast.h:4262
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4270
pm_node_t base
The embedded base node.
Definition ast.h:4264
GlobalVariableWriteNode.
Definition ast.h:4285
struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4322
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4309
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4332
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4299
pm_node_t base
The embedded base node.
Definition ast.h:4287
HashNode.
Definition ast.h:4347
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4373
pm_node_t base
The embedded base node.
Definition ast.h:4349
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4383
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4360
HashPatternNode.
Definition ast.h:4407
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4433
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4462
pm_node_t base
The embedded base node.
Definition ast.h:4409
struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4449
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4475
struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4423
IfNode.
Definition ast.h:4496
struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4529
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4587
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4511
struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4556
pm_node_t base
The embedded base node.
Definition ast.h:4498
struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4575
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4542
ImaginaryNode.
Definition ast.h:4602
struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4610
pm_node_t base
The embedded base node.
Definition ast.h:4604
ImplicitNode.
Definition ast.h:4631
struct pm_node * value
ImplicitNode::value.
Definition ast.h:4639
pm_node_t base
The embedded base node.
Definition ast.h:4633
ImplicitRestNode.
Definition ast.h:4663
pm_node_t base
The embedded base node.
Definition ast.h:4665
InNode.
Definition ast.h:4681
struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4694
struct pm_node * pattern
InNode::pattern.
Definition ast.h:4689
pm_node_t base
The embedded base node.
Definition ast.h:4683
pm_location_t then_loc
InNode::then_loc.
Definition ast.h:4704
pm_location_t in_loc
InNode::in_loc.
Definition ast.h:4699
IndexAndWriteNode.
Definition ast.h:4725
struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4748
struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4733
pm_node_t base
The embedded base node.
Definition ast.h:4727
struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4758
struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4768
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4763
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4753
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4743
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4738
IndexOperatorWriteNode.
Definition ast.h:4789
pm_node_t base
The embedded base node.
Definition ast.h:4791
struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4822
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4832
struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4837
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4807
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4802
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4817
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4812
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4827
struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4797
IndexOrWriteNode.
Definition ast.h:4858
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4886
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4871
pm_node_t base
The embedded base node.
Definition ast.h:4860
struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4891
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4896
struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4866
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4876
struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4901
struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4881
IndexTargetNode.
Definition ast.h:4930
pm_node_t base
The embedded base node.
Definition ast.h:4932
struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4938
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4953
struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4948
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4943
struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4958
InstanceVariableAndWriteNode.
Definition ast.h:4973
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:4991
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:4986
struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:4996
pm_node_t base
The embedded base node.
Definition ast.h:4975
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:4981
InstanceVariableOperatorWriteNode.
Definition ast.h:5011
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5034
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5039
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5029
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5019
pm_node_t base
The embedded base node.
Definition ast.h:5013
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5024
InstanceVariableOrWriteNode.
Definition ast.h:5054
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5072
struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5077
pm_node_t base
The embedded base node.
Definition ast.h:5056
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5067
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5062
InstanceVariableReadNode.
Definition ast.h:5092
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5106
pm_node_t base
The embedded base node.
Definition ast.h:5094
InstanceVariableTargetNode.
Definition ast.h:5121
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5129
pm_node_t base
The embedded base node.
Definition ast.h:5123
InstanceVariableWriteNode.
Definition ast.h:5144
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5191
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5158
pm_node_t base
The embedded base node.
Definition ast.h:5146
struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5181
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5168
IntegerNode.
Definition ast.h:5212
pm_integer_t value
IntegerNode::value.
Definition ast.h:5222
pm_node_t base
The embedded base node.
Definition ast.h:5214
A structure represents an arbitrary-sized integer.
Definition pm_integer.h:20
InterpolatedMatchLastLineNode.
Definition ast.h:5250
pm_node_t base
The embedded base node.
Definition ast.h:5252
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5268
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5263
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5258
InterpolatedRegularExpressionNode.
Definition ast.h:5296
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5304
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5309
pm_node_t base
The embedded base node.
Definition ast.h:5298
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5314
InterpolatedStringNode.
Definition ast.h:5333
pm_node_t base
The embedded base node.
Definition ast.h:5335
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5351
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5341
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5346
InterpolatedSymbolNode.
Definition ast.h:5366
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5379
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5384
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5374
pm_node_t base
The embedded base node.
Definition ast.h:5368
InterpolatedXStringNode.
Definition ast.h:5399
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5407
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5417
pm_node_t base
The embedded base node.
Definition ast.h:5401
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5412
ItLocalVariableReadNode.
Definition ast.h:5432
pm_node_t base
The embedded base node.
Definition ast.h:5434
ItParametersNode.
Definition ast.h:5450
pm_node_t base
The embedded base node.
Definition ast.h:5452
KeywordHashNode.
Definition ast.h:5471
pm_node_t base
The embedded base node.
Definition ast.h:5473
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5479
KeywordRestParameterNode.
Definition ast.h:5498
pm_node_t base
The embedded base node.
Definition ast.h:5500
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5506
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5516
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5511
LambdaNode.
Definition ast.h:5531
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5554
pm_node_t base
The embedded base node.
Definition ast.h:5533
struct pm_node * body
LambdaNode::body.
Definition ast.h:5564
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5549
struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5559
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5544
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5539
LocalVariableAndWriteNode.
Definition ast.h:5579
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5602
pm_node_t base
The embedded base node.
Definition ast.h:5581
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5607
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5592
struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5597
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5587
LocalVariableOperatorWriteNode.
Definition ast.h:5622
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5655
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5650
pm_node_t base
The embedded base node.
Definition ast.h:5624
struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5640
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5630
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5635
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5645
LocalVariableOrWriteNode.
Definition ast.h:5670
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5698
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5683
struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5688
pm_node_t base
The embedded base node.
Definition ast.h:5672
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5693
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5678
LocalVariableReadNode.
Definition ast.h:5713
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5744
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5731
pm_node_t base
The embedded base node.
Definition ast.h:5715
LocalVariableTargetNode.
Definition ast.h:5762
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5775
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5770
pm_node_t base
The embedded base node.
Definition ast.h:5764
LocalVariableWriteNode.
Definition ast.h:5790
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5854
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5827
pm_node_t base
The embedded base node.
Definition ast.h:5792
struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5844
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5817
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5804
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:5882
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5895
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5890
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5900
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5905
pm_node_t base
The embedded base node.
Definition ast.h:5884
MatchPredicateNode.
Definition ast.h:5920
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition ast.h:5938
struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5933
struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5928
pm_node_t base
The embedded base node.
Definition ast.h:5922
MatchRequiredNode.
Definition ast.h:5953
pm_node_t base
The embedded base node.
Definition ast.h:5955
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6025
struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5966
struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:6015
MatchWriteNode.
Definition ast.h:6040
pm_node_t base
The embedded base node.
Definition ast.h:6042
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6053
struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6048
MissingNode.
Definition ast.h:6065
pm_node_t base
The embedded base node.
Definition ast.h:6067
ModuleNode.
Definition ast.h:6083
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6111
struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6101
struct pm_node * body
ModuleNode::body.
Definition ast.h:6106
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6091
pm_node_t base
The embedded base node.
Definition ast.h:6085
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6096
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6116
MultiTargetNode.
Definition ast.h:6136
pm_node_t base
The embedded base node.
Definition ast.h:6138
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6194
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6154
struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6174
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6204
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6184
MultiWriteNode.
Definition ast.h:6219
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6287
struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6307
struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6257
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6267
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6297
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6277
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6237
pm_node_t base
The embedded base node.
Definition ast.h:6221
NextNode.
Definition ast.h:6322
struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6330
pm_node_t base
The embedded base node.
Definition ast.h:6324
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6335
NilNode.
Definition ast.h:6350
pm_node_t base
The embedded base node.
Definition ast.h:6352
NoKeywordsParameterNode.
Definition ast.h:6369
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6382
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6377
pm_node_t base
The embedded base node.
Definition ast.h:6371
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:1068
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1073
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1085
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1079
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1091
NumberedParametersNode.
Definition ast.h:6397
pm_node_t base
The embedded base node.
Definition ast.h:6399
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6405
NumberedReferenceReadNode.
Definition ast.h:6420
pm_node_t base
The embedded base node.
Definition ast.h:6422
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6436
OptionalKeywordParameterNode.
Definition ast.h:6455
pm_node_t base
The embedded base node.
Definition ast.h:6457
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6463
struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6473
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6468
OptionalParameterNode.
Definition ast.h:6492
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6505
struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6515
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6500
pm_node_t base
The embedded base node.
Definition ast.h:6494
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6510
OrNode.
Definition ast.h:6530
struct pm_node * left
OrNode::left.
Definition ast.h:6546
struct pm_node * right
OrNode::right.
Definition ast.h:6559
pm_node_t base
The embedded base node.
Definition ast.h:6532
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6569
ParametersNode.
Definition ast.h:6585
struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6603
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6593
struct pm_block_parameter_node * block
ParametersNode::block.
Definition ast.h:6623
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6598
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6608
pm_node_t base
The embedded base node.
Definition ast.h:6587
struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6618
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6613
ParenthesesNode.
Definition ast.h:6641
struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6649
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6659
pm_node_t base
The embedded base node.
Definition ast.h:6643
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6654
PinnedExpressionNode.
Definition ast.h:6674
pm_node_t base
The embedded base node.
Definition ast.h:6676
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6717
struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6687
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6707
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6697
PinnedVariableNode.
Definition ast.h:6732
struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6745
pm_node_t base
The embedded base node.
Definition ast.h:6734
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6755
PostExecutionNode.
Definition ast.h:6770
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6793
struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6778
pm_node_t base
The embedded base node.
Definition ast.h:6772
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6788
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6783
PreExecutionNode.
Definition ast.h:6808
struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6816
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6831
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6826
pm_node_t base
The embedded base node.
Definition ast.h:6810
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6821
ProgramNode.
Definition ast.h:6843
struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6856
pm_node_t base
The embedded base node.
Definition ast.h:6845
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6851
RangeNode.
Definition ast.h:6877
struct pm_node * right
RangeNode::right.
Definition ast.h:6907
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6914
pm_node_t base
The embedded base node.
Definition ast.h:6879
struct pm_node * left
RangeNode::left.
Definition ast.h:6893
RationalNode.
Definition ast.h:6935
pm_node_t base
The embedded base node.
Definition ast.h:6937
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6956
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6947
RedoNode.
Definition ast.h:6971
pm_node_t base
The embedded base node.
Definition ast.h:6973
RegularExpressionNode.
Definition ast.h:7002
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:7020
pm_node_t base
The embedded base node.
Definition ast.h:7004
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:7025
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:7010
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:7015
RequiredKeywordParameterNode.
Definition ast.h:7044
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7057
pm_node_t base
The embedded base node.
Definition ast.h:7046
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7052
RequiredParameterNode.
Definition ast.h:7076
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7084
pm_node_t base
The embedded base node.
Definition ast.h:7078
RescueModifierNode.
Definition ast.h:7099
pm_node_t base
The embedded base node.
Definition ast.h:7101
struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7117
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7112
struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7107
RescueNode.
Definition ast.h:7137
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7145
struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7175
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7165
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7155
struct pm_node * reference
RescueNode::reference.
Definition ast.h:7160
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7150
struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7170
pm_node_t base
The embedded base node.
Definition ast.h:7139
RestParameterNode.
Definition ast.h:7194
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7202
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7207
pm_node_t base
The embedded base node.
Definition ast.h:7196
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7212
RetryNode.
Definition ast.h:7227
pm_node_t base
The embedded base node.
Definition ast.h:7229
ReturnNode.
Definition ast.h:7245
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7253
pm_node_t base
The embedded base node.
Definition ast.h:7247
struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7258
SelfNode.
Definition ast.h:7273
pm_node_t base
The embedded base node.
Definition ast.h:7275
ShareableConstantNode.
Definition ast.h:7297
struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7307
pm_node_t base
The embedded base node.
Definition ast.h:7299
SingletonClassNode.
Definition ast.h:7322
pm_node_t base
The embedded base node.
Definition ast.h:7324
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7330
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7340
struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7345
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7355
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7335
struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7350
SourceEncodingNode.
Definition ast.h:7370
pm_node_t base
The embedded base node.
Definition ast.h:7372
SourceFileNode.
Definition ast.h:7394
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7404
pm_node_t base
The embedded base node.
Definition ast.h:7396
SourceLineNode.
Definition ast.h:7419
pm_node_t base
The embedded base node.
Definition ast.h:7421
SplatNode.
Definition ast.h:7437
struct pm_node * expression
SplatNode::expression.
Definition ast.h:7450
pm_node_t base
The embedded base node.
Definition ast.h:7439
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7445
StatementsNode.
Definition ast.h:7465
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7473
pm_node_t base
The embedded base node.
Definition ast.h:7467
StringNode.
Definition ast.h:7500
pm_node_t base
The embedded base node.
Definition ast.h:7502
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7523
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7513
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7518
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7508
A generic string type that can have various ownership semantics.
Definition pm_string.h:33
SuperNode.
Definition ast.h:7541
struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7559
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7554
pm_node_t base
The embedded base node.
Definition ast.h:7543
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7549
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7564
struct pm_node * block
SuperNode::block.
Definition ast.h:7569
SymbolNode.
Definition ast.h:7592
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7600
pm_location_t value_loc
SymbolNode::value_loc.
Definition ast.h:7605
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7610
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7615
pm_node_t base
The embedded base node.
Definition ast.h:7594
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:7630
pm_node_t base
The embedded base node.
Definition ast.h:7632
UndefNode.
Definition ast.h:7648
pm_node_t base
The embedded base node.
Definition ast.h:7650
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7661
struct pm_node_list names
UndefNode::names.
Definition ast.h:7656
UnlessNode.
Definition ast.h:7679
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition ast.h:7695
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7718
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7749
pm_node_t base
The embedded base node.
Definition ast.h:7681
struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7729
struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7708
struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7739
UntilNode.
Definition ast.h:7770
struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7798
pm_location_t closing_loc
UntilNode::closing_loc.
Definition ast.h:7788
struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7793
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition ast.h:7778
pm_node_t base
The embedded base node.
Definition ast.h:7772
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7783
WhenNode.
Definition ast.h:7815
struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7838
pm_node_t base
The embedded base node.
Definition ast.h:7817
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7833
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition ast.h:7823
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7828
WhileNode.
Definition ast.h:7859
pm_location_t closing_loc
WhileNode::closing_loc.
Definition ast.h:7877
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition ast.h:7867
struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7887
pm_node_t base
The embedded base node.
Definition ast.h:7861
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7872
struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7882
XStringNode.
Definition ast.h:7906
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7924
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7914
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7919
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7929
pm_node_t base
The embedded base node.
Definition ast.h:7908
YieldNode.
Definition ast.h:7944
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7952
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7957
pm_node_t base
The embedded base node.
Definition ast.h:7946
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7967
struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7962