Ruby 4.1.0dev (2026-09-30 revision 32154539ad2b1a9d5a7dd6f33b400f9b582bb240)
ast.h
1/*----------------------------------------------------------------------------*/
2/* This file is generated by the templates/template.rb script and should not */
3/* be modified manually. See */
4/* templates/include/prism/ast.h.erb */
5/* if you are looking to modify the */
6/* template */
7/*----------------------------------------------------------------------------*/
8
11#ifndef PRISM_AST_H
12#define PRISM_AST_H
13
16
17#include "prism/arena.h"
18#include "prism/constant_pool.h"
19#include "prism/integer.h"
20#include "prism/stringy.h"
21
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_NEWLINE_TERMINATOR,
73
75 PM_TOKEN_PARENTHESIS_RIGHT,
76
78 PM_TOKEN_PIPE,
79
81 PM_TOKEN_SEMICOLON,
82
84 PM_TOKEN_AMPERSAND,
85
87 PM_TOKEN_AMPERSAND_AMPERSAND,
88
90 PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL,
91
93 PM_TOKEN_AMPERSAND_DOT,
94
96 PM_TOKEN_AMPERSAND_EQUAL,
97
99 PM_TOKEN_BACKTICK,
100
102 PM_TOKEN_BACK_REFERENCE,
103
105 PM_TOKEN_BANG,
106
108 PM_TOKEN_BANG_EQUAL,
109
111 PM_TOKEN_BANG_TILDE,
112
114 PM_TOKEN_BRACE_LEFT,
115
117 PM_TOKEN_BRACE_LEFT_ARGUMENT,
118
120 PM_TOKEN_BRACE_LEFT_HASH,
121
123 PM_TOKEN_BRACKET_LEFT,
124
126 PM_TOKEN_BRACKET_LEFT_ARRAY,
127
129 PM_TOKEN_BRACKET_LEFT_RIGHT,
130
132 PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL,
133
135 PM_TOKEN_BRACKET_RIGHT,
136
138 PM_TOKEN_CARET,
139
141 PM_TOKEN_CARET_EQUAL,
142
144 PM_TOKEN_CHARACTER_LITERAL,
145
147 PM_TOKEN_CLASS_VARIABLE,
148
150 PM_TOKEN_COLON,
151
153 PM_TOKEN_COLON_COLON,
154
156 PM_TOKEN_COMMENT,
157
159 PM_TOKEN_CONSTANT,
160
162 PM_TOKEN_DOT,
163
165 PM_TOKEN_DOT_DOT,
166
168 PM_TOKEN_DOT_DOT_DOT,
169
171 PM_TOKEN_EMBDOC_BEGIN,
172
174 PM_TOKEN_EMBDOC_END,
175
177 PM_TOKEN_EMBDOC_LINE,
178
180 PM_TOKEN_EMBEXPR_BEGIN,
181
183 PM_TOKEN_EMBVAR,
184
186 PM_TOKEN_EQUAL,
187
189 PM_TOKEN_EQUAL_EQUAL,
190
192 PM_TOKEN_EQUAL_EQUAL_EQUAL,
193
195 PM_TOKEN_EQUAL_GREATER,
196
198 PM_TOKEN_EQUAL_TILDE,
199
201 PM_TOKEN_FLOAT,
202
204 PM_TOKEN_FLOAT_IMAGINARY,
205
207 PM_TOKEN_FLOAT_RATIONAL,
208
210 PM_TOKEN_FLOAT_RATIONAL_IMAGINARY,
211
213 PM_TOKEN_GLOBAL_VARIABLE,
214
216 PM_TOKEN_GREATER,
217
219 PM_TOKEN_GREATER_EQUAL,
220
222 PM_TOKEN_GREATER_GREATER,
223
225 PM_TOKEN_GREATER_GREATER_EQUAL,
226
228 PM_TOKEN_HEREDOC_END,
229
231 PM_TOKEN_HEREDOC_START,
232
234 PM_TOKEN_IDENTIFIER,
235
237 PM_TOKEN_IGNORED_NEWLINE,
238
240 PM_TOKEN_INSTANCE_VARIABLE,
241
243 PM_TOKEN_INTEGER,
244
246 PM_TOKEN_INTEGER_IMAGINARY,
247
249 PM_TOKEN_INTEGER_RATIONAL,
250
252 PM_TOKEN_INTEGER_RATIONAL_IMAGINARY,
253
255 PM_TOKEN_KEYWORD_ALIAS,
256
258 PM_TOKEN_KEYWORD_AND,
259
261 PM_TOKEN_KEYWORD_BEGIN,
262
264 PM_TOKEN_KEYWORD_BEGIN_UPCASE,
265
267 PM_TOKEN_KEYWORD_BREAK,
268
270 PM_TOKEN_KEYWORD_CASE,
271
273 PM_TOKEN_KEYWORD_CLASS,
274
276 PM_TOKEN_KEYWORD_DEF,
277
279 PM_TOKEN_KEYWORD_DEFINED,
280
282 PM_TOKEN_KEYWORD_DO_BLOCK,
283
285 PM_TOKEN_KEYWORD_DO_LAMBDA,
286
288 PM_TOKEN_KEYWORD_DO_LOOP,
289
291 PM_TOKEN_KEYWORD_END_UPCASE,
292
294 PM_TOKEN_KEYWORD_FALSE,
295
297 PM_TOKEN_KEYWORD_FOR,
298
300 PM_TOKEN_KEYWORD_IF,
301
303 PM_TOKEN_KEYWORD_IF_MODIFIER,
304
306 PM_TOKEN_KEYWORD_MODULE,
307
309 PM_TOKEN_KEYWORD_NEXT,
310
312 PM_TOKEN_KEYWORD_NIL,
313
315 PM_TOKEN_KEYWORD_NOT,
316
318 PM_TOKEN_KEYWORD_OR,
319
321 PM_TOKEN_KEYWORD_REDO,
322
324 PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
325
327 PM_TOKEN_KEYWORD_RETRY,
328
330 PM_TOKEN_KEYWORD_RETURN,
331
333 PM_TOKEN_KEYWORD_SELF,
334
336 PM_TOKEN_KEYWORD_SUPER,
337
339 PM_TOKEN_KEYWORD_TRUE,
340
342 PM_TOKEN_KEYWORD_UNDEF,
343
345 PM_TOKEN_KEYWORD_UNLESS,
346
348 PM_TOKEN_KEYWORD_UNLESS_MODIFIER,
349
351 PM_TOKEN_KEYWORD_UNTIL,
352
354 PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
355
357 PM_TOKEN_KEYWORD_WHILE,
358
360 PM_TOKEN_KEYWORD_WHILE_MODIFIER,
361
363 PM_TOKEN_KEYWORD_YIELD,
364
366 PM_TOKEN_KEYWORD___ENCODING__,
367
369 PM_TOKEN_KEYWORD___FILE__,
370
372 PM_TOKEN_KEYWORD___LINE__,
373
375 PM_TOKEN_LABEL,
376
378 PM_TOKEN_LABEL_END,
379
381 PM_TOKEN_LAMBDA_BEGIN,
382
384 PM_TOKEN_LESS,
385
387 PM_TOKEN_LESS_EQUAL,
388
390 PM_TOKEN_LESS_EQUAL_GREATER,
391
393 PM_TOKEN_LESS_LESS,
394
396 PM_TOKEN_LESS_LESS_EQUAL,
397
399 PM_TOKEN_METHOD_NAME,
400
402 PM_TOKEN_MINUS,
403
405 PM_TOKEN_MINUS_EQUAL,
406
408 PM_TOKEN_MINUS_GREATER,
409
411 PM_TOKEN_NUMBERED_REFERENCE,
412
414 PM_TOKEN_PARENTHESIS_LEFT,
415
417 PM_TOKEN_PARENTHESIS_LEFT_GROUPING,
418
420 PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
421
423 PM_TOKEN_PERCENT,
424
426 PM_TOKEN_PERCENT_EQUAL,
427
429 PM_TOKEN_PERCENT_LOWER_I,
430
432 PM_TOKEN_PERCENT_LOWER_W,
433
435 PM_TOKEN_PERCENT_LOWER_X,
436
438 PM_TOKEN_PERCENT_UPPER_I,
439
441 PM_TOKEN_PERCENT_UPPER_W,
442
444 PM_TOKEN_PIPE_EQUAL,
445
447 PM_TOKEN_PIPE_PIPE,
448
450 PM_TOKEN_PIPE_PIPE_EQUAL,
451
453 PM_TOKEN_PLUS,
454
456 PM_TOKEN_PLUS_EQUAL,
457
459 PM_TOKEN_QUESTION_MARK,
460
462 PM_TOKEN_REGEXP_BEGIN,
463
465 PM_TOKEN_REGEXP_END,
466
468 PM_TOKEN_SLASH,
469
471 PM_TOKEN_SLASH_EQUAL,
472
474 PM_TOKEN_STAR,
475
477 PM_TOKEN_STAR_EQUAL,
478
480 PM_TOKEN_STAR_STAR,
481
483 PM_TOKEN_STAR_STAR_EQUAL,
484
486 PM_TOKEN_STRING_BEGIN,
487
489 PM_TOKEN_STRING_CONTENT,
490
492 PM_TOKEN_STRING_END,
493
495 PM_TOKEN_SYMBOL_BEGIN,
496
498 PM_TOKEN_TILDE,
499
501 PM_TOKEN_UAMPERSAND,
502
504 PM_TOKEN_UCOLON_COLON,
505
507 PM_TOKEN_UDOT_DOT,
508
510 PM_TOKEN_UDOT_DOT_DOT,
511
513 PM_TOKEN_UMINUS,
514
516 PM_TOKEN_UMINUS_NUM,
517
519 PM_TOKEN_UPLUS,
520
522 PM_TOKEN_USTAR,
523
525 PM_TOKEN_USTAR_STAR,
526
528 PM_TOKEN_WORDS_SEP,
529
531 PM_TOKEN_WORDS_SEP_IMPLICIT,
532
534 PM_TOKEN_XSTRING_BEGIN,
535
537 PM_TOKEN___END__,
538
540 PM_TOKEN_MAXIMUM,
541} pm_token_type_t;
542
547typedef struct {
549 pm_token_type_t type;
550
552 const uint8_t *start;
553
555 const uint8_t *end;
556} pm_token_t;
557
565PRISM_EXPORTED_FUNCTION const char * pm_token_type(pm_token_type_t token_type);
566
575typedef struct {
577 uint32_t start;
578
580 uint32_t length;
582
583struct pm_node;
584
588typedef struct pm_node_list {
590 size_t size;
591
593 size_t capacity;
594
596 struct pm_node **nodes;
598
602enum pm_node_type {
604 PM_ALIAS_GLOBAL_VARIABLE_NODE = 1,
605
607 PM_ALIAS_METHOD_NODE = 2,
608
610 PM_ALTERNATION_PATTERN_NODE = 3,
611
613 PM_AND_NODE = 4,
614
616 PM_ARGUMENTS_NODE = 5,
617
619 PM_ARRAY_NODE = 6,
620
622 PM_ARRAY_PATTERN_NODE = 7,
623
625 PM_ASSOC_NODE = 8,
626
628 PM_ASSOC_SPLAT_NODE = 9,
629
631 PM_BACK_REFERENCE_READ_NODE = 10,
632
634 PM_BEGIN_NODE = 11,
635
637 PM_BLOCK_ARGUMENT_NODE = 12,
638
640 PM_BLOCK_LOCAL_VARIABLE_NODE = 13,
641
643 PM_BLOCK_NODE = 14,
644
646 PM_BLOCK_PARAMETER_NODE = 15,
647
649 PM_BLOCK_PARAMETERS_NODE = 16,
650
652 PM_BREAK_NODE = 17,
653
655 PM_CALL_AND_WRITE_NODE = 18,
656
658 PM_CALL_NODE = 19,
659
661 PM_CALL_OPERATOR_WRITE_NODE = 20,
662
664 PM_CALL_OR_WRITE_NODE = 21,
665
667 PM_CALL_TARGET_NODE = 22,
668
670 PM_CAPTURE_PATTERN_NODE = 23,
671
673 PM_CASE_MATCH_NODE = 24,
674
676 PM_CASE_NODE = 25,
677
679 PM_CLASS_NODE = 26,
680
682 PM_CLASS_VARIABLE_AND_WRITE_NODE = 27,
683
685 PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 28,
686
688 PM_CLASS_VARIABLE_OR_WRITE_NODE = 29,
689
691 PM_CLASS_VARIABLE_READ_NODE = 30,
692
694 PM_CLASS_VARIABLE_TARGET_NODE = 31,
695
697 PM_CLASS_VARIABLE_WRITE_NODE = 32,
698
700 PM_CONSTANT_AND_WRITE_NODE = 33,
701
703 PM_CONSTANT_OPERATOR_WRITE_NODE = 34,
704
706 PM_CONSTANT_OR_WRITE_NODE = 35,
707
709 PM_CONSTANT_PATH_AND_WRITE_NODE = 36,
710
712 PM_CONSTANT_PATH_NODE = 37,
713
715 PM_CONSTANT_PATH_OPERATOR_WRITE_NODE = 38,
716
718 PM_CONSTANT_PATH_OR_WRITE_NODE = 39,
719
721 PM_CONSTANT_PATH_TARGET_NODE = 40,
722
724 PM_CONSTANT_PATH_WRITE_NODE = 41,
725
727 PM_CONSTANT_READ_NODE = 42,
728
730 PM_CONSTANT_TARGET_NODE = 43,
731
733 PM_CONSTANT_WRITE_NODE = 44,
734
736 PM_DEF_NODE = 45,
737
739 PM_DEFINED_NODE = 46,
740
742 PM_ELSE_NODE = 47,
743
745 PM_EMBEDDED_STATEMENTS_NODE = 48,
746
748 PM_EMBEDDED_VARIABLE_NODE = 49,
749
751 PM_ENSURE_NODE = 50,
752
754 PM_ERROR_RECOVERY_NODE = 51,
755
757 PM_FALSE_NODE = 52,
758
760 PM_FIND_PATTERN_NODE = 53,
761
763 PM_FLIP_FLOP_NODE = 54,
764
766 PM_FLOAT_NODE = 55,
767
769 PM_FOR_NODE = 56,
770
772 PM_FORWARDING_ARGUMENTS_NODE = 57,
773
775 PM_FORWARDING_PARAMETER_NODE = 58,
776
778 PM_FORWARDING_SUPER_NODE = 59,
779
781 PM_GLOBAL_VARIABLE_AND_WRITE_NODE = 60,
782
784 PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 61,
785
787 PM_GLOBAL_VARIABLE_OR_WRITE_NODE = 62,
788
790 PM_GLOBAL_VARIABLE_READ_NODE = 63,
791
793 PM_GLOBAL_VARIABLE_TARGET_NODE = 64,
794
796 PM_GLOBAL_VARIABLE_WRITE_NODE = 65,
797
799 PM_HASH_NODE = 66,
800
802 PM_HASH_PATTERN_NODE = 67,
803
805 PM_IF_NODE = 68,
806
808 PM_IMAGINARY_NODE = 69,
809
811 PM_IMPLICIT_NODE = 70,
812
814 PM_IMPLICIT_REST_NODE = 71,
815
817 PM_IN_NODE = 72,
818
820 PM_INDEX_AND_WRITE_NODE = 73,
821
823 PM_INDEX_OPERATOR_WRITE_NODE = 74,
824
826 PM_INDEX_OR_WRITE_NODE = 75,
827
829 PM_INDEX_TARGET_NODE = 76,
830
832 PM_INSTANCE_VARIABLE_AND_WRITE_NODE = 77,
833
835 PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 78,
836
838 PM_INSTANCE_VARIABLE_OR_WRITE_NODE = 79,
839
841 PM_INSTANCE_VARIABLE_READ_NODE = 80,
842
844 PM_INSTANCE_VARIABLE_TARGET_NODE = 81,
845
847 PM_INSTANCE_VARIABLE_WRITE_NODE = 82,
848
850 PM_INTEGER_NODE = 83,
851
853 PM_INTERPOLATED_MATCH_LAST_LINE_NODE = 84,
854
856 PM_INTERPOLATED_REGULAR_EXPRESSION_NODE = 85,
857
859 PM_INTERPOLATED_STRING_NODE = 86,
860
862 PM_INTERPOLATED_SYMBOL_NODE = 87,
863
865 PM_INTERPOLATED_X_STRING_NODE = 88,
866
868 PM_IT_LOCAL_VARIABLE_READ_NODE = 89,
869
871 PM_IT_PARAMETERS_NODE = 90,
872
874 PM_KEYWORD_HASH_NODE = 91,
875
877 PM_KEYWORD_REST_PARAMETER_NODE = 92,
878
880 PM_LAMBDA_NODE = 93,
881
883 PM_LOCAL_VARIABLE_AND_WRITE_NODE = 94,
884
886 PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 95,
887
889 PM_LOCAL_VARIABLE_OR_WRITE_NODE = 96,
890
892 PM_LOCAL_VARIABLE_READ_NODE = 97,
893
895 PM_LOCAL_VARIABLE_TARGET_NODE = 98,
896
898 PM_LOCAL_VARIABLE_WRITE_NODE = 99,
899
901 PM_MATCH_LAST_LINE_NODE = 100,
902
904 PM_MATCH_PREDICATE_NODE = 101,
905
907 PM_MATCH_REQUIRED_NODE = 102,
908
910 PM_MATCH_WRITE_NODE = 103,
911
913 PM_MODULE_NODE = 104,
914
916 PM_MULTI_TARGET_NODE = 105,
917
919 PM_MULTI_WRITE_NODE = 106,
920
922 PM_NEXT_NODE = 107,
923
925 PM_NIL_NODE = 108,
926
928 PM_NO_BLOCK_PARAMETER_NODE = 109,
929
931 PM_NO_KEYWORDS_PARAMETER_NODE = 110,
932
934 PM_NUMBERED_PARAMETERS_NODE = 111,
935
937 PM_NUMBERED_REFERENCE_READ_NODE = 112,
938
940 PM_OPTIONAL_KEYWORD_PARAMETER_NODE = 113,
941
943 PM_OPTIONAL_PARAMETER_NODE = 114,
944
946 PM_OR_NODE = 115,
947
949 PM_PARAMETERS_NODE = 116,
950
952 PM_PARENTHESES_NODE = 117,
953
955 PM_PINNED_EXPRESSION_NODE = 118,
956
958 PM_PINNED_VARIABLE_NODE = 119,
959
961 PM_POST_EXECUTION_NODE = 120,
962
964 PM_PRE_EXECUTION_NODE = 121,
965
967 PM_PROGRAM_NODE = 122,
968
970 PM_RANGE_NODE = 123,
971
973 PM_RATIONAL_NODE = 124,
974
976 PM_REDO_NODE = 125,
977
979 PM_REGULAR_EXPRESSION_NODE = 126,
980
982 PM_REQUIRED_KEYWORD_PARAMETER_NODE = 127,
983
985 PM_REQUIRED_PARAMETER_NODE = 128,
986
988 PM_RESCUE_MODIFIER_NODE = 129,
989
991 PM_RESCUE_NODE = 130,
992
994 PM_REST_PARAMETER_NODE = 131,
995
997 PM_RETRY_NODE = 132,
998
1000 PM_RETURN_NODE = 133,
1001
1003 PM_SELF_NODE = 134,
1004
1006 PM_SHAREABLE_CONSTANT_NODE = 135,
1007
1009 PM_SINGLETON_CLASS_NODE = 136,
1010
1012 PM_SOURCE_ENCODING_NODE = 137,
1013
1015 PM_SOURCE_FILE_NODE = 138,
1016
1018 PM_SOURCE_LINE_NODE = 139,
1019
1021 PM_SPLAT_NODE = 140,
1022
1024 PM_STATEMENTS_NODE = 141,
1025
1027 PM_STRING_NODE = 142,
1028
1030 PM_SUPER_NODE = 143,
1031
1033 PM_SYMBOL_NODE = 144,
1034
1036 PM_TRUE_NODE = 145,
1037
1039 PM_UNDEF_NODE = 146,
1040
1042 PM_UNLESS_NODE = 147,
1043
1045 PM_UNTIL_NODE = 148,
1046
1048 PM_WHEN_NODE = 149,
1049
1051 PM_WHILE_NODE = 150,
1052
1054 PM_X_STRING_NODE = 151,
1055
1057 PM_YIELD_NODE = 152,
1058
1060 PM_SCOPE_NODE
1061};
1062
1067typedef uint16_t pm_node_type_t;
1068
1073typedef uint16_t pm_node_flags_t;
1074
1079static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1080static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1081
1086typedef struct pm_node {
1091 pm_node_type_t type;
1092
1097 pm_node_flags_t flags;
1098
1103 uint32_t node_id;
1104
1110} pm_node_t;
1111
1115#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1116
1121#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1122
1126#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1127
1131#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1132
1136#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1137
1141#ifdef _MSC_VER
1142#define PM_NODE_ALIGNAS __declspec(align(8))
1143#else
1144#define PM_NODE_ALIGNAS PRISM_ALIGNAS(PRISM_ALIGNOF(void *))
1145#endif
1146
1193
1206typedef struct pm_alias_method_node {
1209
1224 PM_NODE_ALIGNAS struct pm_node *new_name;
1225
1240 PM_NODE_ALIGNAS struct pm_node *old_name;
1241
1252
1268
1277 PM_NODE_ALIGNAS struct pm_node *left;
1278
1287 PM_NODE_ALIGNAS struct pm_node *right;
1288
1299
1312typedef struct pm_and_node {
1315
1327 PM_NODE_ALIGNAS struct pm_node *left;
1328
1340 PM_NODE_ALIGNAS struct pm_node *right;
1341
1352
1386
1437
1532
1545typedef struct pm_assoc_node {
1548
1563 PM_NODE_ALIGNAS struct pm_node *key;
1564
1576 PM_NODE_ALIGNAS struct pm_node *value;
1577
1588
1625
1653
1668typedef struct pm_begin_node {
1671
1681
1690 PM_NODE_ALIGNAS struct pm_statements_node *statements;
1691
1700 PM_NODE_ALIGNAS struct pm_rescue_node *rescue_clause;
1701
1710 PM_NODE_ALIGNAS struct pm_else_node *else_clause;
1711
1720 PM_NODE_ALIGNAS struct pm_ensure_node *ensure_clause;
1721
1732
1769
1799
1870
1923
2000
2037
2130
2270
2373
2466
2537
2584
2653
2722
2808
2865
2907
2944
2972
2994
3055
3092
3134
3171
3203
3269
3306
3338
3375
3431
3459
3481
3542
3620
3657
3689
3721
3748
3784
3797
3803 PM_NODE_ALIGNAS struct pm_node *unexpected;
3805
3822
3844typedef struct pm_find_pattern_node {
3847
3856 PM_NODE_ALIGNAS struct pm_node *constant;
3857
3869 PM_NODE_ALIGNAS struct pm_splat_node *left;
3870
3883
3895 PM_NODE_ALIGNAS struct pm_splat_node *right;
3896
3909
3923
3939typedef struct pm_flip_flop_node {
3942
3946 PM_NODE_ALIGNAS struct pm_node *left;
3947
3951 PM_NODE_ALIGNAS struct pm_node *right;
3952
3958
3971typedef struct pm_float_node {
3974
3980 double value;
3982
4071
4090
4108
4148
4185
4227
4264
4292
4314
4375
4425
4447typedef struct pm_hash_pattern_node {
4450
4462 PM_NODE_ALIGNAS struct pm_node *constant;
4463
4473
4488 PM_NODE_ALIGNAS struct pm_node *rest;
4489
4502
4516
4535typedef struct pm_if_node {
4538
4550
4567 PM_NODE_ALIGNAS struct pm_node *predicate;
4568
4581
4594 PM_NODE_ALIGNAS struct pm_statements_node *statements;
4595
4613 PM_NODE_ALIGNAS struct pm_node *subsequent;
4614
4626} pm_if_node_t;
4627
4640typedef struct pm_imaginary_node {
4643
4647 PM_NODE_ALIGNAS struct pm_node *numeric;
4649
4668typedef struct pm_implicit_node {
4671
4675 PM_NODE_ALIGNAS struct pm_node *value;
4677
4703
4716typedef struct pm_in_node {
4719
4723 PM_NODE_ALIGNAS struct pm_node *pattern;
4724
4728 PM_NODE_ALIGNAS struct pm_statements_node *statements;
4729
4734
4739} pm_in_node_t;
4740
4803
4871
4934
4961typedef struct pm_index_target_node {
4964
4968 PM_NODE_ALIGNAS struct pm_node *receiver;
4969
4974
4978 PM_NODE_ALIGNAS struct pm_arguments_node *arguments;
4979
4984
4988 PM_NODE_ALIGNAS struct pm_block_argument_node *block;
4990
5027
5069
5106
5134
5156
5217
5247
5292
5337
5373
5405
5437
5454
5471
5496
5532
5579
5621
5668
5710
5755
5785
5863
5913
5929
5933 PM_NODE_ALIGNAS struct pm_node *value;
5934
5938 PM_NODE_ALIGNAS struct pm_node *pattern;
5939
5945
5961
5970 PM_NODE_ALIGNAS struct pm_node *value;
5971
6019 PM_NODE_ALIGNAS struct pm_node *pattern;
6020
6031
6044typedef struct pm_match_write_node {
6047
6051 PM_NODE_ALIGNAS struct pm_call_node *call;
6052
6058
6105
6192
6294
6321
6338
6366
6394
6416
6446
6482
6523
6536typedef struct pm_or_node {
6539
6551 PM_NODE_ALIGNAS struct pm_node *left;
6552
6564 PM_NODE_ALIGNAS struct pm_node *right;
6565
6575} pm_or_node_t;
6576
6590typedef struct pm_parameters_node {
6593
6598
6603
6607 PM_NODE_ALIGNAS struct pm_node *rest;
6608
6613
6618
6622 PM_NODE_ALIGNAS struct pm_node *keyword_rest;
6623
6627 PM_NODE_ALIGNAS struct pm_node *block;
6629
6664
6721
6758
6795
6832
6856
6875typedef struct pm_range_node {
6878
6890 PM_NODE_ALIGNAS struct pm_node *left;
6891
6904 PM_NODE_ALIGNAS struct pm_node *right;
6905
6913
6954
6971
7021
7052
7078
7094
7098 PM_NODE_ALIGNAS struct pm_node *expression;
7099
7104
7108 PM_NODE_ALIGNAS struct pm_node *rescue_expression;
7110
7167
7203
7220
7247
7264
7294
7341
7358
7388
7405
7418typedef struct pm_splat_node {
7421
7426
7430 PM_NODE_ALIGNAS struct pm_node *expression;
7432
7454
7503
7552
7597
7614
7641
7728
7776
7815
7863
7904
7941
7945typedef enum pm_arguments_node_flags {
7947 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING = 4,
7948
7950 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS = 8,
7951
7953 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT = 16,
7954
7956 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT = 32,
7957
7959 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
7960
7961 PM_ARGUMENTS_NODE_FLAGS_LAST,
7962} pm_arguments_node_flags_t;
7963
7967typedef enum pm_array_node_flags {
7969 PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
7970
7971 PM_ARRAY_NODE_FLAGS_LAST,
7972} pm_array_node_flags_t;
7973
7977typedef enum pm_call_node_flags {
7979 PM_CALL_NODE_FLAGS_SAFE_NAVIGATION = 4,
7980
7982 PM_CALL_NODE_FLAGS_VARIABLE_CALL = 8,
7983
7985 PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 16,
7986
7988 PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
7989
7990 PM_CALL_NODE_FLAGS_LAST,
7991} pm_call_node_flags_t;
7992
7996typedef enum pm_encoding_flags {
7998 PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING = 4,
7999
8001 PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
8002
8003 PM_ENCODING_FLAGS_LAST,
8004} pm_encoding_flags_t;
8005
8009typedef enum pm_integer_base_flags {
8011 PM_INTEGER_BASE_FLAGS_BINARY = 4,
8012
8014 PM_INTEGER_BASE_FLAGS_DECIMAL = 8,
8015
8017 PM_INTEGER_BASE_FLAGS_OCTAL = 16,
8018
8020 PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
8021
8022 PM_INTEGER_BASE_FLAGS_LAST,
8023} pm_integer_base_flags_t;
8024
8028typedef enum pm_interpolated_string_node_flags {
8030 PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN = 4,
8031
8033 PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
8034
8035 PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
8036} pm_interpolated_string_node_flags_t;
8037
8041typedef enum pm_keyword_hash_node_flags {
8043 PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
8044
8045 PM_KEYWORD_HASH_NODE_FLAGS_LAST,
8046} pm_keyword_hash_node_flags_t;
8047
8051typedef enum pm_loop_flags {
8053 PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8054
8055 PM_LOOP_FLAGS_LAST,
8056} pm_loop_flags_t;
8057
8061typedef enum pm_parameter_flags {
8063 PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8064
8065 PM_PARAMETER_FLAGS_LAST,
8066} pm_parameter_flags_t;
8067
8071typedef enum pm_parentheses_node_flags {
8073 PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8074
8075 PM_PARENTHESES_NODE_FLAGS_LAST,
8076} pm_parentheses_node_flags_t;
8077
8081typedef enum pm_range_flags {
8083 PM_RANGE_FLAGS_EXCLUDE_END = 4,
8084
8085 PM_RANGE_FLAGS_LAST,
8086} pm_range_flags_t;
8087
8091typedef enum pm_regular_expression_flags {
8093 PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 4,
8094
8096 PM_REGULAR_EXPRESSION_FLAGS_EXTENDED = 8,
8097
8099 PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 16,
8100
8102 PM_REGULAR_EXPRESSION_FLAGS_ONCE = 32,
8103
8105 PM_REGULAR_EXPRESSION_FLAGS_EUC_JP = 64,
8106
8108 PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 128,
8109
8111 PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 256,
8112
8114 PM_REGULAR_EXPRESSION_FLAGS_UTF_8 = 512,
8115
8117 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING = 1024,
8118
8120 PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING = 2048,
8121
8123 PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8124
8125 PM_REGULAR_EXPRESSION_FLAGS_LAST,
8126} pm_regular_expression_flags_t;
8127
8131typedef enum pm_shareable_constant_node_flags {
8133 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL = 4,
8134
8136 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING = 8,
8137
8139 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8140
8141 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
8142} pm_shareable_constant_node_flags_t;
8143
8147typedef enum pm_string_flags {
8149 PM_STRING_FLAGS_FORCED_UTF8_ENCODING = 4,
8150
8152 PM_STRING_FLAGS_FORCED_BINARY_ENCODING = 8,
8153
8155 PM_STRING_FLAGS_FROZEN = 16,
8156
8158 PM_STRING_FLAGS_MUTABLE = 32,
8159
8160 PM_STRING_FLAGS_LAST,
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
8176 PM_SYMBOL_FLAGS_LAST,
8177} pm_symbol_flags_t;
8178
8191PRISM_EXPORTED_FUNCTION pm_alias_global_variable_node_t * pm_alias_global_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *new_name, struct pm_node *old_name, pm_location_t keyword_loc);
8192
8205PRISM_EXPORTED_FUNCTION pm_alias_method_node_t * pm_alias_method_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *new_name, struct pm_node *old_name, pm_location_t keyword_loc);
8206
8219PRISM_EXPORTED_FUNCTION pm_alternation_pattern_node_t * pm_alternation_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc);
8220
8233PRISM_EXPORTED_FUNCTION pm_and_node_t * pm_and_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc);
8234
8245PRISM_EXPORTED_FUNCTION pm_arguments_node_t * pm_arguments_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t arguments);
8246
8259PRISM_EXPORTED_FUNCTION pm_array_node_t * pm_array_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t elements, pm_location_t opening_loc, pm_location_t closing_loc);
8260
8276PRISM_EXPORTED_FUNCTION pm_array_pattern_node_t * pm_array_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, pm_node_list_t requireds, struct pm_node *rest, pm_node_list_t posts, pm_location_t opening_loc, pm_location_t closing_loc);
8277
8290PRISM_EXPORTED_FUNCTION pm_assoc_node_t * pm_assoc_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *key, struct pm_node *value, pm_location_t operator_loc);
8291
8303PRISM_EXPORTED_FUNCTION pm_assoc_splat_node_t * pm_assoc_splat_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, pm_location_t operator_loc);
8304
8315PRISM_EXPORTED_FUNCTION pm_back_reference_read_node_t * pm_back_reference_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
8316
8332PRISM_EXPORTED_FUNCTION pm_begin_node_t * pm_begin_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t begin_keyword_loc, struct pm_statements_node *statements, struct pm_rescue_node *rescue_clause, struct pm_else_node *else_clause, struct pm_ensure_node *ensure_clause, pm_location_t end_keyword_loc);
8333
8345PRISM_EXPORTED_FUNCTION pm_block_argument_node_t * pm_block_argument_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t operator_loc);
8346
8357PRISM_EXPORTED_FUNCTION pm_block_local_variable_node_t * pm_block_local_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
8358
8373PRISM_EXPORTED_FUNCTION pm_block_node_t * pm_block_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, struct pm_node *parameters, struct pm_node *body, pm_location_t opening_loc, pm_location_t closing_loc);
8374
8387PRISM_EXPORTED_FUNCTION pm_block_parameter_node_t * pm_block_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc);
8388
8402PRISM_EXPORTED_FUNCTION pm_block_parameters_node_t * pm_block_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_parameters_node *parameters, pm_node_list_t locals, pm_location_t opening_loc, pm_location_t closing_loc);
8403
8415PRISM_EXPORTED_FUNCTION pm_break_node_t * pm_break_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_arguments_node *arguments, pm_location_t keyword_loc);
8416
8433PRISM_EXPORTED_FUNCTION pm_call_and_write_node_t * pm_call_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_location_t operator_loc, struct pm_node *value);
8434
8453PRISM_EXPORTED_FUNCTION pm_call_node_t * pm_call_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_constant_id_t name, pm_location_t message_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, pm_location_t equal_loc, struct pm_node *block);
8454
8472PRISM_EXPORTED_FUNCTION pm_call_operator_write_node_t * pm_call_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_constant_id_t binary_operator, pm_location_t binary_operator_loc, struct pm_node *value);
8473
8490PRISM_EXPORTED_FUNCTION pm_call_or_write_node_t * pm_call_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_location_t operator_loc, struct pm_node *value);
8491
8505PRISM_EXPORTED_FUNCTION pm_call_target_node_t * pm_call_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_constant_id_t name, pm_location_t message_loc);
8506
8519PRISM_EXPORTED_FUNCTION pm_capture_pattern_node_t * pm_capture_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_local_variable_target_node *target, pm_location_t operator_loc);
8520
8535PRISM_EXPORTED_FUNCTION pm_case_match_node_t * pm_case_match_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *predicate, pm_node_list_t conditions, struct pm_else_node *else_clause, pm_location_t case_keyword_loc, pm_location_t end_keyword_loc);
8536
8551PRISM_EXPORTED_FUNCTION pm_case_node_t * pm_case_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *predicate, pm_node_list_t conditions, struct pm_else_node *else_clause, pm_location_t case_keyword_loc, pm_location_t end_keyword_loc);
8552
8570PRISM_EXPORTED_FUNCTION pm_class_node_t * pm_class_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t class_keyword_loc, struct pm_node *constant_path, pm_location_t inheritance_operator_loc, struct pm_node *superclass, struct pm_node *body, pm_location_t end_keyword_loc, pm_constant_id_t name);
8571
8585PRISM_EXPORTED_FUNCTION pm_class_variable_and_write_node_t * pm_class_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value);
8586
8601PRISM_EXPORTED_FUNCTION pm_class_variable_operator_write_node_t * pm_class_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator);
8602
8616PRISM_EXPORTED_FUNCTION pm_class_variable_or_write_node_t * pm_class_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value);
8617
8628PRISM_EXPORTED_FUNCTION pm_class_variable_read_node_t * pm_class_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
8629
8640PRISM_EXPORTED_FUNCTION pm_class_variable_target_node_t * pm_class_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
8641
8655PRISM_EXPORTED_FUNCTION pm_class_variable_write_node_t * pm_class_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc);
8656
8670PRISM_EXPORTED_FUNCTION pm_constant_and_write_node_t * pm_constant_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value);
8671
8686PRISM_EXPORTED_FUNCTION pm_constant_operator_write_node_t * pm_constant_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator);
8687
8701PRISM_EXPORTED_FUNCTION pm_constant_or_write_node_t * pm_constant_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value);
8702
8715PRISM_EXPORTED_FUNCTION pm_constant_path_and_write_node_t * pm_constant_path_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t operator_loc, struct pm_node *value);
8716
8730PRISM_EXPORTED_FUNCTION pm_constant_path_node_t * pm_constant_path_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *parent, pm_constant_id_t name, pm_location_t delimiter_loc, pm_location_t name_loc);
8731
8745PRISM_EXPORTED_FUNCTION pm_constant_path_operator_write_node_t * pm_constant_path_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator);
8746
8759PRISM_EXPORTED_FUNCTION pm_constant_path_or_write_node_t * pm_constant_path_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t operator_loc, struct pm_node *value);
8760
8774PRISM_EXPORTED_FUNCTION pm_constant_path_target_node_t * pm_constant_path_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *parent, pm_constant_id_t name, pm_location_t delimiter_loc, pm_location_t name_loc);
8775
8788PRISM_EXPORTED_FUNCTION pm_constant_path_write_node_t * pm_constant_path_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t operator_loc, struct pm_node *value);
8789
8800PRISM_EXPORTED_FUNCTION pm_constant_read_node_t * pm_constant_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
8801
8812PRISM_EXPORTED_FUNCTION pm_constant_target_node_t * pm_constant_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
8813
8827PRISM_EXPORTED_FUNCTION pm_constant_write_node_t * pm_constant_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc);
8828
8850PRISM_EXPORTED_FUNCTION pm_def_node_t * pm_def_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *receiver, struct pm_parameters_node *parameters, struct pm_node *body, pm_constant_id_list_t locals, pm_location_t def_keyword_loc, pm_location_t operator_loc, pm_location_t lparen_loc, pm_location_t rparen_loc, pm_location_t equal_loc, pm_location_t end_keyword_loc);
8851
8865PRISM_EXPORTED_FUNCTION pm_defined_node_t * pm_defined_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t lparen_loc, struct pm_node *value, pm_location_t rparen_loc, pm_location_t keyword_loc);
8866
8879PRISM_EXPORTED_FUNCTION pm_else_node_t * pm_else_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t else_keyword_loc, struct pm_statements_node *statements, pm_location_t end_keyword_loc);
8880
8893PRISM_EXPORTED_FUNCTION pm_embedded_statements_node_t * pm_embedded_statements_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, struct pm_statements_node *statements, pm_location_t closing_loc);
8894
8906PRISM_EXPORTED_FUNCTION pm_embedded_variable_node_t * pm_embedded_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, struct pm_node *variable);
8907
8920PRISM_EXPORTED_FUNCTION pm_ensure_node_t * pm_ensure_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t ensure_keyword_loc, struct pm_statements_node *statements, pm_location_t end_keyword_loc);
8921
8932PRISM_EXPORTED_FUNCTION pm_error_recovery_node_t * pm_error_recovery_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *unexpected);
8933
8943PRISM_EXPORTED_FUNCTION pm_false_node_t * pm_false_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
8944
8960PRISM_EXPORTED_FUNCTION pm_find_pattern_node_t * pm_find_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, struct pm_splat_node *left, pm_node_list_t requireds, struct pm_splat_node *right, pm_location_t opening_loc, pm_location_t closing_loc);
8961
8974PRISM_EXPORTED_FUNCTION pm_flip_flop_node_t * pm_flip_flop_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc);
8975
8986PRISM_EXPORTED_FUNCTION pm_float_node_t * pm_float_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, double value);
8987
9004PRISM_EXPORTED_FUNCTION pm_for_node_t * pm_for_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *index, struct pm_node *collection, struct pm_statements_node *statements, pm_location_t for_keyword_loc, pm_location_t in_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc);
9005
9015PRISM_EXPORTED_FUNCTION pm_forwarding_arguments_node_t * pm_forwarding_arguments_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
9016
9026PRISM_EXPORTED_FUNCTION pm_forwarding_parameter_node_t * pm_forwarding_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
9027
9039PRISM_EXPORTED_FUNCTION pm_forwarding_super_node_t * pm_forwarding_super_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, struct pm_block_node *block);
9040
9054PRISM_EXPORTED_FUNCTION pm_global_variable_and_write_node_t * pm_global_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value);
9055
9070PRISM_EXPORTED_FUNCTION pm_global_variable_operator_write_node_t * pm_global_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator);
9071
9085PRISM_EXPORTED_FUNCTION pm_global_variable_or_write_node_t * pm_global_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value);
9086
9097PRISM_EXPORTED_FUNCTION pm_global_variable_read_node_t * pm_global_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
9098
9109PRISM_EXPORTED_FUNCTION pm_global_variable_target_node_t * pm_global_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
9110
9124PRISM_EXPORTED_FUNCTION pm_global_variable_write_node_t * pm_global_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc);
9125
9138PRISM_EXPORTED_FUNCTION pm_hash_node_t * pm_hash_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t elements, pm_location_t closing_loc);
9139
9154PRISM_EXPORTED_FUNCTION pm_hash_pattern_node_t * pm_hash_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, pm_node_list_t elements, struct pm_node *rest, pm_location_t opening_loc, pm_location_t closing_loc);
9155
9171PRISM_EXPORTED_FUNCTION pm_if_node_t * pm_if_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t if_keyword_loc, struct pm_node *predicate, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_node *subsequent, pm_location_t end_keyword_loc);
9172
9183PRISM_EXPORTED_FUNCTION pm_imaginary_node_t * pm_imaginary_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *numeric);
9184
9195PRISM_EXPORTED_FUNCTION pm_implicit_node_t * pm_implicit_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value);
9196
9206PRISM_EXPORTED_FUNCTION pm_implicit_rest_node_t * pm_implicit_rest_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
9207
9221PRISM_EXPORTED_FUNCTION pm_in_node_t * pm_in_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *pattern, struct pm_statements_node *statements, pm_location_t in_keyword_loc, pm_location_t then_keyword_loc);
9222
9240PRISM_EXPORTED_FUNCTION pm_index_and_write_node_t * pm_index_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_location_t operator_loc, struct pm_node *value);
9241
9260PRISM_EXPORTED_FUNCTION pm_index_operator_write_node_t * pm_index_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_constant_id_t binary_operator, pm_location_t binary_operator_loc, struct pm_node *value);
9261
9279PRISM_EXPORTED_FUNCTION pm_index_or_write_node_t * pm_index_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_location_t operator_loc, struct pm_node *value);
9280
9295PRISM_EXPORTED_FUNCTION pm_index_target_node_t * pm_index_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block);
9296
9310PRISM_EXPORTED_FUNCTION pm_instance_variable_and_write_node_t * pm_instance_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value);
9311
9326PRISM_EXPORTED_FUNCTION pm_instance_variable_operator_write_node_t * pm_instance_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator);
9327
9341PRISM_EXPORTED_FUNCTION pm_instance_variable_or_write_node_t * pm_instance_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value);
9342
9353PRISM_EXPORTED_FUNCTION pm_instance_variable_read_node_t * pm_instance_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
9354
9365PRISM_EXPORTED_FUNCTION pm_instance_variable_target_node_t * pm_instance_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
9366
9380PRISM_EXPORTED_FUNCTION pm_instance_variable_write_node_t * pm_instance_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc);
9381
9392PRISM_EXPORTED_FUNCTION pm_integer_node_t * pm_integer_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_integer_t value);
9393
9406PRISM_EXPORTED_FUNCTION pm_interpolated_match_last_line_node_t * pm_interpolated_match_last_line_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc);
9407
9420PRISM_EXPORTED_FUNCTION pm_interpolated_regular_expression_node_t * pm_interpolated_regular_expression_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc);
9421
9434PRISM_EXPORTED_FUNCTION pm_interpolated_string_node_t * pm_interpolated_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc);
9435
9448PRISM_EXPORTED_FUNCTION pm_interpolated_symbol_node_t * pm_interpolated_symbol_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc);
9449
9462PRISM_EXPORTED_FUNCTION pm_interpolated_x_string_node_t * pm_interpolated_x_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc);
9463
9473PRISM_EXPORTED_FUNCTION pm_it_local_variable_read_node_t * pm_it_local_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
9474
9484PRISM_EXPORTED_FUNCTION pm_it_parameters_node_t * pm_it_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
9485
9496PRISM_EXPORTED_FUNCTION pm_keyword_hash_node_t * pm_keyword_hash_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t elements);
9497
9510PRISM_EXPORTED_FUNCTION pm_keyword_rest_parameter_node_t * pm_keyword_rest_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc);
9511
9527PRISM_EXPORTED_FUNCTION pm_lambda_node_t * pm_lambda_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t operator_loc, pm_location_t opening_loc, pm_location_t closing_loc, struct pm_node *parameters, struct pm_node *body);
9528
9543PRISM_EXPORTED_FUNCTION pm_local_variable_and_write_node_t * pm_local_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value, pm_constant_id_t name, uint32_t depth);
9544
9560PRISM_EXPORTED_FUNCTION pm_local_variable_operator_write_node_t * pm_local_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t name, pm_constant_id_t binary_operator, uint32_t depth);
9561
9576PRISM_EXPORTED_FUNCTION pm_local_variable_or_write_node_t * pm_local_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value, pm_constant_id_t name, uint32_t depth);
9577
9589PRISM_EXPORTED_FUNCTION pm_local_variable_read_node_t * pm_local_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, uint32_t depth);
9590
9602PRISM_EXPORTED_FUNCTION pm_local_variable_target_node_t * pm_local_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, uint32_t depth);
9603
9618PRISM_EXPORTED_FUNCTION pm_local_variable_write_node_t * pm_local_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, uint32_t depth, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc);
9619
9633PRISM_EXPORTED_FUNCTION pm_match_last_line_node_t * pm_match_last_line_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped);
9634
9647PRISM_EXPORTED_FUNCTION pm_match_predicate_node_t * pm_match_predicate_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_node *pattern, pm_location_t keyword_loc);
9648
9661PRISM_EXPORTED_FUNCTION pm_match_required_node_t * pm_match_required_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_node *pattern, pm_location_t operator_loc);
9662
9674PRISM_EXPORTED_FUNCTION pm_match_write_node_t * pm_match_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_call_node *call, pm_node_list_t targets);
9675
9691PRISM_EXPORTED_FUNCTION pm_module_node_t * pm_module_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t module_keyword_loc, struct pm_node *constant_path, struct pm_node *body, pm_location_t end_keyword_loc, pm_constant_id_t name);
9692
9707PRISM_EXPORTED_FUNCTION pm_multi_target_node_t * pm_multi_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t lefts, struct pm_node *rest, pm_node_list_t rights, pm_location_t lparen_loc, pm_location_t rparen_loc);
9708
9725PRISM_EXPORTED_FUNCTION pm_multi_write_node_t * pm_multi_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t lefts, struct pm_node *rest, pm_node_list_t rights, pm_location_t lparen_loc, pm_location_t rparen_loc, pm_location_t operator_loc, struct pm_node *value);
9726
9738PRISM_EXPORTED_FUNCTION pm_next_node_t * pm_next_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_arguments_node *arguments, pm_location_t keyword_loc);
9739
9749PRISM_EXPORTED_FUNCTION pm_nil_node_t * pm_nil_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
9750
9762PRISM_EXPORTED_FUNCTION pm_no_block_parameter_node_t * pm_no_block_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, pm_location_t keyword_loc);
9763
9775PRISM_EXPORTED_FUNCTION pm_no_keywords_parameter_node_t * pm_no_keywords_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, pm_location_t keyword_loc);
9776
9787PRISM_EXPORTED_FUNCTION pm_numbered_parameters_node_t * pm_numbered_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, uint8_t maximum);
9788
9799PRISM_EXPORTED_FUNCTION pm_numbered_reference_read_node_t * pm_numbered_reference_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, uint32_t number);
9800
9813PRISM_EXPORTED_FUNCTION pm_optional_keyword_parameter_node_t * pm_optional_keyword_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value);
9814
9828PRISM_EXPORTED_FUNCTION pm_optional_parameter_node_t * pm_optional_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value);
9829
9842PRISM_EXPORTED_FUNCTION pm_or_node_t * pm_or_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc);
9843
9860PRISM_EXPORTED_FUNCTION pm_parameters_node_t * pm_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t requireds, pm_node_list_t optionals, struct pm_node *rest, pm_node_list_t posts, pm_node_list_t keywords, struct pm_node *keyword_rest, struct pm_node *block);
9861
9874PRISM_EXPORTED_FUNCTION pm_parentheses_node_t * pm_parentheses_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *body, pm_location_t opening_loc, pm_location_t closing_loc);
9875
9889PRISM_EXPORTED_FUNCTION pm_pinned_expression_node_t * pm_pinned_expression_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t operator_loc, pm_location_t lparen_loc, pm_location_t rparen_loc);
9890
9902PRISM_EXPORTED_FUNCTION pm_pinned_variable_node_t * pm_pinned_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *variable, pm_location_t operator_loc);
9903
9917PRISM_EXPORTED_FUNCTION pm_post_execution_node_t * pm_post_execution_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_statements_node *statements, pm_location_t keyword_loc, pm_location_t opening_loc, pm_location_t closing_loc);
9918
9932PRISM_EXPORTED_FUNCTION pm_pre_execution_node_t * pm_pre_execution_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_statements_node *statements, pm_location_t keyword_loc, pm_location_t opening_loc, pm_location_t closing_loc);
9933
9945PRISM_EXPORTED_FUNCTION pm_program_node_t * pm_program_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, struct pm_statements_node *statements);
9946
9959PRISM_EXPORTED_FUNCTION pm_range_node_t * pm_range_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc);
9960
9972PRISM_EXPORTED_FUNCTION pm_rational_node_t * pm_rational_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_integer_t numerator, pm_integer_t denominator);
9973
9983PRISM_EXPORTED_FUNCTION pm_redo_node_t * pm_redo_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
9984
9998PRISM_EXPORTED_FUNCTION pm_regular_expression_node_t * pm_regular_expression_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped);
9999
10011PRISM_EXPORTED_FUNCTION pm_required_keyword_parameter_node_t * pm_required_keyword_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc);
10012
10023PRISM_EXPORTED_FUNCTION pm_required_parameter_node_t * pm_required_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name);
10024
10037PRISM_EXPORTED_FUNCTION pm_rescue_modifier_node_t * pm_rescue_modifier_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t keyword_loc, struct pm_node *rescue_expression);
10038
10055PRISM_EXPORTED_FUNCTION pm_rescue_node_t * pm_rescue_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_node_list_t exceptions, pm_location_t operator_loc, struct pm_node *reference, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_rescue_node *subsequent);
10056
10069PRISM_EXPORTED_FUNCTION pm_rest_parameter_node_t * pm_rest_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc);
10070
10080PRISM_EXPORTED_FUNCTION pm_retry_node_t * pm_retry_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
10081
10093PRISM_EXPORTED_FUNCTION pm_return_node_t * pm_return_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, struct pm_arguments_node *arguments);
10094
10104PRISM_EXPORTED_FUNCTION pm_self_node_t * pm_self_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
10105
10116PRISM_EXPORTED_FUNCTION pm_shareable_constant_node_t * pm_shareable_constant_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *write);
10117
10133PRISM_EXPORTED_FUNCTION pm_singleton_class_node_t * pm_singleton_class_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t class_keyword_loc, pm_location_t operator_loc, struct pm_node *expression, struct pm_node *body, pm_location_t end_keyword_loc);
10134
10144PRISM_EXPORTED_FUNCTION pm_source_encoding_node_t * pm_source_encoding_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
10145
10156PRISM_EXPORTED_FUNCTION pm_source_file_node_t * pm_source_file_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_string_t filepath);
10157
10167PRISM_EXPORTED_FUNCTION pm_source_line_node_t * pm_source_line_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
10168
10180PRISM_EXPORTED_FUNCTION pm_splat_node_t * pm_splat_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, struct pm_node *expression);
10181
10192PRISM_EXPORTED_FUNCTION pm_statements_node_t * pm_statements_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t body);
10193
10207PRISM_EXPORTED_FUNCTION pm_string_node_t * pm_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped);
10208
10223PRISM_EXPORTED_FUNCTION pm_super_node_t * pm_super_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_location_t lparen_loc, struct pm_arguments_node *arguments, pm_location_t rparen_loc, struct pm_node *block);
10224
10238PRISM_EXPORTED_FUNCTION pm_symbol_node_t * pm_symbol_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped);
10239
10249PRISM_EXPORTED_FUNCTION pm_true_node_t * pm_true_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location);
10250
10262PRISM_EXPORTED_FUNCTION pm_undef_node_t * pm_undef_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t names, pm_location_t keyword_loc);
10263
10279PRISM_EXPORTED_FUNCTION pm_unless_node_t * pm_unless_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t unless_keyword_loc, struct pm_node *predicate, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_else_node *else_clause, pm_location_t end_keyword_loc);
10280
10295PRISM_EXPORTED_FUNCTION pm_until_node_t * pm_until_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t until_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc, struct pm_node *predicate, struct pm_statements_node *statements);
10296
10310PRISM_EXPORTED_FUNCTION pm_when_node_t * pm_when_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t when_keyword_loc, pm_node_list_t conditions, pm_location_t then_keyword_loc, struct pm_statements_node *statements);
10311
10326PRISM_EXPORTED_FUNCTION pm_while_node_t * pm_while_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t while_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc, struct pm_node *predicate, struct pm_statements_node *statements);
10327
10341PRISM_EXPORTED_FUNCTION pm_x_string_node_t * pm_x_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped);
10342
10356PRISM_EXPORTED_FUNCTION pm_yield_node_t * pm_yield_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_location_t lparen_loc, struct pm_arguments_node *arguments, pm_location_t rparen_loc);
10357
10364#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
10365
10366#endif
A bump allocator for the prism parser.
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.
#define PRISM_EXPORTED_FUNCTION
By default, we compile with -fvisibility=hidden.
Definition exported.h:20
This module provides functions for working with arbitrary-sized integers.
A generic string type that can have various ownership semantics.
AliasGlobalVariableNode.
Definition ast.h:1159
PM_NODE_ALIGNAS struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1171
pm_node_t base
The embedded base node.
Definition ast.h:1161
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1191
PM_NODE_ALIGNAS struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1181
AliasMethodNode.
Definition ast.h:1206
PM_NODE_ALIGNAS struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1240
pm_node_t base
The embedded base node.
Definition ast.h:1208
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1250
PM_NODE_ALIGNAS struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1224
AlternationPatternNode.
Definition ast.h:1265
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1297
PM_NODE_ALIGNAS struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1277
pm_node_t base
The embedded base node.
Definition ast.h:1267
PM_NODE_ALIGNAS struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1287
AndNode.
Definition ast.h:1312
PM_NODE_ALIGNAS struct pm_node * left
AndNode::left.
Definition ast.h:1327
PM_NODE_ALIGNAS struct pm_node * right
AndNode::right.
Definition ast.h:1340
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1350
pm_node_t base
The embedded base node.
Definition ast.h:1314
ArgumentsNode.
Definition ast.h:1372
pm_node_t base
The embedded base node.
Definition ast.h:1374
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1384
ArrayNode.
Definition ast.h:1402
pm_node_t base
The embedded base node.
Definition ast.h:1404
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1435
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1411
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1423
ArrayPatternNode.
Definition ast.h:1462
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1490
PM_NODE_ALIGNAS struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1500
PM_NODE_ALIGNAS struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1480
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1520
pm_node_t base
The embedded base node.
Definition ast.h:1464
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1530
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1510
AssocNode.
Definition ast.h:1545
pm_node_t base
The embedded base node.
Definition ast.h:1547
PM_NODE_ALIGNAS struct pm_node * value
AssocNode::value.
Definition ast.h:1576
PM_NODE_ALIGNAS struct pm_node * key
AssocNode::key.
Definition ast.h:1563
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1586
AssocSplatNode.
Definition ast.h:1601
pm_node_t base
The embedded base node.
Definition ast.h:1603
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1623
PM_NODE_ALIGNAS struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1613
BackReferenceReadNode.
Definition ast.h:1638
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1651
pm_node_t base
The embedded base node.
Definition ast.h:1640
BeginNode.
Definition ast.h:1668
PM_NODE_ALIGNAS struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1710
PM_NODE_ALIGNAS struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1720
PM_NODE_ALIGNAS struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1690
PM_NODE_ALIGNAS struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1700
pm_node_t base
The embedded base node.
Definition ast.h:1670
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1730
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1680
BlockArgumentNode.
Definition ast.h:1745
PM_NODE_ALIGNAS struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1757
pm_node_t base
The embedded base node.
Definition ast.h:1747
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1767
BlockLocalVariableNode.
Definition ast.h:1785
pm_node_t base
The embedded base node.
Definition ast.h:1787
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1797
BlockNode.
Definition ast.h:1812
pm_node_t base
The embedded base node.
Definition ast.h:1814
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1868
PM_NODE_ALIGNAS struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1838
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1858
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1824
PM_NODE_ALIGNAS struct pm_node * body
BlockNode::body.
Definition ast.h:1848
BlockParameterNode.
Definition ast.h:1887
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1921
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1910
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1900
pm_node_t base
The embedded base node.
Definition ast.h:1889
BlockParametersNode.
Definition ast.h:1940
pm_node_t base
The embedded base node.
Definition ast.h:1942
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1970
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1956
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1998
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1984
BreakNode.
Definition ast.h:2013
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2035
pm_node_t base
The embedded base node.
Definition ast.h:2015
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:2025
CallAndWriteNode.
Definition ast.h:2056
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2118
PM_NODE_ALIGNAS struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2068
pm_node_t base
The embedded base node.
Definition ast.h:2058
PM_NODE_ALIGNAS struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2128
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2078
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2088
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2098
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2108
CallNode.
Definition ast.h:2164
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2225
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2245
pm_constant_id_t name
CallNode::name.
Definition ast.h:2205
pm_node_t base
The embedded base node.
Definition ast.h:2166
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2235
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2258
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2195
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2215
PM_NODE_ALIGNAS struct pm_node * block
CallNode::block.
Definition ast.h:2268
PM_NODE_ALIGNAS struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2182
CallOperatorWriteNode.
Definition ast.h:2289
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2331
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2351
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2361
pm_node_t base
The embedded base node.
Definition ast.h:2291
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2341
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2321
PM_NODE_ALIGNAS struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2301
PM_NODE_ALIGNAS struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2371
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2311
CallOrWriteNode.
Definition ast.h:2392
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2454
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2414
PM_NODE_ALIGNAS struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2404
pm_node_t base
The embedded base node.
Definition ast.h:2394
PM_NODE_ALIGNAS struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2464
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2444
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2434
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2424
CallTargetNode.
Definition ast.h:2493
pm_node_t base
The embedded base node.
Definition ast.h:2495
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2525
PM_NODE_ALIGNAS struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2505
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2515
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2535
CapturePatternNode.
Definition ast.h:2550
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2582
pm_node_t base
The embedded base node.
Definition ast.h:2552
PM_NODE_ALIGNAS struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2562
PM_NODE_ALIGNAS struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2572
CaseMatchNode.
Definition ast.h:2599
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2651
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2621
pm_node_t base
The embedded base node.
Definition ast.h:2601
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2641
PM_NODE_ALIGNAS struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2611
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2631
CaseNode.
Definition ast.h:2668
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2700
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2690
PM_NODE_ALIGNAS struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2680
pm_node_t base
The embedded base node.
Definition ast.h:2670
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2710
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2720
ClassNode.
Definition ast.h:2735
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2752
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2797
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2742
PM_NODE_ALIGNAS struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2777
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2767
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2806
pm_node_t base
The embedded base node.
Definition ast.h:2737
PM_NODE_ALIGNAS struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2757
PM_NODE_ALIGNAS struct pm_node * body
ClassNode::body.
Definition ast.h:2787
ClassVariableAndWriteNode.
Definition ast.h:2821
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2863
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2833
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2853
pm_node_t base
The embedded base node.
Definition ast.h:2823
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2843
ClassVariableOperatorWriteNode.
Definition ast.h:2878
pm_node_t base
The embedded base node.
Definition ast.h:2880
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2885
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2900
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2890
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2905
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2895
ClassVariableOrWriteNode.
Definition ast.h:2920
pm_node_t base
The embedded base node.
Definition ast.h:2922
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2942
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2932
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2937
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2927
ClassVariableReadNode.
Definition ast.h:2957
pm_node_t base
The embedded base node.
Definition ast.h:2959
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2970
ClassVariableTargetNode.
Definition ast.h:2985
pm_node_t base
The embedded base node.
Definition ast.h:2987
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2992
ClassVariableWriteNode.
Definition ast.h:3007
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:3030
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3043
pm_node_t base
The embedded base node.
Definition ast.h:3009
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3053
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:3020
ConstantAndWriteNode.
Definition ast.h:3068
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3085
PM_NODE_ALIGNAS struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3090
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3080
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3075
pm_node_t base
The embedded base node.
Definition ast.h:3070
A list of constant IDs.
ConstantOperatorWriteNode.
Definition ast.h:3105
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3112
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3117
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3132
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3122
PM_NODE_ALIGNAS struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3127
pm_node_t base
The embedded base node.
Definition ast.h:3107
ConstantOrWriteNode.
Definition ast.h:3147
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3164
PM_NODE_ALIGNAS struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3169
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3159
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3154
pm_node_t base
The embedded base node.
Definition ast.h:3149
ConstantPathAndWriteNode.
Definition ast.h:3184
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3191
pm_node_t base
The embedded base node.
Definition ast.h:3186
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3201
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3196
ConstantPathNode.
Definition ast.h:3216
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3254
pm_node_t base
The embedded base node.
Definition ast.h:3218
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3234
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3267
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3241
ConstantPathOperatorWriteNode.
Definition ast.h:3282
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3289
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3304
pm_node_t base
The embedded base node.
Definition ast.h:3284
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3294
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3299
ConstantPathOrWriteNode.
Definition ast.h:3319
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3331
pm_node_t base
The embedded base node.
Definition ast.h:3321
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3336
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3326
ConstantPathTargetNode.
Definition ast.h:3351
pm_node_t base
The embedded base node.
Definition ast.h:3353
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3368
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3363
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3358
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3373
ConstantPathWriteNode.
Definition ast.h:3394
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3429
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3419
pm_node_t base
The embedded base node.
Definition ast.h:3396
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3409
ConstantReadNode.
Definition ast.h:3444
pm_node_t base
The embedded base node.
Definition ast.h:3446
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3457
ConstantTargetNode.
Definition ast.h:3472
pm_node_t base
The embedded base node.
Definition ast.h:3474
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
PM_NODE_ALIGNAS struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3530
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3507
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3517
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3540
DefNode.
Definition ast.h:3556
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3618
pm_constant_id_t name
DefNode::name.
Definition ast.h:3563
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3568
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3608
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3578
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3613
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3593
pm_node_t base
The embedded base node.
Definition ast.h:3558
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3603
PM_NODE_ALIGNAS struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3573
PM_NODE_ALIGNAS struct pm_node * body
DefNode::body.
Definition ast.h:3583
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3598
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3588
DefinedNode.
Definition ast.h:3633
PM_NODE_ALIGNAS struct pm_node * value
DefinedNode::value.
Definition ast.h:3645
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3640
pm_node_t base
The embedded base node.
Definition ast.h:3635
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3650
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3655
ElseNode.
Definition ast.h:3670
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3677
pm_node_t base
The embedded base node.
Definition ast.h:3672
PM_NODE_ALIGNAS struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3682
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3687
EmbeddedStatementsNode.
Definition ast.h:3702
PM_NODE_ALIGNAS struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3714
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3719
pm_node_t base
The embedded base node.
Definition ast.h:3704
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3709
EmbeddedVariableNode.
Definition ast.h:3734
PM_NODE_ALIGNAS struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3746
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3741
pm_node_t base
The embedded base node.
Definition ast.h:3736
EnsureNode.
Definition ast.h:3765
PM_NODE_ALIGNAS struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3777
pm_node_t base
The embedded base node.
Definition ast.h:3767
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3772
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3782
ErrorRecoveryNode.
Definition ast.h:3794
PM_NODE_ALIGNAS struct pm_node * unexpected
ErrorRecoveryNode::unexpected.
Definition ast.h:3803
pm_node_t base
The embedded base node.
Definition ast.h:3796
FalseNode.
Definition ast.h:3818
pm_node_t base
The embedded base node.
Definition ast.h:3820
FindPatternNode.
Definition ast.h:3844
PM_NODE_ALIGNAS struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3869
PM_NODE_ALIGNAS struct pm_splat_node * right
FindPatternNode::right.
Definition ast.h:3895
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3908
pm_node_t base
The embedded base node.
Definition ast.h:3846
PM_NODE_ALIGNAS struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3856
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3882
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3921
FlipFlopNode.
Definition ast.h:3939
PM_NODE_ALIGNAS struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3946
pm_node_t base
The embedded base node.
Definition ast.h:3941
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3956
PM_NODE_ALIGNAS struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3951
FloatNode.
Definition ast.h:3971
double value
FloatNode::value.
Definition ast.h:3980
pm_node_t base
The embedded base node.
Definition ast.h:3973
ForNode.
Definition ast.h:3995
PM_NODE_ALIGNAS struct pm_node * index
ForNode::index.
Definition ast.h:4007
PM_NODE_ALIGNAS struct pm_node * collection
ForNode::collection.
Definition ast.h:4017
pm_node_t base
The embedded base node.
Definition ast.h:3997
PM_NODE_ALIGNAS struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:4029
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4069
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4039
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4059
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4049
ForwardingArgumentsNode.
Definition ast.h:4086
pm_node_t base
The embedded base node.
Definition ast.h:4088
ForwardingParameterNode.
Definition ast.h:4104
pm_node_t base
The embedded base node.
Definition ast.h:4106
ForwardingSuperNode.
Definition ast.h:4126
pm_node_t base
The embedded base node.
Definition ast.h:4128
PM_NODE_ALIGNAS struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4146
pm_location_t keyword_loc
ForwardingSuperNode::keyword_loc.
Definition ast.h:4139
GlobalVariableAndWriteNode.
Definition ast.h:4161
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4178
pm_node_t base
The embedded base node.
Definition ast.h:4163
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4183
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4173
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4168
GlobalVariableOperatorWriteNode.
Definition ast.h:4198
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4220
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4205
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4225
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4210
pm_node_t base
The embedded base node.
Definition ast.h:4200
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4215
GlobalVariableOrWriteNode.
Definition ast.h:4240
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4247
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4252
pm_node_t base
The embedded base node.
Definition ast.h:4242
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4257
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4262
GlobalVariableReadNode.
Definition ast.h:4277
pm_node_t base
The embedded base node.
Definition ast.h:4279
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4290
GlobalVariableTargetNode.
Definition ast.h:4305
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4312
pm_node_t base
The embedded base node.
Definition ast.h:4307
GlobalVariableWriteNode.
Definition ast.h:4327
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4350
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4373
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4340
pm_node_t base
The embedded base node.
Definition ast.h:4329
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4363
HashNode.
Definition ast.h:4388
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4413
pm_node_t base
The embedded base node.
Definition ast.h:4390
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4423
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4400
HashPatternNode.
Definition ast.h:4447
PM_NODE_ALIGNAS struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4462
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4472
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4501
pm_node_t base
The embedded base node.
Definition ast.h:4449
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4514
PM_NODE_ALIGNAS struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4488
IfNode.
Definition ast.h:4535
PM_NODE_ALIGNAS struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4567
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4625
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4549
PM_NODE_ALIGNAS struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4594
pm_node_t base
The embedded base node.
Definition ast.h:4537
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4580
PM_NODE_ALIGNAS struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4613
ImaginaryNode.
Definition ast.h:4640
pm_node_t base
The embedded base node.
Definition ast.h:4642
PM_NODE_ALIGNAS struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4647
ImplicitNode.
Definition ast.h:4668
pm_node_t base
The embedded base node.
Definition ast.h:4670
PM_NODE_ALIGNAS struct pm_node * value
ImplicitNode::value.
Definition ast.h:4675
ImplicitRestNode.
Definition ast.h:4699
pm_node_t base
The embedded base node.
Definition ast.h:4701
InNode.
Definition ast.h:4716
pm_location_t in_keyword_loc
InNode::in_keyword_loc.
Definition ast.h:4733
PM_NODE_ALIGNAS struct pm_node * pattern
InNode::pattern.
Definition ast.h:4723
PM_NODE_ALIGNAS struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4728
pm_location_t then_keyword_loc
InNode::then_keyword_loc.
Definition ast.h:4738
pm_node_t base
The embedded base node.
Definition ast.h:4718
IndexAndWriteNode.
Definition ast.h:4759
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4781
pm_node_t base
The embedded base node.
Definition ast.h:4761
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4796
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4786
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4776
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4771
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4791
PM_NODE_ALIGNAS struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4766
PM_NODE_ALIGNAS struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4801
IndexOperatorWriteNode.
Definition ast.h:4822
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4854
pm_node_t base
The embedded base node.
Definition ast.h:4824
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4829
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4864
PM_NODE_ALIGNAS struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4869
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4839
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4844
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4834
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4849
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4859
IndexOrWriteNode.
Definition ast.h:4890
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4917
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4902
pm_node_t base
The embedded base node.
Definition ast.h:4892
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4927
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4907
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4912
PM_NODE_ALIGNAS struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4932
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4897
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4922
IndexTargetNode.
Definition ast.h:4961
pm_node_t base
The embedded base node.
Definition ast.h:4963
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4978
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4983
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4988
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4973
PM_NODE_ALIGNAS struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4968
InstanceVariableAndWriteNode.
Definition ast.h:5003
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:5025
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:5020
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:5015
pm_node_t base
The embedded base node.
Definition ast.h:5005
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:5010
InstanceVariableOperatorWriteNode.
Definition ast.h:5040
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5067
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5062
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5057
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5047
pm_node_t base
The embedded base node.
Definition ast.h:5042
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5052
InstanceVariableOrWriteNode.
Definition ast.h:5082
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5099
pm_node_t base
The embedded base node.
Definition ast.h:5084
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5094
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5089
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5104
InstanceVariableReadNode.
Definition ast.h:5119
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5132
pm_node_t base
The embedded base node.
Definition ast.h:5121
InstanceVariableTargetNode.
Definition ast.h:5147
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5154
pm_node_t base
The embedded base node.
Definition ast.h:5149
InstanceVariableWriteNode.
Definition ast.h:5169
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5215
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5205
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5182
pm_node_t base
The embedded base node.
Definition ast.h:5171
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5192
IntegerNode.
Definition ast.h:5236
pm_integer_t value
IntegerNode::value.
Definition ast.h:5245
pm_node_t base
The embedded base node.
Definition ast.h:5238
A structure represents an arbitrary-sized integer.
Definition integer.h:16
InterpolatedMatchLastLineNode.
Definition ast.h:5273
pm_node_t base
The embedded base node.
Definition ast.h:5275
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5290
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5285
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5280
InterpolatedRegularExpressionNode.
Definition ast.h:5318
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5325
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5330
pm_node_t base
The embedded base node.
Definition ast.h:5320
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5335
InterpolatedStringNode.
Definition ast.h:5354
pm_node_t base
The embedded base node.
Definition ast.h:5356
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5371
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5361
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5366
InterpolatedSymbolNode.
Definition ast.h:5386
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5398
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5403
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5393
pm_node_t base
The embedded base node.
Definition ast.h:5388
InterpolatedXStringNode.
Definition ast.h:5418
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5425
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5435
pm_node_t base
The embedded base node.
Definition ast.h:5420
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5430
ItLocalVariableReadNode.
Definition ast.h:5450
pm_node_t base
The embedded base node.
Definition ast.h:5452
ItParametersNode.
Definition ast.h:5467
pm_node_t base
The embedded base node.
Definition ast.h:5469
KeywordHashNode.
Definition ast.h:5487
pm_node_t base
The embedded base node.
Definition ast.h:5489
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5494
KeywordRestParameterNode.
Definition ast.h:5513
pm_node_t base
The embedded base node.
Definition ast.h:5515
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5520
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5530
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5525
LambdaNode.
Definition ast.h:5545
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5567
pm_node_t base
The embedded base node.
Definition ast.h:5547
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5562
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5557
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5552
PM_NODE_ALIGNAS struct pm_node * body
LambdaNode::body.
Definition ast.h:5577
PM_NODE_ALIGNAS struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5572
LocalVariableAndWriteNode.
Definition ast.h:5592
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5614
pm_node_t base
The embedded base node.
Definition ast.h:5594
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5619
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5604
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5609
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5599
LocalVariableOperatorWriteNode.
Definition ast.h:5634
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5666
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5661
pm_node_t base
The embedded base node.
Definition ast.h:5636
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5641
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5646
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5651
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5656
LocalVariableOrWriteNode.
Definition ast.h:5681
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5698
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5708
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5693
pm_node_t base
The embedded base node.
Definition ast.h:5683
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5703
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5688
LocalVariableReadNode.
Definition ast.h:5723
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5753
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5740
pm_node_t base
The embedded base node.
Definition ast.h:5725
LocalVariableTargetNode.
Definition ast.h:5771
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5783
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5778
pm_node_t base
The embedded base node.
Definition ast.h:5773
LocalVariableWriteNode.
Definition ast.h:5798
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5851
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5861
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5834
pm_node_t base
The embedded base node.
Definition ast.h:5800
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5824
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5811
This struct represents a slice in the source code, defined by an offset and a length.
Definition ast.h:575
uint32_t start
The offset of the location from the start of the source.
Definition ast.h:577
uint32_t length
The length of the location.
Definition ast.h:580
MatchLastLineNode.
Definition ast.h:5889
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5901
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5896
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5906
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5911
pm_node_t base
The embedded base node.
Definition ast.h:5891
MatchPredicateNode.
Definition ast.h:5926
pm_location_t keyword_loc
MatchPredicateNode::keyword_loc.
Definition ast.h:5943
PM_NODE_ALIGNAS struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5938
PM_NODE_ALIGNAS struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5933
pm_node_t base
The embedded base node.
Definition ast.h:5928
MatchRequiredNode.
Definition ast.h:5958
pm_node_t base
The embedded base node.
Definition ast.h:5960
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6029
PM_NODE_ALIGNAS struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:6019
PM_NODE_ALIGNAS struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5970
MatchWriteNode.
Definition ast.h:6044
pm_node_t base
The embedded base node.
Definition ast.h:6046
PM_NODE_ALIGNAS struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6051
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6056
ModuleNode.
Definition ast.h:6071
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6098
PM_NODE_ALIGNAS struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6088
PM_NODE_ALIGNAS struct pm_node * body
ModuleNode::body.
Definition ast.h:6093
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6078
pm_node_t base
The embedded base node.
Definition ast.h:6073
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6083
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6103
MultiTargetNode.
Definition ast.h:6123
PM_NODE_ALIGNAS struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6160
pm_node_t base
The embedded base node.
Definition ast.h:6125
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6180
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6140
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6190
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6170
MultiWriteNode.
Definition ast.h:6205
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6272
PM_NODE_ALIGNAS struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6242
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6252
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6282
PM_NODE_ALIGNAS struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6292
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6262
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6222
pm_node_t base
The embedded base node.
Definition ast.h:6207
NextNode.
Definition ast.h:6307
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6314
pm_node_t base
The embedded base node.
Definition ast.h:6309
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6319
NilNode.
Definition ast.h:6334
pm_node_t base
The embedded base node.
Definition ast.h:6336
NoBlockParameterNode.
Definition ast.h:6352
pm_location_t keyword_loc
NoBlockParameterNode::keyword_loc.
Definition ast.h:6364
pm_node_t base
The embedded base node.
Definition ast.h:6354
pm_location_t operator_loc
NoBlockParameterNode::operator_loc.
Definition ast.h:6359
NoKeywordsParameterNode.
Definition ast.h:6380
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6392
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6387
pm_node_t base
The embedded base node.
Definition ast.h:6382
A list of nodes in the source, most often used for lists of children.
Definition ast.h:588
size_t size
The number of nodes in the list.
Definition ast.h:590
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:596
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:593
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1086
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1091
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1103
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1097
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1109
NumberedParametersNode.
Definition ast.h:6407
pm_node_t base
The embedded base node.
Definition ast.h:6409
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6414
NumberedReferenceReadNode.
Definition ast.h:6429
pm_node_t base
The embedded base node.
Definition ast.h:6431
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6444
OptionalKeywordParameterNode.
Definition ast.h:6463
pm_node_t base
The embedded base node.
Definition ast.h:6465
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6470
PM_NODE_ALIGNAS struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6480
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6475
OptionalParameterNode.
Definition ast.h:6499
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6511
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6506
pm_node_t base
The embedded base node.
Definition ast.h:6501
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6516
PM_NODE_ALIGNAS struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6521
OrNode.
Definition ast.h:6536
PM_NODE_ALIGNAS struct pm_node * right
OrNode::right.
Definition ast.h:6564
pm_node_t base
The embedded base node.
Definition ast.h:6538
PM_NODE_ALIGNAS struct pm_node * left
OrNode::left.
Definition ast.h:6551
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6574
ParametersNode.
Definition ast.h:6590
PM_NODE_ALIGNAS struct pm_node * block
ParametersNode::block.
Definition ast.h:6627
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6597
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6602
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6612
pm_node_t base
The embedded base node.
Definition ast.h:6592
PM_NODE_ALIGNAS struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6607
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6617
PM_NODE_ALIGNAS struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6622
ParenthesesNode.
Definition ast.h:6645
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6662
pm_node_t base
The embedded base node.
Definition ast.h:6647
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6657
PM_NODE_ALIGNAS struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6652
PinnedExpressionNode.
Definition ast.h:6677
pm_node_t base
The embedded base node.
Definition ast.h:6679
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6719
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6709
PM_NODE_ALIGNAS struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6689
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6699
PinnedVariableNode.
Definition ast.h:6734
pm_node_t base
The embedded base node.
Definition ast.h:6736
PM_NODE_ALIGNAS struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6746
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6756
PostExecutionNode.
Definition ast.h:6771
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6793
pm_node_t base
The embedded base node.
Definition ast.h:6773
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6788
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6783
PM_NODE_ALIGNAS struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6778
PreExecutionNode.
Definition ast.h:6808
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6830
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6825
PM_NODE_ALIGNAS struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6815
pm_node_t base
The embedded base node.
Definition ast.h:6810
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6820
ProgramNode.
Definition ast.h:6842
pm_node_t base
The embedded base node.
Definition ast.h:6844
PM_NODE_ALIGNAS struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6854
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6849
RangeNode.
Definition ast.h:6875
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6911
pm_node_t base
The embedded base node.
Definition ast.h:6877
PM_NODE_ALIGNAS struct pm_node * right
RangeNode::right.
Definition ast.h:6904
PM_NODE_ALIGNAS struct pm_node * left
RangeNode::left.
Definition ast.h:6890
RationalNode.
Definition ast.h:6932
pm_node_t base
The embedded base node.
Definition ast.h:6934
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6952
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6943
RedoNode.
Definition ast.h:6967
pm_node_t base
The embedded base node.
Definition ast.h:6969
RegularExpressionNode.
Definition ast.h:6997
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:7014
pm_node_t base
The embedded base node.
Definition ast.h:6999
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:7019
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:7004
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:7009
RequiredKeywordParameterNode.
Definition ast.h:7038
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7050
pm_node_t base
The embedded base node.
Definition ast.h:7040
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7045
RequiredParameterNode.
Definition ast.h:7069
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7076
pm_node_t base
The embedded base node.
Definition ast.h:7071
RescueModifierNode.
Definition ast.h:7091
PM_NODE_ALIGNAS struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7098
pm_node_t base
The embedded base node.
Definition ast.h:7093
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7103
PM_NODE_ALIGNAS struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7108
RescueNode.
Definition ast.h:7128
PM_NODE_ALIGNAS struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7160
PM_NODE_ALIGNAS struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7165
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7135
PM_NODE_ALIGNAS struct pm_node * reference
RescueNode::reference.
Definition ast.h:7150
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7155
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7145
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7140
pm_node_t base
The embedded base node.
Definition ast.h:7130
RestParameterNode.
Definition ast.h:7184
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7191
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7196
pm_node_t base
The embedded base node.
Definition ast.h:7186
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7201
RetryNode.
Definition ast.h:7216
pm_node_t base
The embedded base node.
Definition ast.h:7218
ReturnNode.
Definition ast.h:7233
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7245
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7240
pm_node_t base
The embedded base node.
Definition ast.h:7235
SelfNode.
Definition ast.h:7260
pm_node_t base
The embedded base node.
Definition ast.h:7262
ShareableConstantNode.
Definition ast.h:7283
PM_NODE_ALIGNAS struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7292
pm_node_t base
The embedded base node.
Definition ast.h:7285
SingletonClassNode.
Definition ast.h:7307
PM_NODE_ALIGNAS struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7334
pm_node_t base
The embedded base node.
Definition ast.h:7309
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7314
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7324
PM_NODE_ALIGNAS struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7329
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7339
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7319
SourceEncodingNode.
Definition ast.h:7354
pm_node_t base
The embedded base node.
Definition ast.h:7356
SourceFileNode.
Definition ast.h:7377
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7386
pm_node_t base
The embedded base node.
Definition ast.h:7379
SourceLineNode.
Definition ast.h:7401
pm_node_t base
The embedded base node.
Definition ast.h:7403
SplatNode.
Definition ast.h:7418
pm_node_t base
The embedded base node.
Definition ast.h:7420
PM_NODE_ALIGNAS struct pm_node * expression
SplatNode::expression.
Definition ast.h:7430
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7425
StatementsNode.
Definition ast.h:7445
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7452
pm_node_t base
The embedded base node.
Definition ast.h:7447
StringNode.
Definition ast.h:7479
pm_node_t base
The embedded base node.
Definition ast.h:7481
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7501
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7491
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7496
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7486
A generic string type that can have various ownership semantics.
Definition stringy.h:18
SuperNode.
Definition ast.h:7521
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7540
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7533
pm_node_t base
The embedded base node.
Definition ast.h:7523
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7528
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7545
PM_NODE_ALIGNAS struct pm_node * block
SuperNode::block.
Definition ast.h:7550
SymbolNode.
Definition ast.h:7573
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7580
pm_location_t content_loc
SymbolNode::content_loc.
Definition ast.h:7585
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7590
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7595
pm_node_t base
The embedded base node.
Definition ast.h:7575
This struct represents a token in the Ruby source.
Definition ast.h:547
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:555
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:552
pm_token_type_t type
The type of the token.
Definition ast.h:549
TrueNode.
Definition ast.h:7610
pm_node_t base
The embedded base node.
Definition ast.h:7612
UndefNode.
Definition ast.h:7627
pm_node_t base
The embedded base node.
Definition ast.h:7629
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7639
struct pm_node_list names
UndefNode::names.
Definition ast.h:7634
UnlessNode.
Definition ast.h:7657
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7695
PM_NODE_ALIGNAS struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7685
PM_NODE_ALIGNAS struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7706
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7726
PM_NODE_ALIGNAS struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7716
pm_node_t base
The embedded base node.
Definition ast.h:7659
pm_location_t unless_keyword_loc
UnlessNode::unless_keyword_loc.
Definition ast.h:7672
UntilNode.
Definition ast.h:7747
pm_location_t end_keyword_loc
UntilNode::end_keyword_loc.
Definition ast.h:7764
pm_location_t until_keyword_loc
UntilNode::until_keyword_loc.
Definition ast.h:7754
pm_node_t base
The embedded base node.
Definition ast.h:7749
PM_NODE_ALIGNAS struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7774
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7759
PM_NODE_ALIGNAS struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7769
WhenNode.
Definition ast.h:7791
pm_location_t when_keyword_loc
WhenNode::when_keyword_loc.
Definition ast.h:7798
pm_node_t base
The embedded base node.
Definition ast.h:7793
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7808
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7813
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7803
WhileNode.
Definition ast.h:7834
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7861
pm_location_t while_keyword_loc
WhileNode::while_keyword_loc.
Definition ast.h:7841
pm_location_t end_keyword_loc
WhileNode::end_keyword_loc.
Definition ast.h:7851
pm_node_t base
The embedded base node.
Definition ast.h:7836
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7846
PM_NODE_ALIGNAS struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7856
XStringNode.
Definition ast.h:7880
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7897
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7887
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7892
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7902
pm_node_t base
The embedded base node.
Definition ast.h:7882
YieldNode.
Definition ast.h:7917
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7924
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7929
pm_node_t base
The embedded base node.
Definition ast.h:7919
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7939
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7934