Ruby 4.1.0dev (2026-09-07 revision b57404b461ba8bf34e802d86b0db78388216e182)
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_XSTRING_BEGIN,
532
534 PM_TOKEN___END__,
535
537 PM_TOKEN_MAXIMUM,
538} pm_token_type_t;
539
544typedef struct {
546 pm_token_type_t type;
547
549 const uint8_t *start;
550
552 const uint8_t *end;
553} pm_token_t;
554
562PRISM_EXPORTED_FUNCTION const char * pm_token_type(pm_token_type_t token_type);
563
572typedef struct {
574 uint32_t start;
575
577 uint32_t length;
579
580struct pm_node;
581
585typedef struct pm_node_list {
587 size_t size;
588
590 size_t capacity;
591
593 struct pm_node **nodes;
595
599enum pm_node_type {
601 PM_ALIAS_GLOBAL_VARIABLE_NODE = 1,
602
604 PM_ALIAS_METHOD_NODE = 2,
605
607 PM_ALTERNATION_PATTERN_NODE = 3,
608
610 PM_AND_NODE = 4,
611
613 PM_ARGUMENTS_NODE = 5,
614
616 PM_ARRAY_NODE = 6,
617
619 PM_ARRAY_PATTERN_NODE = 7,
620
622 PM_ASSOC_NODE = 8,
623
625 PM_ASSOC_SPLAT_NODE = 9,
626
628 PM_BACK_REFERENCE_READ_NODE = 10,
629
631 PM_BEGIN_NODE = 11,
632
634 PM_BLOCK_ARGUMENT_NODE = 12,
635
637 PM_BLOCK_LOCAL_VARIABLE_NODE = 13,
638
640 PM_BLOCK_NODE = 14,
641
643 PM_BLOCK_PARAMETER_NODE = 15,
644
646 PM_BLOCK_PARAMETERS_NODE = 16,
647
649 PM_BREAK_NODE = 17,
650
652 PM_CALL_AND_WRITE_NODE = 18,
653
655 PM_CALL_NODE = 19,
656
658 PM_CALL_OPERATOR_WRITE_NODE = 20,
659
661 PM_CALL_OR_WRITE_NODE = 21,
662
664 PM_CALL_TARGET_NODE = 22,
665
667 PM_CAPTURE_PATTERN_NODE = 23,
668
670 PM_CASE_MATCH_NODE = 24,
671
673 PM_CASE_NODE = 25,
674
676 PM_CLASS_NODE = 26,
677
679 PM_CLASS_VARIABLE_AND_WRITE_NODE = 27,
680
682 PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 28,
683
685 PM_CLASS_VARIABLE_OR_WRITE_NODE = 29,
686
688 PM_CLASS_VARIABLE_READ_NODE = 30,
689
691 PM_CLASS_VARIABLE_TARGET_NODE = 31,
692
694 PM_CLASS_VARIABLE_WRITE_NODE = 32,
695
697 PM_CONSTANT_AND_WRITE_NODE = 33,
698
700 PM_CONSTANT_OPERATOR_WRITE_NODE = 34,
701
703 PM_CONSTANT_OR_WRITE_NODE = 35,
704
706 PM_CONSTANT_PATH_AND_WRITE_NODE = 36,
707
709 PM_CONSTANT_PATH_NODE = 37,
710
712 PM_CONSTANT_PATH_OPERATOR_WRITE_NODE = 38,
713
715 PM_CONSTANT_PATH_OR_WRITE_NODE = 39,
716
718 PM_CONSTANT_PATH_TARGET_NODE = 40,
719
721 PM_CONSTANT_PATH_WRITE_NODE = 41,
722
724 PM_CONSTANT_READ_NODE = 42,
725
727 PM_CONSTANT_TARGET_NODE = 43,
728
730 PM_CONSTANT_WRITE_NODE = 44,
731
733 PM_DEF_NODE = 45,
734
736 PM_DEFINED_NODE = 46,
737
739 PM_ELSE_NODE = 47,
740
742 PM_EMBEDDED_STATEMENTS_NODE = 48,
743
745 PM_EMBEDDED_VARIABLE_NODE = 49,
746
748 PM_ENSURE_NODE = 50,
749
751 PM_ERROR_RECOVERY_NODE = 51,
752
754 PM_FALSE_NODE = 52,
755
757 PM_FIND_PATTERN_NODE = 53,
758
760 PM_FLIP_FLOP_NODE = 54,
761
763 PM_FLOAT_NODE = 55,
764
766 PM_FOR_NODE = 56,
767
769 PM_FORWARDING_ARGUMENTS_NODE = 57,
770
772 PM_FORWARDING_PARAMETER_NODE = 58,
773
775 PM_FORWARDING_SUPER_NODE = 59,
776
778 PM_GLOBAL_VARIABLE_AND_WRITE_NODE = 60,
779
781 PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 61,
782
784 PM_GLOBAL_VARIABLE_OR_WRITE_NODE = 62,
785
787 PM_GLOBAL_VARIABLE_READ_NODE = 63,
788
790 PM_GLOBAL_VARIABLE_TARGET_NODE = 64,
791
793 PM_GLOBAL_VARIABLE_WRITE_NODE = 65,
794
796 PM_HASH_NODE = 66,
797
799 PM_HASH_PATTERN_NODE = 67,
800
802 PM_IF_NODE = 68,
803
805 PM_IMAGINARY_NODE = 69,
806
808 PM_IMPLICIT_NODE = 70,
809
811 PM_IMPLICIT_REST_NODE = 71,
812
814 PM_IN_NODE = 72,
815
817 PM_INDEX_AND_WRITE_NODE = 73,
818
820 PM_INDEX_OPERATOR_WRITE_NODE = 74,
821
823 PM_INDEX_OR_WRITE_NODE = 75,
824
826 PM_INDEX_TARGET_NODE = 76,
827
829 PM_INSTANCE_VARIABLE_AND_WRITE_NODE = 77,
830
832 PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 78,
833
835 PM_INSTANCE_VARIABLE_OR_WRITE_NODE = 79,
836
838 PM_INSTANCE_VARIABLE_READ_NODE = 80,
839
841 PM_INSTANCE_VARIABLE_TARGET_NODE = 81,
842
844 PM_INSTANCE_VARIABLE_WRITE_NODE = 82,
845
847 PM_INTEGER_NODE = 83,
848
850 PM_INTERPOLATED_MATCH_LAST_LINE_NODE = 84,
851
853 PM_INTERPOLATED_REGULAR_EXPRESSION_NODE = 85,
854
856 PM_INTERPOLATED_STRING_NODE = 86,
857
859 PM_INTERPOLATED_SYMBOL_NODE = 87,
860
862 PM_INTERPOLATED_X_STRING_NODE = 88,
863
865 PM_IT_LOCAL_VARIABLE_READ_NODE = 89,
866
868 PM_IT_PARAMETERS_NODE = 90,
869
871 PM_KEYWORD_HASH_NODE = 91,
872
874 PM_KEYWORD_REST_PARAMETER_NODE = 92,
875
877 PM_LAMBDA_NODE = 93,
878
880 PM_LOCAL_VARIABLE_AND_WRITE_NODE = 94,
881
883 PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 95,
884
886 PM_LOCAL_VARIABLE_OR_WRITE_NODE = 96,
887
889 PM_LOCAL_VARIABLE_READ_NODE = 97,
890
892 PM_LOCAL_VARIABLE_TARGET_NODE = 98,
893
895 PM_LOCAL_VARIABLE_WRITE_NODE = 99,
896
898 PM_MATCH_LAST_LINE_NODE = 100,
899
901 PM_MATCH_PREDICATE_NODE = 101,
902
904 PM_MATCH_REQUIRED_NODE = 102,
905
907 PM_MATCH_WRITE_NODE = 103,
908
910 PM_MODULE_NODE = 104,
911
913 PM_MULTI_TARGET_NODE = 105,
914
916 PM_MULTI_WRITE_NODE = 106,
917
919 PM_NEXT_NODE = 107,
920
922 PM_NIL_NODE = 108,
923
925 PM_NO_BLOCK_PARAMETER_NODE = 109,
926
928 PM_NO_KEYWORDS_PARAMETER_NODE = 110,
929
931 PM_NUMBERED_PARAMETERS_NODE = 111,
932
934 PM_NUMBERED_REFERENCE_READ_NODE = 112,
935
937 PM_OPTIONAL_KEYWORD_PARAMETER_NODE = 113,
938
940 PM_OPTIONAL_PARAMETER_NODE = 114,
941
943 PM_OR_NODE = 115,
944
946 PM_PARAMETERS_NODE = 116,
947
949 PM_PARENTHESES_NODE = 117,
950
952 PM_PINNED_EXPRESSION_NODE = 118,
953
955 PM_PINNED_VARIABLE_NODE = 119,
956
958 PM_POST_EXECUTION_NODE = 120,
959
961 PM_PRE_EXECUTION_NODE = 121,
962
964 PM_PROGRAM_NODE = 122,
965
967 PM_RANGE_NODE = 123,
968
970 PM_RATIONAL_NODE = 124,
971
973 PM_REDO_NODE = 125,
974
976 PM_REGULAR_EXPRESSION_NODE = 126,
977
979 PM_REQUIRED_KEYWORD_PARAMETER_NODE = 127,
980
982 PM_REQUIRED_PARAMETER_NODE = 128,
983
985 PM_RESCUE_MODIFIER_NODE = 129,
986
988 PM_RESCUE_NODE = 130,
989
991 PM_REST_PARAMETER_NODE = 131,
992
994 PM_RETRY_NODE = 132,
995
997 PM_RETURN_NODE = 133,
998
1000 PM_SELF_NODE = 134,
1001
1003 PM_SHAREABLE_CONSTANT_NODE = 135,
1004
1006 PM_SINGLETON_CLASS_NODE = 136,
1007
1009 PM_SOURCE_ENCODING_NODE = 137,
1010
1012 PM_SOURCE_FILE_NODE = 138,
1013
1015 PM_SOURCE_LINE_NODE = 139,
1016
1018 PM_SPLAT_NODE = 140,
1019
1021 PM_STATEMENTS_NODE = 141,
1022
1024 PM_STRING_NODE = 142,
1025
1027 PM_SUPER_NODE = 143,
1028
1030 PM_SYMBOL_NODE = 144,
1031
1033 PM_TRUE_NODE = 145,
1034
1036 PM_UNDEF_NODE = 146,
1037
1039 PM_UNLESS_NODE = 147,
1040
1042 PM_UNTIL_NODE = 148,
1043
1045 PM_WHEN_NODE = 149,
1046
1048 PM_WHILE_NODE = 150,
1049
1051 PM_X_STRING_NODE = 151,
1052
1054 PM_YIELD_NODE = 152,
1055
1057 PM_SCOPE_NODE
1058};
1059
1064typedef uint16_t pm_node_type_t;
1065
1070typedef uint16_t pm_node_flags_t;
1071
1076static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1077static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1078
1083typedef struct pm_node {
1088 pm_node_type_t type;
1089
1094 pm_node_flags_t flags;
1095
1100 uint32_t node_id;
1101
1107} pm_node_t;
1108
1112#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1113
1118#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1119
1123#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1124
1128#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1129
1133#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1134
1138#ifdef _MSC_VER
1139#define PM_NODE_ALIGNAS __declspec(align(8))
1140#else
1141#define PM_NODE_ALIGNAS PRISM_ALIGNAS(PRISM_ALIGNOF(void *))
1142#endif
1143
1190
1203typedef struct pm_alias_method_node {
1206
1221 PM_NODE_ALIGNAS struct pm_node *new_name;
1222
1237 PM_NODE_ALIGNAS struct pm_node *old_name;
1238
1249
1265
1274 PM_NODE_ALIGNAS struct pm_node *left;
1275
1284 PM_NODE_ALIGNAS struct pm_node *right;
1285
1296
1309typedef struct pm_and_node {
1312
1324 PM_NODE_ALIGNAS struct pm_node *left;
1325
1337 PM_NODE_ALIGNAS struct pm_node *right;
1338
1349
1383
1434
1529
1542typedef struct pm_assoc_node {
1545
1560 PM_NODE_ALIGNAS struct pm_node *key;
1561
1573 PM_NODE_ALIGNAS struct pm_node *value;
1574
1585
1622
1650
1665typedef struct pm_begin_node {
1668
1678
1687 PM_NODE_ALIGNAS struct pm_statements_node *statements;
1688
1697 PM_NODE_ALIGNAS struct pm_rescue_node *rescue_clause;
1698
1707 PM_NODE_ALIGNAS struct pm_else_node *else_clause;
1708
1717 PM_NODE_ALIGNAS struct pm_ensure_node *ensure_clause;
1718
1729
1766
1796
1867
1920
1997
2034
2127
2267
2370
2463
2534
2581
2650
2719
2805
2862
2904
2941
2969
2991
3052
3089
3131
3168
3200
3266
3303
3335
3372
3428
3456
3478
3539
3617
3654
3686
3718
3745
3781
3794
3800 PM_NODE_ALIGNAS struct pm_node *unexpected;
3802
3819
3841typedef struct pm_find_pattern_node {
3844
3853 PM_NODE_ALIGNAS struct pm_node *constant;
3854
3866 PM_NODE_ALIGNAS struct pm_splat_node *left;
3867
3880
3892 PM_NODE_ALIGNAS struct pm_splat_node *right;
3893
3906
3920
3936typedef struct pm_flip_flop_node {
3939
3943 PM_NODE_ALIGNAS struct pm_node *left;
3944
3948 PM_NODE_ALIGNAS struct pm_node *right;
3949
3955
3968typedef struct pm_float_node {
3971
3977 double value;
3979
4068
4087
4105
4145
4182
4224
4261
4289
4311
4372
4422
4444typedef struct pm_hash_pattern_node {
4447
4459 PM_NODE_ALIGNAS struct pm_node *constant;
4460
4470
4485 PM_NODE_ALIGNAS struct pm_node *rest;
4486
4499
4513
4532typedef struct pm_if_node {
4535
4547
4564 PM_NODE_ALIGNAS struct pm_node *predicate;
4565
4578
4591 PM_NODE_ALIGNAS struct pm_statements_node *statements;
4592
4610 PM_NODE_ALIGNAS struct pm_node *subsequent;
4611
4623} pm_if_node_t;
4624
4637typedef struct pm_imaginary_node {
4640
4644 PM_NODE_ALIGNAS struct pm_node *numeric;
4646
4665typedef struct pm_implicit_node {
4668
4672 PM_NODE_ALIGNAS struct pm_node *value;
4674
4700
4713typedef struct pm_in_node {
4716
4720 PM_NODE_ALIGNAS struct pm_node *pattern;
4721
4725 PM_NODE_ALIGNAS struct pm_statements_node *statements;
4726
4731
4736} pm_in_node_t;
4737
4800
4868
4931
4958typedef struct pm_index_target_node {
4961
4965 PM_NODE_ALIGNAS struct pm_node *receiver;
4966
4971
4975 PM_NODE_ALIGNAS struct pm_arguments_node *arguments;
4976
4981
4985 PM_NODE_ALIGNAS struct pm_block_argument_node *block;
4987
5024
5066
5103
5131
5153
5214
5244
5289
5334
5370
5402
5434
5451
5468
5493
5529
5576
5618
5665
5707
5752
5782
5860
5910
5926
5930 PM_NODE_ALIGNAS struct pm_node *value;
5931
5935 PM_NODE_ALIGNAS struct pm_node *pattern;
5936
5942
5958
5967 PM_NODE_ALIGNAS struct pm_node *value;
5968
6016 PM_NODE_ALIGNAS struct pm_node *pattern;
6017
6028
6041typedef struct pm_match_write_node {
6044
6048 PM_NODE_ALIGNAS struct pm_call_node *call;
6049
6055
6102
6189
6291
6318
6335
6363
6391
6413
6443
6479
6520
6533typedef struct pm_or_node {
6536
6548 PM_NODE_ALIGNAS struct pm_node *left;
6549
6561 PM_NODE_ALIGNAS struct pm_node *right;
6562
6572} pm_or_node_t;
6573
6587typedef struct pm_parameters_node {
6590
6595
6600
6604 PM_NODE_ALIGNAS struct pm_node *rest;
6605
6610
6615
6619 PM_NODE_ALIGNAS struct pm_node *keyword_rest;
6620
6624 PM_NODE_ALIGNAS struct pm_node *block;
6626
6661
6718
6755
6792
6829
6853
6872typedef struct pm_range_node {
6875
6887 PM_NODE_ALIGNAS struct pm_node *left;
6888
6901 PM_NODE_ALIGNAS struct pm_node *right;
6902
6910
6951
6968
7018
7049
7075
7091
7095 PM_NODE_ALIGNAS struct pm_node *expression;
7096
7101
7105 PM_NODE_ALIGNAS struct pm_node *rescue_expression;
7107
7164
7200
7217
7244
7261
7291
7338
7355
7385
7402
7415typedef struct pm_splat_node {
7418
7423
7427 PM_NODE_ALIGNAS struct pm_node *expression;
7429
7451
7500
7549
7594
7611
7638
7725
7773
7812
7860
7901
7938
7942typedef enum pm_arguments_node_flags {
7944 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING = 4,
7945
7947 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS = 8,
7948
7950 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT = 16,
7951
7953 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT = 32,
7954
7956 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
7957
7958 PM_ARGUMENTS_NODE_FLAGS_LAST,
7959} pm_arguments_node_flags_t;
7960
7964typedef enum pm_array_node_flags {
7966 PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
7967
7968 PM_ARRAY_NODE_FLAGS_LAST,
7969} pm_array_node_flags_t;
7970
7974typedef enum pm_call_node_flags {
7976 PM_CALL_NODE_FLAGS_SAFE_NAVIGATION = 4,
7977
7979 PM_CALL_NODE_FLAGS_VARIABLE_CALL = 8,
7980
7982 PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 16,
7983
7985 PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
7986
7987 PM_CALL_NODE_FLAGS_LAST,
7988} pm_call_node_flags_t;
7989
7993typedef enum pm_encoding_flags {
7995 PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING = 4,
7996
7998 PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
7999
8000 PM_ENCODING_FLAGS_LAST,
8001} pm_encoding_flags_t;
8002
8006typedef enum pm_integer_base_flags {
8008 PM_INTEGER_BASE_FLAGS_BINARY = 4,
8009
8011 PM_INTEGER_BASE_FLAGS_DECIMAL = 8,
8012
8014 PM_INTEGER_BASE_FLAGS_OCTAL = 16,
8015
8017 PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
8018
8019 PM_INTEGER_BASE_FLAGS_LAST,
8020} pm_integer_base_flags_t;
8021
8025typedef enum pm_interpolated_string_node_flags {
8027 PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN = 4,
8028
8030 PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
8031
8032 PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
8033} pm_interpolated_string_node_flags_t;
8034
8038typedef enum pm_keyword_hash_node_flags {
8040 PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
8041
8042 PM_KEYWORD_HASH_NODE_FLAGS_LAST,
8043} pm_keyword_hash_node_flags_t;
8044
8048typedef enum pm_loop_flags {
8050 PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8051
8052 PM_LOOP_FLAGS_LAST,
8053} pm_loop_flags_t;
8054
8058typedef enum pm_parameter_flags {
8060 PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8061
8062 PM_PARAMETER_FLAGS_LAST,
8063} pm_parameter_flags_t;
8064
8068typedef enum pm_parentheses_node_flags {
8070 PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8071
8072 PM_PARENTHESES_NODE_FLAGS_LAST,
8073} pm_parentheses_node_flags_t;
8074
8078typedef enum pm_range_flags {
8080 PM_RANGE_FLAGS_EXCLUDE_END = 4,
8081
8082 PM_RANGE_FLAGS_LAST,
8083} pm_range_flags_t;
8084
8088typedef enum pm_regular_expression_flags {
8090 PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 4,
8091
8093 PM_REGULAR_EXPRESSION_FLAGS_EXTENDED = 8,
8094
8096 PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 16,
8097
8099 PM_REGULAR_EXPRESSION_FLAGS_ONCE = 32,
8100
8102 PM_REGULAR_EXPRESSION_FLAGS_EUC_JP = 64,
8103
8105 PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 128,
8106
8108 PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 256,
8109
8111 PM_REGULAR_EXPRESSION_FLAGS_UTF_8 = 512,
8112
8114 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING = 1024,
8115
8117 PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING = 2048,
8118
8120 PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8121
8122 PM_REGULAR_EXPRESSION_FLAGS_LAST,
8123} pm_regular_expression_flags_t;
8124
8128typedef enum pm_shareable_constant_node_flags {
8130 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL = 4,
8131
8133 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING = 8,
8134
8136 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8137
8138 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
8139} pm_shareable_constant_node_flags_t;
8140
8144typedef enum pm_string_flags {
8146 PM_STRING_FLAGS_FORCED_UTF8_ENCODING = 4,
8147
8149 PM_STRING_FLAGS_FORCED_BINARY_ENCODING = 8,
8150
8152 PM_STRING_FLAGS_FROZEN = 16,
8153
8155 PM_STRING_FLAGS_MUTABLE = 32,
8156
8157 PM_STRING_FLAGS_LAST,
8158} pm_string_flags_t;
8159
8163typedef enum pm_symbol_flags {
8165 PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING = 4,
8166
8168 PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING = 8,
8169
8171 PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
8172
8173 PM_SYMBOL_FLAGS_LAST,
8174} pm_symbol_flags_t;
8175
8188PRISM_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);
8189
8202PRISM_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);
8203
8216PRISM_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);
8217
8230PRISM_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);
8231
8242PRISM_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);
8243
8256PRISM_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);
8257
8273PRISM_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);
8274
8287PRISM_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);
8288
8300PRISM_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);
8301
8312PRISM_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);
8313
8329PRISM_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);
8330
8342PRISM_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);
8343
8354PRISM_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);
8355
8370PRISM_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);
8371
8384PRISM_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);
8385
8399PRISM_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);
8400
8412PRISM_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);
8413
8430PRISM_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);
8431
8450PRISM_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);
8451
8469PRISM_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);
8470
8487PRISM_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);
8488
8502PRISM_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);
8503
8516PRISM_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);
8517
8532PRISM_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);
8533
8548PRISM_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);
8549
8567PRISM_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);
8568
8582PRISM_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);
8583
8598PRISM_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);
8599
8613PRISM_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);
8614
8625PRISM_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);
8626
8637PRISM_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);
8638
8652PRISM_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);
8653
8667PRISM_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);
8668
8683PRISM_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);
8684
8698PRISM_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);
8699
8712PRISM_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);
8713
8727PRISM_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);
8728
8742PRISM_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);
8743
8756PRISM_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);
8757
8771PRISM_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);
8772
8785PRISM_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);
8786
8797PRISM_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);
8798
8809PRISM_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);
8810
8824PRISM_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);
8825
8847PRISM_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);
8848
8862PRISM_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);
8863
8876PRISM_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);
8877
8890PRISM_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);
8891
8903PRISM_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);
8904
8917PRISM_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);
8918
8929PRISM_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);
8930
8940PRISM_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);
8941
8957PRISM_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);
8958
8971PRISM_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);
8972
8983PRISM_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);
8984
9001PRISM_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);
9002
9012PRISM_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);
9013
9023PRISM_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);
9024
9036PRISM_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);
9037
9051PRISM_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);
9052
9067PRISM_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);
9068
9082PRISM_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);
9083
9094PRISM_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);
9095
9106PRISM_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);
9107
9121PRISM_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);
9122
9135PRISM_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);
9136
9151PRISM_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);
9152
9168PRISM_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);
9169
9180PRISM_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);
9181
9192PRISM_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);
9193
9203PRISM_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);
9204
9218PRISM_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);
9219
9237PRISM_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);
9238
9257PRISM_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);
9258
9276PRISM_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);
9277
9292PRISM_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);
9293
9307PRISM_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);
9308
9323PRISM_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);
9324
9338PRISM_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);
9339
9350PRISM_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);
9351
9362PRISM_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);
9363
9377PRISM_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);
9378
9389PRISM_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);
9390
9403PRISM_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);
9404
9417PRISM_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);
9418
9431PRISM_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);
9432
9445PRISM_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);
9446
9459PRISM_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);
9460
9470PRISM_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);
9471
9481PRISM_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);
9482
9493PRISM_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);
9494
9507PRISM_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);
9508
9524PRISM_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);
9525
9540PRISM_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);
9541
9557PRISM_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);
9558
9573PRISM_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);
9574
9586PRISM_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);
9587
9599PRISM_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);
9600
9615PRISM_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);
9616
9630PRISM_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);
9631
9644PRISM_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);
9645
9658PRISM_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);
9659
9671PRISM_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);
9672
9688PRISM_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);
9689
9704PRISM_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);
9705
9722PRISM_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);
9723
9735PRISM_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);
9736
9746PRISM_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);
9747
9759PRISM_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);
9760
9772PRISM_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);
9773
9784PRISM_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);
9785
9796PRISM_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);
9797
9810PRISM_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);
9811
9825PRISM_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);
9826
9839PRISM_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);
9840
9857PRISM_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);
9858
9871PRISM_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);
9872
9886PRISM_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);
9887
9899PRISM_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);
9900
9914PRISM_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);
9915
9929PRISM_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);
9930
9942PRISM_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);
9943
9956PRISM_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);
9957
9969PRISM_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);
9970
9980PRISM_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);
9981
9995PRISM_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);
9996
10008PRISM_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);
10009
10020PRISM_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);
10021
10034PRISM_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);
10035
10052PRISM_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);
10053
10066PRISM_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);
10067
10077PRISM_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);
10078
10090PRISM_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);
10091
10101PRISM_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);
10102
10113PRISM_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);
10114
10130PRISM_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);
10131
10141PRISM_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);
10142
10153PRISM_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);
10154
10164PRISM_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);
10165
10177PRISM_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);
10178
10189PRISM_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);
10190
10204PRISM_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);
10205
10220PRISM_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);
10221
10235PRISM_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 value_loc, pm_location_t closing_loc, pm_string_t unescaped);
10236
10246PRISM_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);
10247
10259PRISM_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);
10260
10276PRISM_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);
10277
10292PRISM_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);
10293
10307PRISM_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);
10308
10323PRISM_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);
10324
10338PRISM_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);
10339
10353PRISM_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);
10354
10361#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
10362
10363#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:1156
PM_NODE_ALIGNAS struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1168
pm_node_t base
The embedded base node.
Definition ast.h:1158
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1188
PM_NODE_ALIGNAS struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1178
AliasMethodNode.
Definition ast.h:1203
PM_NODE_ALIGNAS struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1237
pm_node_t base
The embedded base node.
Definition ast.h:1205
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1247
PM_NODE_ALIGNAS struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1221
AlternationPatternNode.
Definition ast.h:1262
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1294
PM_NODE_ALIGNAS struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1274
pm_node_t base
The embedded base node.
Definition ast.h:1264
PM_NODE_ALIGNAS struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1284
AndNode.
Definition ast.h:1309
PM_NODE_ALIGNAS struct pm_node * left
AndNode::left.
Definition ast.h:1324
PM_NODE_ALIGNAS struct pm_node * right
AndNode::right.
Definition ast.h:1337
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1347
pm_node_t base
The embedded base node.
Definition ast.h:1311
ArgumentsNode.
Definition ast.h:1369
pm_node_t base
The embedded base node.
Definition ast.h:1371
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1381
ArrayNode.
Definition ast.h:1399
pm_node_t base
The embedded base node.
Definition ast.h:1401
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1432
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1408
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1420
ArrayPatternNode.
Definition ast.h:1459
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1487
PM_NODE_ALIGNAS struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1497
PM_NODE_ALIGNAS struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1477
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1517
pm_node_t base
The embedded base node.
Definition ast.h:1461
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1527
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1507
AssocNode.
Definition ast.h:1542
pm_node_t base
The embedded base node.
Definition ast.h:1544
PM_NODE_ALIGNAS struct pm_node * value
AssocNode::value.
Definition ast.h:1573
PM_NODE_ALIGNAS struct pm_node * key
AssocNode::key.
Definition ast.h:1560
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1583
AssocSplatNode.
Definition ast.h:1598
pm_node_t base
The embedded base node.
Definition ast.h:1600
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1620
PM_NODE_ALIGNAS struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1610
BackReferenceReadNode.
Definition ast.h:1635
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1648
pm_node_t base
The embedded base node.
Definition ast.h:1637
BeginNode.
Definition ast.h:1665
PM_NODE_ALIGNAS struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1707
PM_NODE_ALIGNAS struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1717
PM_NODE_ALIGNAS struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1687
PM_NODE_ALIGNAS struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1697
pm_node_t base
The embedded base node.
Definition ast.h:1667
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1727
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1677
BlockArgumentNode.
Definition ast.h:1742
PM_NODE_ALIGNAS struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1754
pm_node_t base
The embedded base node.
Definition ast.h:1744
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1764
BlockLocalVariableNode.
Definition ast.h:1782
pm_node_t base
The embedded base node.
Definition ast.h:1784
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1794
BlockNode.
Definition ast.h:1809
pm_node_t base
The embedded base node.
Definition ast.h:1811
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1865
PM_NODE_ALIGNAS struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1835
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1855
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1821
PM_NODE_ALIGNAS struct pm_node * body
BlockNode::body.
Definition ast.h:1845
BlockParameterNode.
Definition ast.h:1884
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1918
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1907
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1897
pm_node_t base
The embedded base node.
Definition ast.h:1886
BlockParametersNode.
Definition ast.h:1937
pm_node_t base
The embedded base node.
Definition ast.h:1939
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1967
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1953
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1995
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1981
BreakNode.
Definition ast.h:2010
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2032
pm_node_t base
The embedded base node.
Definition ast.h:2012
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:2022
CallAndWriteNode.
Definition ast.h:2053
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2115
PM_NODE_ALIGNAS struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2065
pm_node_t base
The embedded base node.
Definition ast.h:2055
PM_NODE_ALIGNAS struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2125
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2075
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2085
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2095
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2105
CallNode.
Definition ast.h:2161
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2222
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2242
pm_constant_id_t name
CallNode::name.
Definition ast.h:2202
pm_node_t base
The embedded base node.
Definition ast.h:2163
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2232
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2255
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2192
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2212
PM_NODE_ALIGNAS struct pm_node * block
CallNode::block.
Definition ast.h:2265
PM_NODE_ALIGNAS struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2179
CallOperatorWriteNode.
Definition ast.h:2286
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2328
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2348
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2358
pm_node_t base
The embedded base node.
Definition ast.h:2288
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2338
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2318
PM_NODE_ALIGNAS struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2298
PM_NODE_ALIGNAS struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2368
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2308
CallOrWriteNode.
Definition ast.h:2389
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2451
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2411
PM_NODE_ALIGNAS struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2401
pm_node_t base
The embedded base node.
Definition ast.h:2391
PM_NODE_ALIGNAS struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2461
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2441
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2431
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2421
CallTargetNode.
Definition ast.h:2490
pm_node_t base
The embedded base node.
Definition ast.h:2492
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2522
PM_NODE_ALIGNAS struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2502
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2512
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2532
CapturePatternNode.
Definition ast.h:2547
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2579
pm_node_t base
The embedded base node.
Definition ast.h:2549
PM_NODE_ALIGNAS struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2559
PM_NODE_ALIGNAS struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2569
CaseMatchNode.
Definition ast.h:2596
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2648
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2618
pm_node_t base
The embedded base node.
Definition ast.h:2598
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2638
PM_NODE_ALIGNAS struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2608
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2628
CaseNode.
Definition ast.h:2665
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2697
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2687
PM_NODE_ALIGNAS struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2677
pm_node_t base
The embedded base node.
Definition ast.h:2667
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2707
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2717
ClassNode.
Definition ast.h:2732
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2749
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2794
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2739
PM_NODE_ALIGNAS struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2774
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2764
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2803
pm_node_t base
The embedded base node.
Definition ast.h:2734
PM_NODE_ALIGNAS struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2754
PM_NODE_ALIGNAS struct pm_node * body
ClassNode::body.
Definition ast.h:2784
ClassVariableAndWriteNode.
Definition ast.h:2818
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2860
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2830
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2850
pm_node_t base
The embedded base node.
Definition ast.h:2820
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2840
ClassVariableOperatorWriteNode.
Definition ast.h:2875
pm_node_t base
The embedded base node.
Definition ast.h:2877
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2882
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2897
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2887
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2902
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2892
ClassVariableOrWriteNode.
Definition ast.h:2917
pm_node_t base
The embedded base node.
Definition ast.h:2919
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2939
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2929
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2934
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2924
ClassVariableReadNode.
Definition ast.h:2954
pm_node_t base
The embedded base node.
Definition ast.h:2956
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2967
ClassVariableTargetNode.
Definition ast.h:2982
pm_node_t base
The embedded base node.
Definition ast.h:2984
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2989
ClassVariableWriteNode.
Definition ast.h:3004
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:3027
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3040
pm_node_t base
The embedded base node.
Definition ast.h:3006
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3050
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:3017
ConstantAndWriteNode.
Definition ast.h:3065
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3082
PM_NODE_ALIGNAS struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3087
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3077
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3072
pm_node_t base
The embedded base node.
Definition ast.h:3067
A list of constant IDs.
ConstantOperatorWriteNode.
Definition ast.h:3102
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3109
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3114
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3129
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3119
PM_NODE_ALIGNAS struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3124
pm_node_t base
The embedded base node.
Definition ast.h:3104
ConstantOrWriteNode.
Definition ast.h:3144
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3161
PM_NODE_ALIGNAS struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3166
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3156
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3151
pm_node_t base
The embedded base node.
Definition ast.h:3146
ConstantPathAndWriteNode.
Definition ast.h:3181
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3188
pm_node_t base
The embedded base node.
Definition ast.h:3183
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3198
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3193
ConstantPathNode.
Definition ast.h:3213
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3251
pm_node_t base
The embedded base node.
Definition ast.h:3215
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3231
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3264
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3238
ConstantPathOperatorWriteNode.
Definition ast.h:3279
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3286
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3301
pm_node_t base
The embedded base node.
Definition ast.h:3281
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3291
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3296
ConstantPathOrWriteNode.
Definition ast.h:3316
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3328
pm_node_t base
The embedded base node.
Definition ast.h:3318
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3333
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3323
ConstantPathTargetNode.
Definition ast.h:3348
pm_node_t base
The embedded base node.
Definition ast.h:3350
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3365
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3360
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3355
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3370
ConstantPathWriteNode.
Definition ast.h:3391
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3426
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3416
pm_node_t base
The embedded base node.
Definition ast.h:3393
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3406
ConstantReadNode.
Definition ast.h:3441
pm_node_t base
The embedded base node.
Definition ast.h:3443
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3454
ConstantTargetNode.
Definition ast.h:3469
pm_node_t base
The embedded base node.
Definition ast.h:3471
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3476
ConstantWriteNode.
Definition ast.h:3491
pm_node_t base
The embedded base node.
Definition ast.h:3493
PM_NODE_ALIGNAS struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3527
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3504
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3514
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3537
DefNode.
Definition ast.h:3553
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3615
pm_constant_id_t name
DefNode::name.
Definition ast.h:3560
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3565
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3605
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3575
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3610
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3590
pm_node_t base
The embedded base node.
Definition ast.h:3555
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3600
PM_NODE_ALIGNAS struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3570
PM_NODE_ALIGNAS struct pm_node * body
DefNode::body.
Definition ast.h:3580
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3595
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3585
DefinedNode.
Definition ast.h:3630
PM_NODE_ALIGNAS struct pm_node * value
DefinedNode::value.
Definition ast.h:3642
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3637
pm_node_t base
The embedded base node.
Definition ast.h:3632
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3647
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3652
ElseNode.
Definition ast.h:3667
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3674
pm_node_t base
The embedded base node.
Definition ast.h:3669
PM_NODE_ALIGNAS struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3679
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3684
EmbeddedStatementsNode.
Definition ast.h:3699
PM_NODE_ALIGNAS struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3711
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3716
pm_node_t base
The embedded base node.
Definition ast.h:3701
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3706
EmbeddedVariableNode.
Definition ast.h:3731
PM_NODE_ALIGNAS struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3743
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3738
pm_node_t base
The embedded base node.
Definition ast.h:3733
EnsureNode.
Definition ast.h:3762
PM_NODE_ALIGNAS struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3774
pm_node_t base
The embedded base node.
Definition ast.h:3764
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3769
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3779
ErrorRecoveryNode.
Definition ast.h:3791
PM_NODE_ALIGNAS struct pm_node * unexpected
ErrorRecoveryNode::unexpected.
Definition ast.h:3800
pm_node_t base
The embedded base node.
Definition ast.h:3793
FalseNode.
Definition ast.h:3815
pm_node_t base
The embedded base node.
Definition ast.h:3817
FindPatternNode.
Definition ast.h:3841
PM_NODE_ALIGNAS struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3866
PM_NODE_ALIGNAS struct pm_splat_node * right
FindPatternNode::right.
Definition ast.h:3892
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3905
pm_node_t base
The embedded base node.
Definition ast.h:3843
PM_NODE_ALIGNAS struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3853
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3879
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3918
FlipFlopNode.
Definition ast.h:3936
PM_NODE_ALIGNAS struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3943
pm_node_t base
The embedded base node.
Definition ast.h:3938
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3953
PM_NODE_ALIGNAS struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3948
FloatNode.
Definition ast.h:3968
double value
FloatNode::value.
Definition ast.h:3977
pm_node_t base
The embedded base node.
Definition ast.h:3970
ForNode.
Definition ast.h:3992
PM_NODE_ALIGNAS struct pm_node * index
ForNode::index.
Definition ast.h:4004
PM_NODE_ALIGNAS struct pm_node * collection
ForNode::collection.
Definition ast.h:4014
pm_node_t base
The embedded base node.
Definition ast.h:3994
PM_NODE_ALIGNAS struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:4026
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4066
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4036
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4056
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4046
ForwardingArgumentsNode.
Definition ast.h:4083
pm_node_t base
The embedded base node.
Definition ast.h:4085
ForwardingParameterNode.
Definition ast.h:4101
pm_node_t base
The embedded base node.
Definition ast.h:4103
ForwardingSuperNode.
Definition ast.h:4123
pm_node_t base
The embedded base node.
Definition ast.h:4125
PM_NODE_ALIGNAS struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4143
pm_location_t keyword_loc
ForwardingSuperNode::keyword_loc.
Definition ast.h:4136
GlobalVariableAndWriteNode.
Definition ast.h:4158
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4175
pm_node_t base
The embedded base node.
Definition ast.h:4160
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4180
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4170
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4165
GlobalVariableOperatorWriteNode.
Definition ast.h:4195
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4217
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4202
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4222
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4207
pm_node_t base
The embedded base node.
Definition ast.h:4197
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4212
GlobalVariableOrWriteNode.
Definition ast.h:4237
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4244
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4249
pm_node_t base
The embedded base node.
Definition ast.h:4239
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4254
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4259
GlobalVariableReadNode.
Definition ast.h:4274
pm_node_t base
The embedded base node.
Definition ast.h:4276
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4287
GlobalVariableTargetNode.
Definition ast.h:4302
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4309
pm_node_t base
The embedded base node.
Definition ast.h:4304
GlobalVariableWriteNode.
Definition ast.h:4324
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4347
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4370
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4337
pm_node_t base
The embedded base node.
Definition ast.h:4326
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4360
HashNode.
Definition ast.h:4385
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4410
pm_node_t base
The embedded base node.
Definition ast.h:4387
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4420
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4397
HashPatternNode.
Definition ast.h:4444
PM_NODE_ALIGNAS struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4459
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4469
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4498
pm_node_t base
The embedded base node.
Definition ast.h:4446
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4511
PM_NODE_ALIGNAS struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4485
IfNode.
Definition ast.h:4532
PM_NODE_ALIGNAS struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4564
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4622
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4546
PM_NODE_ALIGNAS struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4591
pm_node_t base
The embedded base node.
Definition ast.h:4534
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4577
PM_NODE_ALIGNAS struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4610
ImaginaryNode.
Definition ast.h:4637
pm_node_t base
The embedded base node.
Definition ast.h:4639
PM_NODE_ALIGNAS struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4644
ImplicitNode.
Definition ast.h:4665
pm_node_t base
The embedded base node.
Definition ast.h:4667
PM_NODE_ALIGNAS struct pm_node * value
ImplicitNode::value.
Definition ast.h:4672
ImplicitRestNode.
Definition ast.h:4696
pm_node_t base
The embedded base node.
Definition ast.h:4698
InNode.
Definition ast.h:4713
pm_location_t in_keyword_loc
InNode::in_keyword_loc.
Definition ast.h:4730
PM_NODE_ALIGNAS struct pm_node * pattern
InNode::pattern.
Definition ast.h:4720
PM_NODE_ALIGNAS struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4725
pm_location_t then_keyword_loc
InNode::then_keyword_loc.
Definition ast.h:4735
pm_node_t base
The embedded base node.
Definition ast.h:4715
IndexAndWriteNode.
Definition ast.h:4756
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4778
pm_node_t base
The embedded base node.
Definition ast.h:4758
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4793
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4783
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4773
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4768
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4788
PM_NODE_ALIGNAS struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4763
PM_NODE_ALIGNAS struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4798
IndexOperatorWriteNode.
Definition ast.h:4819
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4851
pm_node_t base
The embedded base node.
Definition ast.h:4821
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4826
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4861
PM_NODE_ALIGNAS struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4866
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4836
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4841
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4831
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4846
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4856
IndexOrWriteNode.
Definition ast.h:4887
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4914
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4899
pm_node_t base
The embedded base node.
Definition ast.h:4889
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4924
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4904
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4909
PM_NODE_ALIGNAS struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4929
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4894
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4919
IndexTargetNode.
Definition ast.h:4958
pm_node_t base
The embedded base node.
Definition ast.h:4960
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4975
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4980
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4985
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4970
PM_NODE_ALIGNAS struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4965
InstanceVariableAndWriteNode.
Definition ast.h:5000
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:5022
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:5017
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:5012
pm_node_t base
The embedded base node.
Definition ast.h:5002
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:5007
InstanceVariableOperatorWriteNode.
Definition ast.h:5037
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5064
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5059
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5054
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5044
pm_node_t base
The embedded base node.
Definition ast.h:5039
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5049
InstanceVariableOrWriteNode.
Definition ast.h:5079
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5096
pm_node_t base
The embedded base node.
Definition ast.h:5081
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5091
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5086
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5101
InstanceVariableReadNode.
Definition ast.h:5116
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5129
pm_node_t base
The embedded base node.
Definition ast.h:5118
InstanceVariableTargetNode.
Definition ast.h:5144
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5151
pm_node_t base
The embedded base node.
Definition ast.h:5146
InstanceVariableWriteNode.
Definition ast.h:5166
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5212
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5202
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5179
pm_node_t base
The embedded base node.
Definition ast.h:5168
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5189
IntegerNode.
Definition ast.h:5233
pm_integer_t value
IntegerNode::value.
Definition ast.h:5242
pm_node_t base
The embedded base node.
Definition ast.h:5235
A structure represents an arbitrary-sized integer.
Definition integer.h:16
InterpolatedMatchLastLineNode.
Definition ast.h:5270
pm_node_t base
The embedded base node.
Definition ast.h:5272
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5287
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5282
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5277
InterpolatedRegularExpressionNode.
Definition ast.h:5315
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5322
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5327
pm_node_t base
The embedded base node.
Definition ast.h:5317
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5332
InterpolatedStringNode.
Definition ast.h:5351
pm_node_t base
The embedded base node.
Definition ast.h:5353
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5368
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5358
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5363
InterpolatedSymbolNode.
Definition ast.h:5383
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5395
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5400
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5390
pm_node_t base
The embedded base node.
Definition ast.h:5385
InterpolatedXStringNode.
Definition ast.h:5415
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5422
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5432
pm_node_t base
The embedded base node.
Definition ast.h:5417
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5427
ItLocalVariableReadNode.
Definition ast.h:5447
pm_node_t base
The embedded base node.
Definition ast.h:5449
ItParametersNode.
Definition ast.h:5464
pm_node_t base
The embedded base node.
Definition ast.h:5466
KeywordHashNode.
Definition ast.h:5484
pm_node_t base
The embedded base node.
Definition ast.h:5486
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5491
KeywordRestParameterNode.
Definition ast.h:5510
pm_node_t base
The embedded base node.
Definition ast.h:5512
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5517
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5527
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5522
LambdaNode.
Definition ast.h:5542
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5564
pm_node_t base
The embedded base node.
Definition ast.h:5544
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5559
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5554
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5549
PM_NODE_ALIGNAS struct pm_node * body
LambdaNode::body.
Definition ast.h:5574
PM_NODE_ALIGNAS struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5569
LocalVariableAndWriteNode.
Definition ast.h:5589
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5611
pm_node_t base
The embedded base node.
Definition ast.h:5591
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5616
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5601
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5606
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5596
LocalVariableOperatorWriteNode.
Definition ast.h:5631
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5663
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5658
pm_node_t base
The embedded base node.
Definition ast.h:5633
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5638
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5643
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5648
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5653
LocalVariableOrWriteNode.
Definition ast.h:5678
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5695
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5705
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5690
pm_node_t base
The embedded base node.
Definition ast.h:5680
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5700
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5685
LocalVariableReadNode.
Definition ast.h:5720
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5750
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5737
pm_node_t base
The embedded base node.
Definition ast.h:5722
LocalVariableTargetNode.
Definition ast.h:5768
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5780
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5775
pm_node_t base
The embedded base node.
Definition ast.h:5770
LocalVariableWriteNode.
Definition ast.h:5795
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5848
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5858
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5831
pm_node_t base
The embedded base node.
Definition ast.h:5797
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5821
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5808
This struct represents a slice in the source code, defined by an offset and a length.
Definition ast.h:572
uint32_t start
The offset of the location from the start of the source.
Definition ast.h:574
uint32_t length
The length of the location.
Definition ast.h:577
MatchLastLineNode.
Definition ast.h:5886
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5898
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5893
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5903
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5908
pm_node_t base
The embedded base node.
Definition ast.h:5888
MatchPredicateNode.
Definition ast.h:5923
pm_location_t keyword_loc
MatchPredicateNode::keyword_loc.
Definition ast.h:5940
PM_NODE_ALIGNAS struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5935
PM_NODE_ALIGNAS struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5930
pm_node_t base
The embedded base node.
Definition ast.h:5925
MatchRequiredNode.
Definition ast.h:5955
pm_node_t base
The embedded base node.
Definition ast.h:5957
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6026
PM_NODE_ALIGNAS struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:6016
PM_NODE_ALIGNAS struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5967
MatchWriteNode.
Definition ast.h:6041
pm_node_t base
The embedded base node.
Definition ast.h:6043
PM_NODE_ALIGNAS struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6048
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6053
ModuleNode.
Definition ast.h:6068
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6095
PM_NODE_ALIGNAS struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6085
PM_NODE_ALIGNAS struct pm_node * body
ModuleNode::body.
Definition ast.h:6090
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6075
pm_node_t base
The embedded base node.
Definition ast.h:6070
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6080
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6100
MultiTargetNode.
Definition ast.h:6120
PM_NODE_ALIGNAS struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6157
pm_node_t base
The embedded base node.
Definition ast.h:6122
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6177
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6137
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6187
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6167
MultiWriteNode.
Definition ast.h:6202
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6269
PM_NODE_ALIGNAS struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6239
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6249
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6279
PM_NODE_ALIGNAS struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6289
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6259
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6219
pm_node_t base
The embedded base node.
Definition ast.h:6204
NextNode.
Definition ast.h:6304
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6311
pm_node_t base
The embedded base node.
Definition ast.h:6306
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6316
NilNode.
Definition ast.h:6331
pm_node_t base
The embedded base node.
Definition ast.h:6333
NoBlockParameterNode.
Definition ast.h:6349
pm_location_t keyword_loc
NoBlockParameterNode::keyword_loc.
Definition ast.h:6361
pm_node_t base
The embedded base node.
Definition ast.h:6351
pm_location_t operator_loc
NoBlockParameterNode::operator_loc.
Definition ast.h:6356
NoKeywordsParameterNode.
Definition ast.h:6377
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6389
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6384
pm_node_t base
The embedded base node.
Definition ast.h:6379
A list of nodes in the source, most often used for lists of children.
Definition ast.h:585
size_t size
The number of nodes in the list.
Definition ast.h:587
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:593
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:590
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1083
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1088
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1100
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1094
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1106
NumberedParametersNode.
Definition ast.h:6404
pm_node_t base
The embedded base node.
Definition ast.h:6406
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6411
NumberedReferenceReadNode.
Definition ast.h:6426
pm_node_t base
The embedded base node.
Definition ast.h:6428
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6441
OptionalKeywordParameterNode.
Definition ast.h:6460
pm_node_t base
The embedded base node.
Definition ast.h:6462
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6467
PM_NODE_ALIGNAS struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6477
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6472
OptionalParameterNode.
Definition ast.h:6496
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6508
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6503
pm_node_t base
The embedded base node.
Definition ast.h:6498
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6513
PM_NODE_ALIGNAS struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6518
OrNode.
Definition ast.h:6533
PM_NODE_ALIGNAS struct pm_node * right
OrNode::right.
Definition ast.h:6561
pm_node_t base
The embedded base node.
Definition ast.h:6535
PM_NODE_ALIGNAS struct pm_node * left
OrNode::left.
Definition ast.h:6548
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6571
ParametersNode.
Definition ast.h:6587
PM_NODE_ALIGNAS struct pm_node * block
ParametersNode::block.
Definition ast.h:6624
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6594
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6599
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6609
pm_node_t base
The embedded base node.
Definition ast.h:6589
PM_NODE_ALIGNAS struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6604
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6614
PM_NODE_ALIGNAS struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6619
ParenthesesNode.
Definition ast.h:6642
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6659
pm_node_t base
The embedded base node.
Definition ast.h:6644
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6654
PM_NODE_ALIGNAS struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6649
PinnedExpressionNode.
Definition ast.h:6674
pm_node_t base
The embedded base node.
Definition ast.h:6676
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6716
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6706
PM_NODE_ALIGNAS struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6686
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6696
PinnedVariableNode.
Definition ast.h:6731
pm_node_t base
The embedded base node.
Definition ast.h:6733
PM_NODE_ALIGNAS struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6743
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6753
PostExecutionNode.
Definition ast.h:6768
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6790
pm_node_t base
The embedded base node.
Definition ast.h:6770
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6785
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6780
PM_NODE_ALIGNAS struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6775
PreExecutionNode.
Definition ast.h:6805
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6827
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6822
PM_NODE_ALIGNAS struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6812
pm_node_t base
The embedded base node.
Definition ast.h:6807
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6817
ProgramNode.
Definition ast.h:6839
pm_node_t base
The embedded base node.
Definition ast.h:6841
PM_NODE_ALIGNAS struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6851
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6846
RangeNode.
Definition ast.h:6872
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6908
pm_node_t base
The embedded base node.
Definition ast.h:6874
PM_NODE_ALIGNAS struct pm_node * right
RangeNode::right.
Definition ast.h:6901
PM_NODE_ALIGNAS struct pm_node * left
RangeNode::left.
Definition ast.h:6887
RationalNode.
Definition ast.h:6929
pm_node_t base
The embedded base node.
Definition ast.h:6931
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6949
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6940
RedoNode.
Definition ast.h:6964
pm_node_t base
The embedded base node.
Definition ast.h:6966
RegularExpressionNode.
Definition ast.h:6994
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:7011
pm_node_t base
The embedded base node.
Definition ast.h:6996
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:7016
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:7001
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:7006
RequiredKeywordParameterNode.
Definition ast.h:7035
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7047
pm_node_t base
The embedded base node.
Definition ast.h:7037
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7042
RequiredParameterNode.
Definition ast.h:7066
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7073
pm_node_t base
The embedded base node.
Definition ast.h:7068
RescueModifierNode.
Definition ast.h:7088
PM_NODE_ALIGNAS struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7095
pm_node_t base
The embedded base node.
Definition ast.h:7090
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7100
PM_NODE_ALIGNAS struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7105
RescueNode.
Definition ast.h:7125
PM_NODE_ALIGNAS struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7157
PM_NODE_ALIGNAS struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7162
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7132
PM_NODE_ALIGNAS struct pm_node * reference
RescueNode::reference.
Definition ast.h:7147
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7152
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7142
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7137
pm_node_t base
The embedded base node.
Definition ast.h:7127
RestParameterNode.
Definition ast.h:7181
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7188
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7193
pm_node_t base
The embedded base node.
Definition ast.h:7183
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7198
RetryNode.
Definition ast.h:7213
pm_node_t base
The embedded base node.
Definition ast.h:7215
ReturnNode.
Definition ast.h:7230
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7242
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7237
pm_node_t base
The embedded base node.
Definition ast.h:7232
SelfNode.
Definition ast.h:7257
pm_node_t base
The embedded base node.
Definition ast.h:7259
ShareableConstantNode.
Definition ast.h:7280
PM_NODE_ALIGNAS struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7289
pm_node_t base
The embedded base node.
Definition ast.h:7282
SingletonClassNode.
Definition ast.h:7304
PM_NODE_ALIGNAS struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7331
pm_node_t base
The embedded base node.
Definition ast.h:7306
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7311
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7321
PM_NODE_ALIGNAS struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7326
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7336
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7316
SourceEncodingNode.
Definition ast.h:7351
pm_node_t base
The embedded base node.
Definition ast.h:7353
SourceFileNode.
Definition ast.h:7374
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7383
pm_node_t base
The embedded base node.
Definition ast.h:7376
SourceLineNode.
Definition ast.h:7398
pm_node_t base
The embedded base node.
Definition ast.h:7400
SplatNode.
Definition ast.h:7415
pm_node_t base
The embedded base node.
Definition ast.h:7417
PM_NODE_ALIGNAS struct pm_node * expression
SplatNode::expression.
Definition ast.h:7427
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7422
StatementsNode.
Definition ast.h:7442
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7449
pm_node_t base
The embedded base node.
Definition ast.h:7444
StringNode.
Definition ast.h:7476
pm_node_t base
The embedded base node.
Definition ast.h:7478
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7498
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7488
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7493
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7483
A generic string type that can have various ownership semantics.
Definition stringy.h:18
SuperNode.
Definition ast.h:7518
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7537
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7530
pm_node_t base
The embedded base node.
Definition ast.h:7520
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7525
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7542
PM_NODE_ALIGNAS struct pm_node * block
SuperNode::block.
Definition ast.h:7547
SymbolNode.
Definition ast.h:7570
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7577
pm_location_t value_loc
SymbolNode::value_loc.
Definition ast.h:7582
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7587
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7592
pm_node_t base
The embedded base node.
Definition ast.h:7572
This struct represents a token in the Ruby source.
Definition ast.h:544
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:552
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:549
pm_token_type_t type
The type of the token.
Definition ast.h:546
TrueNode.
Definition ast.h:7607
pm_node_t base
The embedded base node.
Definition ast.h:7609
UndefNode.
Definition ast.h:7624
pm_node_t base
The embedded base node.
Definition ast.h:7626
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7636
struct pm_node_list names
UndefNode::names.
Definition ast.h:7631
UnlessNode.
Definition ast.h:7654
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7692
PM_NODE_ALIGNAS struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7682
PM_NODE_ALIGNAS struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7703
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7723
PM_NODE_ALIGNAS struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7713
pm_node_t base
The embedded base node.
Definition ast.h:7656
pm_location_t unless_keyword_loc
UnlessNode::unless_keyword_loc.
Definition ast.h:7669
UntilNode.
Definition ast.h:7744
pm_location_t end_keyword_loc
UntilNode::end_keyword_loc.
Definition ast.h:7761
pm_location_t until_keyword_loc
UntilNode::until_keyword_loc.
Definition ast.h:7751
pm_node_t base
The embedded base node.
Definition ast.h:7746
PM_NODE_ALIGNAS struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7771
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7756
PM_NODE_ALIGNAS struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7766
WhenNode.
Definition ast.h:7788
pm_location_t when_keyword_loc
WhenNode::when_keyword_loc.
Definition ast.h:7795
pm_node_t base
The embedded base node.
Definition ast.h:7790
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7805
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7810
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7800
WhileNode.
Definition ast.h:7831
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7858
pm_location_t while_keyword_loc
WhileNode::while_keyword_loc.
Definition ast.h:7838
pm_location_t end_keyword_loc
WhileNode::end_keyword_loc.
Definition ast.h:7848
pm_node_t base
The embedded base node.
Definition ast.h:7833
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7843
PM_NODE_ALIGNAS struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7853
XStringNode.
Definition ast.h:7877
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7894
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7884
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7889
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7899
pm_node_t base
The embedded base node.
Definition ast.h:7879
YieldNode.
Definition ast.h:7914
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7921
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7926
pm_node_t base
The embedded base node.
Definition ast.h:7916
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7936
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7931