Ruby 4.1.0dev (2026-04-17 revision 11e3c78b61da705c783dd12fb7f158c0d256ede0)
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_PARENTHESIS_RIGHT,
73
75 PM_TOKEN_PIPE,
76
78 PM_TOKEN_SEMICOLON,
79
81 PM_TOKEN_AMPERSAND,
82
84 PM_TOKEN_AMPERSAND_AMPERSAND,
85
87 PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL,
88
90 PM_TOKEN_AMPERSAND_DOT,
91
93 PM_TOKEN_AMPERSAND_EQUAL,
94
96 PM_TOKEN_BACKTICK,
97
99 PM_TOKEN_BACK_REFERENCE,
100
102 PM_TOKEN_BANG,
103
105 PM_TOKEN_BANG_EQUAL,
106
108 PM_TOKEN_BANG_TILDE,
109
111 PM_TOKEN_BRACE_LEFT,
112
114 PM_TOKEN_BRACKET_LEFT,
115
117 PM_TOKEN_BRACKET_LEFT_ARRAY,
118
120 PM_TOKEN_BRACKET_LEFT_RIGHT,
121
123 PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL,
124
126 PM_TOKEN_BRACKET_RIGHT,
127
129 PM_TOKEN_CARET,
130
132 PM_TOKEN_CARET_EQUAL,
133
135 PM_TOKEN_CHARACTER_LITERAL,
136
138 PM_TOKEN_CLASS_VARIABLE,
139
141 PM_TOKEN_COLON,
142
144 PM_TOKEN_COLON_COLON,
145
147 PM_TOKEN_COMMENT,
148
150 PM_TOKEN_CONSTANT,
151
153 PM_TOKEN_DOT,
154
156 PM_TOKEN_DOT_DOT,
157
159 PM_TOKEN_DOT_DOT_DOT,
160
162 PM_TOKEN_EMBDOC_BEGIN,
163
165 PM_TOKEN_EMBDOC_END,
166
168 PM_TOKEN_EMBDOC_LINE,
169
171 PM_TOKEN_EMBEXPR_BEGIN,
172
174 PM_TOKEN_EMBVAR,
175
177 PM_TOKEN_EQUAL,
178
180 PM_TOKEN_EQUAL_EQUAL,
181
183 PM_TOKEN_EQUAL_EQUAL_EQUAL,
184
186 PM_TOKEN_EQUAL_GREATER,
187
189 PM_TOKEN_EQUAL_TILDE,
190
192 PM_TOKEN_FLOAT,
193
195 PM_TOKEN_FLOAT_IMAGINARY,
196
198 PM_TOKEN_FLOAT_RATIONAL,
199
201 PM_TOKEN_FLOAT_RATIONAL_IMAGINARY,
202
204 PM_TOKEN_GLOBAL_VARIABLE,
205
207 PM_TOKEN_GREATER,
208
210 PM_TOKEN_GREATER_EQUAL,
211
213 PM_TOKEN_GREATER_GREATER,
214
216 PM_TOKEN_GREATER_GREATER_EQUAL,
217
219 PM_TOKEN_HEREDOC_END,
220
222 PM_TOKEN_HEREDOC_START,
223
225 PM_TOKEN_IDENTIFIER,
226
228 PM_TOKEN_IGNORED_NEWLINE,
229
231 PM_TOKEN_INSTANCE_VARIABLE,
232
234 PM_TOKEN_INTEGER,
235
237 PM_TOKEN_INTEGER_IMAGINARY,
238
240 PM_TOKEN_INTEGER_RATIONAL,
241
243 PM_TOKEN_INTEGER_RATIONAL_IMAGINARY,
244
246 PM_TOKEN_KEYWORD_ALIAS,
247
249 PM_TOKEN_KEYWORD_AND,
250
252 PM_TOKEN_KEYWORD_BEGIN,
253
255 PM_TOKEN_KEYWORD_BEGIN_UPCASE,
256
258 PM_TOKEN_KEYWORD_BREAK,
259
261 PM_TOKEN_KEYWORD_CASE,
262
264 PM_TOKEN_KEYWORD_CLASS,
265
267 PM_TOKEN_KEYWORD_DEF,
268
270 PM_TOKEN_KEYWORD_DEFINED,
271
273 PM_TOKEN_KEYWORD_DO_BLOCK,
274
276 PM_TOKEN_KEYWORD_DO_LOOP,
277
279 PM_TOKEN_KEYWORD_END_UPCASE,
280
282 PM_TOKEN_KEYWORD_FALSE,
283
285 PM_TOKEN_KEYWORD_FOR,
286
288 PM_TOKEN_KEYWORD_IF,
289
291 PM_TOKEN_KEYWORD_IF_MODIFIER,
292
294 PM_TOKEN_KEYWORD_MODULE,
295
297 PM_TOKEN_KEYWORD_NEXT,
298
300 PM_TOKEN_KEYWORD_NIL,
301
303 PM_TOKEN_KEYWORD_NOT,
304
306 PM_TOKEN_KEYWORD_OR,
307
309 PM_TOKEN_KEYWORD_REDO,
310
312 PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
313
315 PM_TOKEN_KEYWORD_RETRY,
316
318 PM_TOKEN_KEYWORD_RETURN,
319
321 PM_TOKEN_KEYWORD_SELF,
322
324 PM_TOKEN_KEYWORD_SUPER,
325
327 PM_TOKEN_KEYWORD_TRUE,
328
330 PM_TOKEN_KEYWORD_UNDEF,
331
333 PM_TOKEN_KEYWORD_UNLESS,
334
336 PM_TOKEN_KEYWORD_UNLESS_MODIFIER,
337
339 PM_TOKEN_KEYWORD_UNTIL,
340
342 PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
343
345 PM_TOKEN_KEYWORD_WHILE,
346
348 PM_TOKEN_KEYWORD_WHILE_MODIFIER,
349
351 PM_TOKEN_KEYWORD_YIELD,
352
354 PM_TOKEN_KEYWORD___ENCODING__,
355
357 PM_TOKEN_KEYWORD___FILE__,
358
360 PM_TOKEN_KEYWORD___LINE__,
361
363 PM_TOKEN_LABEL,
364
366 PM_TOKEN_LABEL_END,
367
369 PM_TOKEN_LAMBDA_BEGIN,
370
372 PM_TOKEN_LESS,
373
375 PM_TOKEN_LESS_EQUAL,
376
378 PM_TOKEN_LESS_EQUAL_GREATER,
379
381 PM_TOKEN_LESS_LESS,
382
384 PM_TOKEN_LESS_LESS_EQUAL,
385
387 PM_TOKEN_METHOD_NAME,
388
390 PM_TOKEN_MINUS,
391
393 PM_TOKEN_MINUS_EQUAL,
394
396 PM_TOKEN_MINUS_GREATER,
397
399 PM_TOKEN_NUMBERED_REFERENCE,
400
402 PM_TOKEN_PARENTHESIS_LEFT,
403
405 PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
406
408 PM_TOKEN_PERCENT,
409
411 PM_TOKEN_PERCENT_EQUAL,
412
414 PM_TOKEN_PERCENT_LOWER_I,
415
417 PM_TOKEN_PERCENT_LOWER_W,
418
420 PM_TOKEN_PERCENT_LOWER_X,
421
423 PM_TOKEN_PERCENT_UPPER_I,
424
426 PM_TOKEN_PERCENT_UPPER_W,
427
429 PM_TOKEN_PIPE_EQUAL,
430
432 PM_TOKEN_PIPE_PIPE,
433
435 PM_TOKEN_PIPE_PIPE_EQUAL,
436
438 PM_TOKEN_PLUS,
439
441 PM_TOKEN_PLUS_EQUAL,
442
444 PM_TOKEN_QUESTION_MARK,
445
447 PM_TOKEN_REGEXP_BEGIN,
448
450 PM_TOKEN_REGEXP_END,
451
453 PM_TOKEN_SLASH,
454
456 PM_TOKEN_SLASH_EQUAL,
457
459 PM_TOKEN_STAR,
460
462 PM_TOKEN_STAR_EQUAL,
463
465 PM_TOKEN_STAR_STAR,
466
468 PM_TOKEN_STAR_STAR_EQUAL,
469
471 PM_TOKEN_STRING_BEGIN,
472
474 PM_TOKEN_STRING_CONTENT,
475
477 PM_TOKEN_STRING_END,
478
480 PM_TOKEN_SYMBOL_BEGIN,
481
483 PM_TOKEN_TILDE,
484
486 PM_TOKEN_UAMPERSAND,
487
489 PM_TOKEN_UCOLON_COLON,
490
492 PM_TOKEN_UDOT_DOT,
493
495 PM_TOKEN_UDOT_DOT_DOT,
496
498 PM_TOKEN_UMINUS,
499
501 PM_TOKEN_UMINUS_NUM,
502
504 PM_TOKEN_UPLUS,
505
507 PM_TOKEN_USTAR,
508
510 PM_TOKEN_USTAR_STAR,
511
513 PM_TOKEN_WORDS_SEP,
514
516 PM_TOKEN___END__,
517
519 PM_TOKEN_MAXIMUM,
520} pm_token_type_t;
521
526typedef struct {
528 pm_token_type_t type;
529
531 const uint8_t *start;
532
534 const uint8_t *end;
535} pm_token_t;
536
544PRISM_EXPORTED_FUNCTION const char * pm_token_type(pm_token_type_t token_type);
545
554typedef struct {
556 uint32_t start;
557
559 uint32_t length;
561
562struct pm_node;
563
567typedef struct pm_node_list {
569 size_t size;
570
572 size_t capacity;
573
575 struct pm_node **nodes;
577
581enum pm_node_type {
583 PM_ALIAS_GLOBAL_VARIABLE_NODE = 1,
584
586 PM_ALIAS_METHOD_NODE = 2,
587
589 PM_ALTERNATION_PATTERN_NODE = 3,
590
592 PM_AND_NODE = 4,
593
595 PM_ARGUMENTS_NODE = 5,
596
598 PM_ARRAY_NODE = 6,
599
601 PM_ARRAY_PATTERN_NODE = 7,
602
604 PM_ASSOC_NODE = 8,
605
607 PM_ASSOC_SPLAT_NODE = 9,
608
610 PM_BACK_REFERENCE_READ_NODE = 10,
611
613 PM_BEGIN_NODE = 11,
614
616 PM_BLOCK_ARGUMENT_NODE = 12,
617
619 PM_BLOCK_LOCAL_VARIABLE_NODE = 13,
620
622 PM_BLOCK_NODE = 14,
623
625 PM_BLOCK_PARAMETER_NODE = 15,
626
628 PM_BLOCK_PARAMETERS_NODE = 16,
629
631 PM_BREAK_NODE = 17,
632
634 PM_CALL_AND_WRITE_NODE = 18,
635
637 PM_CALL_NODE = 19,
638
640 PM_CALL_OPERATOR_WRITE_NODE = 20,
641
643 PM_CALL_OR_WRITE_NODE = 21,
644
646 PM_CALL_TARGET_NODE = 22,
647
649 PM_CAPTURE_PATTERN_NODE = 23,
650
652 PM_CASE_MATCH_NODE = 24,
653
655 PM_CASE_NODE = 25,
656
658 PM_CLASS_NODE = 26,
659
661 PM_CLASS_VARIABLE_AND_WRITE_NODE = 27,
662
664 PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 28,
665
667 PM_CLASS_VARIABLE_OR_WRITE_NODE = 29,
668
670 PM_CLASS_VARIABLE_READ_NODE = 30,
671
673 PM_CLASS_VARIABLE_TARGET_NODE = 31,
674
676 PM_CLASS_VARIABLE_WRITE_NODE = 32,
677
679 PM_CONSTANT_AND_WRITE_NODE = 33,
680
682 PM_CONSTANT_OPERATOR_WRITE_NODE = 34,
683
685 PM_CONSTANT_OR_WRITE_NODE = 35,
686
688 PM_CONSTANT_PATH_AND_WRITE_NODE = 36,
689
691 PM_CONSTANT_PATH_NODE = 37,
692
694 PM_CONSTANT_PATH_OPERATOR_WRITE_NODE = 38,
695
697 PM_CONSTANT_PATH_OR_WRITE_NODE = 39,
698
700 PM_CONSTANT_PATH_TARGET_NODE = 40,
701
703 PM_CONSTANT_PATH_WRITE_NODE = 41,
704
706 PM_CONSTANT_READ_NODE = 42,
707
709 PM_CONSTANT_TARGET_NODE = 43,
710
712 PM_CONSTANT_WRITE_NODE = 44,
713
715 PM_DEF_NODE = 45,
716
718 PM_DEFINED_NODE = 46,
719
721 PM_ELSE_NODE = 47,
722
724 PM_EMBEDDED_STATEMENTS_NODE = 48,
725
727 PM_EMBEDDED_VARIABLE_NODE = 49,
728
730 PM_ENSURE_NODE = 50,
731
733 PM_ERROR_RECOVERY_NODE = 51,
734
736 PM_FALSE_NODE = 52,
737
739 PM_FIND_PATTERN_NODE = 53,
740
742 PM_FLIP_FLOP_NODE = 54,
743
745 PM_FLOAT_NODE = 55,
746
748 PM_FOR_NODE = 56,
749
751 PM_FORWARDING_ARGUMENTS_NODE = 57,
752
754 PM_FORWARDING_PARAMETER_NODE = 58,
755
757 PM_FORWARDING_SUPER_NODE = 59,
758
760 PM_GLOBAL_VARIABLE_AND_WRITE_NODE = 60,
761
763 PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 61,
764
766 PM_GLOBAL_VARIABLE_OR_WRITE_NODE = 62,
767
769 PM_GLOBAL_VARIABLE_READ_NODE = 63,
770
772 PM_GLOBAL_VARIABLE_TARGET_NODE = 64,
773
775 PM_GLOBAL_VARIABLE_WRITE_NODE = 65,
776
778 PM_HASH_NODE = 66,
779
781 PM_HASH_PATTERN_NODE = 67,
782
784 PM_IF_NODE = 68,
785
787 PM_IMAGINARY_NODE = 69,
788
790 PM_IMPLICIT_NODE = 70,
791
793 PM_IMPLICIT_REST_NODE = 71,
794
796 PM_IN_NODE = 72,
797
799 PM_INDEX_AND_WRITE_NODE = 73,
800
802 PM_INDEX_OPERATOR_WRITE_NODE = 74,
803
805 PM_INDEX_OR_WRITE_NODE = 75,
806
808 PM_INDEX_TARGET_NODE = 76,
809
811 PM_INSTANCE_VARIABLE_AND_WRITE_NODE = 77,
812
814 PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 78,
815
817 PM_INSTANCE_VARIABLE_OR_WRITE_NODE = 79,
818
820 PM_INSTANCE_VARIABLE_READ_NODE = 80,
821
823 PM_INSTANCE_VARIABLE_TARGET_NODE = 81,
824
826 PM_INSTANCE_VARIABLE_WRITE_NODE = 82,
827
829 PM_INTEGER_NODE = 83,
830
832 PM_INTERPOLATED_MATCH_LAST_LINE_NODE = 84,
833
835 PM_INTERPOLATED_REGULAR_EXPRESSION_NODE = 85,
836
838 PM_INTERPOLATED_STRING_NODE = 86,
839
841 PM_INTERPOLATED_SYMBOL_NODE = 87,
842
844 PM_INTERPOLATED_X_STRING_NODE = 88,
845
847 PM_IT_LOCAL_VARIABLE_READ_NODE = 89,
848
850 PM_IT_PARAMETERS_NODE = 90,
851
853 PM_KEYWORD_HASH_NODE = 91,
854
856 PM_KEYWORD_REST_PARAMETER_NODE = 92,
857
859 PM_LAMBDA_NODE = 93,
860
862 PM_LOCAL_VARIABLE_AND_WRITE_NODE = 94,
863
865 PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 95,
866
868 PM_LOCAL_VARIABLE_OR_WRITE_NODE = 96,
869
871 PM_LOCAL_VARIABLE_READ_NODE = 97,
872
874 PM_LOCAL_VARIABLE_TARGET_NODE = 98,
875
877 PM_LOCAL_VARIABLE_WRITE_NODE = 99,
878
880 PM_MATCH_LAST_LINE_NODE = 100,
881
883 PM_MATCH_PREDICATE_NODE = 101,
884
886 PM_MATCH_REQUIRED_NODE = 102,
887
889 PM_MATCH_WRITE_NODE = 103,
890
892 PM_MODULE_NODE = 104,
893
895 PM_MULTI_TARGET_NODE = 105,
896
898 PM_MULTI_WRITE_NODE = 106,
899
901 PM_NEXT_NODE = 107,
902
904 PM_NIL_NODE = 108,
905
907 PM_NO_BLOCK_PARAMETER_NODE = 109,
908
910 PM_NO_KEYWORDS_PARAMETER_NODE = 110,
911
913 PM_NUMBERED_PARAMETERS_NODE = 111,
914
916 PM_NUMBERED_REFERENCE_READ_NODE = 112,
917
919 PM_OPTIONAL_KEYWORD_PARAMETER_NODE = 113,
920
922 PM_OPTIONAL_PARAMETER_NODE = 114,
923
925 PM_OR_NODE = 115,
926
928 PM_PARAMETERS_NODE = 116,
929
931 PM_PARENTHESES_NODE = 117,
932
934 PM_PINNED_EXPRESSION_NODE = 118,
935
937 PM_PINNED_VARIABLE_NODE = 119,
938
940 PM_POST_EXECUTION_NODE = 120,
941
943 PM_PRE_EXECUTION_NODE = 121,
944
946 PM_PROGRAM_NODE = 122,
947
949 PM_RANGE_NODE = 123,
950
952 PM_RATIONAL_NODE = 124,
953
955 PM_REDO_NODE = 125,
956
958 PM_REGULAR_EXPRESSION_NODE = 126,
959
961 PM_REQUIRED_KEYWORD_PARAMETER_NODE = 127,
962
964 PM_REQUIRED_PARAMETER_NODE = 128,
965
967 PM_RESCUE_MODIFIER_NODE = 129,
968
970 PM_RESCUE_NODE = 130,
971
973 PM_REST_PARAMETER_NODE = 131,
974
976 PM_RETRY_NODE = 132,
977
979 PM_RETURN_NODE = 133,
980
982 PM_SELF_NODE = 134,
983
985 PM_SHAREABLE_CONSTANT_NODE = 135,
986
988 PM_SINGLETON_CLASS_NODE = 136,
989
991 PM_SOURCE_ENCODING_NODE = 137,
992
994 PM_SOURCE_FILE_NODE = 138,
995
997 PM_SOURCE_LINE_NODE = 139,
998
1000 PM_SPLAT_NODE = 140,
1001
1003 PM_STATEMENTS_NODE = 141,
1004
1006 PM_STRING_NODE = 142,
1007
1009 PM_SUPER_NODE = 143,
1010
1012 PM_SYMBOL_NODE = 144,
1013
1015 PM_TRUE_NODE = 145,
1016
1018 PM_UNDEF_NODE = 146,
1019
1021 PM_UNLESS_NODE = 147,
1022
1024 PM_UNTIL_NODE = 148,
1025
1027 PM_WHEN_NODE = 149,
1028
1030 PM_WHILE_NODE = 150,
1031
1033 PM_X_STRING_NODE = 151,
1034
1036 PM_YIELD_NODE = 152,
1037
1039 PM_SCOPE_NODE
1040};
1041
1046typedef uint16_t pm_node_type_t;
1047
1052typedef uint16_t pm_node_flags_t;
1053
1058static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1059static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1060
1065typedef struct pm_node {
1070 pm_node_type_t type;
1071
1076 pm_node_flags_t flags;
1077
1082 uint32_t node_id;
1083
1089} pm_node_t;
1090
1094#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1095
1100#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1101
1105#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1106
1110#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1111
1115#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1116
1120#ifdef _MSC_VER
1121#define PM_NODE_ALIGNAS __declspec(align(8))
1122#else
1123#define PM_NODE_ALIGNAS PRISM_ALIGNAS(PRISM_ALIGNOF(void *))
1124#endif
1125
1172
1185typedef struct pm_alias_method_node {
1188
1203 PM_NODE_ALIGNAS struct pm_node *new_name;
1204
1219 PM_NODE_ALIGNAS struct pm_node *old_name;
1220
1231
1247
1256 PM_NODE_ALIGNAS struct pm_node *left;
1257
1266 PM_NODE_ALIGNAS struct pm_node *right;
1267
1278
1291typedef struct pm_and_node {
1294
1306 PM_NODE_ALIGNAS struct pm_node *left;
1307
1319 PM_NODE_ALIGNAS struct pm_node *right;
1320
1331
1365
1416
1511
1524typedef struct pm_assoc_node {
1527
1542 PM_NODE_ALIGNAS struct pm_node *key;
1543
1555 PM_NODE_ALIGNAS struct pm_node *value;
1556
1567
1604
1632
1647typedef struct pm_begin_node {
1650
1660
1669 PM_NODE_ALIGNAS struct pm_statements_node *statements;
1670
1679 PM_NODE_ALIGNAS struct pm_rescue_node *rescue_clause;
1680
1689 PM_NODE_ALIGNAS struct pm_else_node *else_clause;
1690
1699 PM_NODE_ALIGNAS struct pm_ensure_node *ensure_clause;
1700
1711
1748
1778
1849
1902
1979
2016
2109
2249
2352
2445
2516
2563
2632
2701
2787
2844
2886
2923
2951
2973
3034
3071
3113
3150
3182
3248
3285
3317
3354
3410
3438
3460
3521
3599
3636
3668
3700
3727
3763
3776
3782 PM_NODE_ALIGNAS struct pm_node *unexpected;
3784
3801
3823typedef struct pm_find_pattern_node {
3826
3835 PM_NODE_ALIGNAS struct pm_node *constant;
3836
3848 PM_NODE_ALIGNAS struct pm_splat_node *left;
3849
3862
3874 PM_NODE_ALIGNAS struct pm_splat_node *right;
3875
3888
3902
3918typedef struct pm_flip_flop_node {
3921
3925 PM_NODE_ALIGNAS struct pm_node *left;
3926
3930 PM_NODE_ALIGNAS struct pm_node *right;
3931
3937
3950typedef struct pm_float_node {
3953
3959 double value;
3961
4050
4069
4087
4127
4164
4206
4243
4271
4293
4354
4404
4426typedef struct pm_hash_pattern_node {
4429
4441 PM_NODE_ALIGNAS struct pm_node *constant;
4442
4452
4467 PM_NODE_ALIGNAS struct pm_node *rest;
4468
4481
4495
4514typedef struct pm_if_node {
4517
4529
4546 PM_NODE_ALIGNAS struct pm_node *predicate;
4547
4560
4573 PM_NODE_ALIGNAS struct pm_statements_node *statements;
4574
4592 PM_NODE_ALIGNAS struct pm_node *subsequent;
4593
4605} pm_if_node_t;
4606
4619typedef struct pm_imaginary_node {
4622
4626 PM_NODE_ALIGNAS struct pm_node *numeric;
4628
4647typedef struct pm_implicit_node {
4650
4654 PM_NODE_ALIGNAS struct pm_node *value;
4656
4682
4695typedef struct pm_in_node {
4698
4702 PM_NODE_ALIGNAS struct pm_node *pattern;
4703
4707 PM_NODE_ALIGNAS struct pm_statements_node *statements;
4708
4713
4718} pm_in_node_t;
4719
4782
4850
4913
4940typedef struct pm_index_target_node {
4943
4947 PM_NODE_ALIGNAS struct pm_node *receiver;
4948
4953
4957 PM_NODE_ALIGNAS struct pm_arguments_node *arguments;
4958
4963
4967 PM_NODE_ALIGNAS struct pm_block_argument_node *block;
4969
5006
5048
5085
5113
5135
5196
5226
5271
5316
5352
5384
5416
5433
5450
5475
5511
5558
5600
5647
5689
5734
5764
5842
5892
5908
5912 PM_NODE_ALIGNAS struct pm_node *value;
5913
5917 PM_NODE_ALIGNAS struct pm_node *pattern;
5918
5924
5940
5949 PM_NODE_ALIGNAS struct pm_node *value;
5950
5998 PM_NODE_ALIGNAS struct pm_node *pattern;
5999
6010
6023typedef struct pm_match_write_node {
6026
6030 PM_NODE_ALIGNAS struct pm_call_node *call;
6031
6037
6084
6171
6273
6300
6317
6345
6373
6395
6425
6461
6502
6515typedef struct pm_or_node {
6518
6530 PM_NODE_ALIGNAS struct pm_node *left;
6531
6543 PM_NODE_ALIGNAS struct pm_node *right;
6544
6554} pm_or_node_t;
6555
6569typedef struct pm_parameters_node {
6572
6577
6582
6586 PM_NODE_ALIGNAS struct pm_node *rest;
6587
6592
6597
6601 PM_NODE_ALIGNAS struct pm_node *keyword_rest;
6602
6606 PM_NODE_ALIGNAS struct pm_node *block;
6608
6643
6700
6737
6774
6811
6835
6854typedef struct pm_range_node {
6857
6869 PM_NODE_ALIGNAS struct pm_node *left;
6870
6883 PM_NODE_ALIGNAS struct pm_node *right;
6884
6892
6933
6950
7000
7031
7057
7073
7077 PM_NODE_ALIGNAS struct pm_node *expression;
7078
7083
7087 PM_NODE_ALIGNAS struct pm_node *rescue_expression;
7089
7146
7182
7199
7226
7243
7273
7320
7337
7367
7384
7397typedef struct pm_splat_node {
7400
7405
7409 PM_NODE_ALIGNAS struct pm_node *expression;
7411
7433
7482
7531
7576
7593
7620
7707
7755
7794
7842
7883
7920
7924typedef enum pm_arguments_node_flags {
7926 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING = 4,
7927
7929 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS = 8,
7930
7932 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT = 16,
7933
7935 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT = 32,
7936
7938 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
7939
7940 PM_ARGUMENTS_NODE_FLAGS_LAST,
7941} pm_arguments_node_flags_t;
7942
7946typedef enum pm_array_node_flags {
7948 PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
7949
7950 PM_ARRAY_NODE_FLAGS_LAST,
7951} pm_array_node_flags_t;
7952
7956typedef enum pm_call_node_flags {
7958 PM_CALL_NODE_FLAGS_SAFE_NAVIGATION = 4,
7959
7961 PM_CALL_NODE_FLAGS_VARIABLE_CALL = 8,
7962
7964 PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 16,
7965
7967 PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
7968
7969 PM_CALL_NODE_FLAGS_LAST,
7970} pm_call_node_flags_t;
7971
7975typedef enum pm_encoding_flags {
7977 PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING = 4,
7978
7980 PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
7981
7982 PM_ENCODING_FLAGS_LAST,
7983} pm_encoding_flags_t;
7984
7988typedef enum pm_integer_base_flags {
7990 PM_INTEGER_BASE_FLAGS_BINARY = 4,
7991
7993 PM_INTEGER_BASE_FLAGS_DECIMAL = 8,
7994
7996 PM_INTEGER_BASE_FLAGS_OCTAL = 16,
7997
7999 PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
8000
8001 PM_INTEGER_BASE_FLAGS_LAST,
8002} pm_integer_base_flags_t;
8003
8007typedef enum pm_interpolated_string_node_flags {
8009 PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN = 4,
8010
8012 PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
8013
8014 PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
8015} pm_interpolated_string_node_flags_t;
8016
8020typedef enum pm_keyword_hash_node_flags {
8022 PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
8023
8024 PM_KEYWORD_HASH_NODE_FLAGS_LAST,
8025} pm_keyword_hash_node_flags_t;
8026
8030typedef enum pm_loop_flags {
8032 PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8033
8034 PM_LOOP_FLAGS_LAST,
8035} pm_loop_flags_t;
8036
8040typedef enum pm_parameter_flags {
8042 PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8043
8044 PM_PARAMETER_FLAGS_LAST,
8045} pm_parameter_flags_t;
8046
8050typedef enum pm_parentheses_node_flags {
8052 PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8053
8054 PM_PARENTHESES_NODE_FLAGS_LAST,
8055} pm_parentheses_node_flags_t;
8056
8060typedef enum pm_range_flags {
8062 PM_RANGE_FLAGS_EXCLUDE_END = 4,
8063
8064 PM_RANGE_FLAGS_LAST,
8065} pm_range_flags_t;
8066
8070typedef enum pm_regular_expression_flags {
8072 PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 4,
8073
8075 PM_REGULAR_EXPRESSION_FLAGS_EXTENDED = 8,
8076
8078 PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 16,
8079
8081 PM_REGULAR_EXPRESSION_FLAGS_ONCE = 32,
8082
8084 PM_REGULAR_EXPRESSION_FLAGS_EUC_JP = 64,
8085
8087 PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 128,
8088
8090 PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 256,
8091
8093 PM_REGULAR_EXPRESSION_FLAGS_UTF_8 = 512,
8094
8096 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING = 1024,
8097
8099 PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING = 2048,
8100
8102 PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8103
8104 PM_REGULAR_EXPRESSION_FLAGS_LAST,
8105} pm_regular_expression_flags_t;
8106
8110typedef enum pm_shareable_constant_node_flags {
8112 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL = 4,
8113
8115 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING = 8,
8116
8118 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8119
8120 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
8121} pm_shareable_constant_node_flags_t;
8122
8126typedef enum pm_string_flags {
8128 PM_STRING_FLAGS_FORCED_UTF8_ENCODING = 4,
8129
8131 PM_STRING_FLAGS_FORCED_BINARY_ENCODING = 8,
8132
8134 PM_STRING_FLAGS_FROZEN = 16,
8135
8137 PM_STRING_FLAGS_MUTABLE = 32,
8138
8139 PM_STRING_FLAGS_LAST,
8140} pm_string_flags_t;
8141
8145typedef enum pm_symbol_flags {
8147 PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING = 4,
8148
8150 PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING = 8,
8151
8153 PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
8154
8155 PM_SYMBOL_FLAGS_LAST,
8156} pm_symbol_flags_t;
8157
8170PRISM_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);
8171
8184PRISM_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);
8185
8198PRISM_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);
8199
8212PRISM_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);
8213
8224PRISM_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);
8225
8238PRISM_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);
8239
8255PRISM_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);
8256
8269PRISM_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);
8270
8282PRISM_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);
8283
8294PRISM_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);
8295
8311PRISM_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);
8312
8324PRISM_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);
8325
8336PRISM_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);
8337
8352PRISM_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);
8353
8366PRISM_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);
8367
8381PRISM_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);
8382
8394PRISM_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);
8395
8412PRISM_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);
8413
8432PRISM_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);
8433
8451PRISM_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);
8452
8469PRISM_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);
8470
8484PRISM_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);
8485
8498PRISM_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);
8499
8514PRISM_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);
8515
8530PRISM_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);
8531
8549PRISM_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);
8550
8564PRISM_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);
8565
8580PRISM_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);
8581
8595PRISM_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);
8596
8607PRISM_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);
8608
8619PRISM_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);
8620
8634PRISM_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);
8635
8649PRISM_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);
8650
8665PRISM_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);
8666
8680PRISM_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);
8681
8694PRISM_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);
8695
8709PRISM_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);
8710
8724PRISM_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);
8725
8738PRISM_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);
8739
8753PRISM_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);
8754
8767PRISM_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);
8768
8779PRISM_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);
8780
8791PRISM_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);
8792
8806PRISM_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);
8807
8829PRISM_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);
8830
8844PRISM_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);
8845
8858PRISM_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);
8859
8872PRISM_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);
8873
8885PRISM_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);
8886
8899PRISM_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);
8900
8911PRISM_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);
8912
8922PRISM_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);
8923
8939PRISM_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);
8940
8953PRISM_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);
8954
8965PRISM_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);
8966
8983PRISM_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);
8984
8994PRISM_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);
8995
9005PRISM_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);
9006
9018PRISM_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);
9019
9033PRISM_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);
9034
9049PRISM_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);
9050
9064PRISM_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);
9065
9076PRISM_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);
9077
9088PRISM_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);
9089
9103PRISM_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);
9104
9117PRISM_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);
9118
9133PRISM_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);
9134
9150PRISM_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);
9151
9162PRISM_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);
9163
9174PRISM_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);
9175
9185PRISM_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);
9186
9200PRISM_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_loc, pm_location_t then_loc);
9201
9219PRISM_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);
9220
9239PRISM_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);
9240
9258PRISM_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);
9259
9274PRISM_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);
9275
9289PRISM_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);
9290
9305PRISM_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);
9306
9320PRISM_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);
9321
9332PRISM_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);
9333
9344PRISM_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);
9345
9359PRISM_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);
9360
9371PRISM_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);
9372
9385PRISM_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);
9386
9399PRISM_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);
9400
9413PRISM_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);
9414
9427PRISM_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);
9428
9441PRISM_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);
9442
9452PRISM_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);
9453
9463PRISM_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);
9464
9475PRISM_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);
9476
9489PRISM_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);
9490
9506PRISM_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);
9507
9522PRISM_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);
9523
9539PRISM_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);
9540
9555PRISM_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);
9556
9568PRISM_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);
9569
9581PRISM_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);
9582
9597PRISM_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);
9598
9612PRISM_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);
9613
9626PRISM_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 operator_loc);
9627
9640PRISM_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);
9641
9653PRISM_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);
9654
9670PRISM_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);
9671
9686PRISM_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);
9687
9704PRISM_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);
9705
9717PRISM_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);
9718
9728PRISM_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);
9729
9741PRISM_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);
9742
9754PRISM_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);
9755
9766PRISM_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);
9767
9778PRISM_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);
9779
9792PRISM_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);
9793
9807PRISM_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);
9808
9821PRISM_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);
9822
9839PRISM_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);
9840
9853PRISM_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);
9854
9868PRISM_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);
9869
9881PRISM_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);
9882
9896PRISM_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);
9897
9911PRISM_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);
9912
9924PRISM_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);
9925
9938PRISM_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);
9939
9951PRISM_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);
9952
9962PRISM_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);
9963
9977PRISM_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);
9978
9990PRISM_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);
9991
10002PRISM_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);
10003
10016PRISM_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);
10017
10034PRISM_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);
10035
10048PRISM_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);
10049
10059PRISM_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);
10060
10072PRISM_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);
10073
10083PRISM_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);
10084
10095PRISM_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);
10096
10112PRISM_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);
10113
10123PRISM_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);
10124
10135PRISM_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);
10136
10146PRISM_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);
10147
10159PRISM_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);
10160
10171PRISM_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);
10172
10186PRISM_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);
10187
10202PRISM_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);
10203
10217PRISM_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);
10218
10228PRISM_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);
10229
10241PRISM_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);
10242
10258PRISM_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 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);
10259
10274PRISM_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 keyword_loc, pm_location_t do_keyword_loc, pm_location_t closing_loc, struct pm_node *predicate, struct pm_statements_node *statements);
10275
10289PRISM_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 keyword_loc, pm_node_list_t conditions, pm_location_t then_keyword_loc, struct pm_statements_node *statements);
10290
10305PRISM_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 keyword_loc, pm_location_t do_keyword_loc, pm_location_t closing_loc, struct pm_node *predicate, struct pm_statements_node *statements);
10306
10320PRISM_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);
10321
10335PRISM_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);
10336
10343#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
10344
10345#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:1138
PM_NODE_ALIGNAS struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1150
pm_node_t base
The embedded base node.
Definition ast.h:1140
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1170
PM_NODE_ALIGNAS struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1160
AliasMethodNode.
Definition ast.h:1185
PM_NODE_ALIGNAS struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1219
pm_node_t base
The embedded base node.
Definition ast.h:1187
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1229
PM_NODE_ALIGNAS struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1203
AlternationPatternNode.
Definition ast.h:1244
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1276
PM_NODE_ALIGNAS struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1256
pm_node_t base
The embedded base node.
Definition ast.h:1246
PM_NODE_ALIGNAS struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1266
AndNode.
Definition ast.h:1291
PM_NODE_ALIGNAS struct pm_node * left
AndNode::left.
Definition ast.h:1306
PM_NODE_ALIGNAS struct pm_node * right
AndNode::right.
Definition ast.h:1319
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1329
pm_node_t base
The embedded base node.
Definition ast.h:1293
ArgumentsNode.
Definition ast.h:1351
pm_node_t base
The embedded base node.
Definition ast.h:1353
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1363
ArrayNode.
Definition ast.h:1381
pm_node_t base
The embedded base node.
Definition ast.h:1383
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1414
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1390
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1402
ArrayPatternNode.
Definition ast.h:1441
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1469
PM_NODE_ALIGNAS struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1479
PM_NODE_ALIGNAS struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1459
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1499
pm_node_t base
The embedded base node.
Definition ast.h:1443
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1509
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1489
AssocNode.
Definition ast.h:1524
pm_node_t base
The embedded base node.
Definition ast.h:1526
PM_NODE_ALIGNAS struct pm_node * value
AssocNode::value.
Definition ast.h:1555
PM_NODE_ALIGNAS struct pm_node * key
AssocNode::key.
Definition ast.h:1542
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1565
AssocSplatNode.
Definition ast.h:1580
pm_node_t base
The embedded base node.
Definition ast.h:1582
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1602
PM_NODE_ALIGNAS struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1592
BackReferenceReadNode.
Definition ast.h:1617
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1630
pm_node_t base
The embedded base node.
Definition ast.h:1619
BeginNode.
Definition ast.h:1647
PM_NODE_ALIGNAS struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1689
PM_NODE_ALIGNAS struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1699
PM_NODE_ALIGNAS struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1669
PM_NODE_ALIGNAS struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1679
pm_node_t base
The embedded base node.
Definition ast.h:1649
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1709
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1659
BlockArgumentNode.
Definition ast.h:1724
PM_NODE_ALIGNAS struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1736
pm_node_t base
The embedded base node.
Definition ast.h:1726
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1746
BlockLocalVariableNode.
Definition ast.h:1764
pm_node_t base
The embedded base node.
Definition ast.h:1766
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1776
BlockNode.
Definition ast.h:1791
pm_node_t base
The embedded base node.
Definition ast.h:1793
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1847
PM_NODE_ALIGNAS struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1817
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1837
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1803
PM_NODE_ALIGNAS struct pm_node * body
BlockNode::body.
Definition ast.h:1827
BlockParameterNode.
Definition ast.h:1866
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1900
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1889
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1879
pm_node_t base
The embedded base node.
Definition ast.h:1868
BlockParametersNode.
Definition ast.h:1919
pm_node_t base
The embedded base node.
Definition ast.h:1921
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1949
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1935
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1977
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1963
BreakNode.
Definition ast.h:1992
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2014
pm_node_t base
The embedded base node.
Definition ast.h:1994
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:2004
CallAndWriteNode.
Definition ast.h:2035
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2097
PM_NODE_ALIGNAS struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2047
pm_node_t base
The embedded base node.
Definition ast.h:2037
PM_NODE_ALIGNAS struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2107
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2057
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2067
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2077
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2087
CallNode.
Definition ast.h:2143
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2204
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2224
pm_constant_id_t name
CallNode::name.
Definition ast.h:2184
pm_node_t base
The embedded base node.
Definition ast.h:2145
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2214
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2237
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2174
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2194
PM_NODE_ALIGNAS struct pm_node * block
CallNode::block.
Definition ast.h:2247
PM_NODE_ALIGNAS struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2161
CallOperatorWriteNode.
Definition ast.h:2268
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2310
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2330
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2340
pm_node_t base
The embedded base node.
Definition ast.h:2270
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2320
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2300
PM_NODE_ALIGNAS struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2280
PM_NODE_ALIGNAS struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2350
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2290
CallOrWriteNode.
Definition ast.h:2371
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2433
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2393
PM_NODE_ALIGNAS struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2383
pm_node_t base
The embedded base node.
Definition ast.h:2373
PM_NODE_ALIGNAS struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2443
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2423
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2413
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2403
CallTargetNode.
Definition ast.h:2472
pm_node_t base
The embedded base node.
Definition ast.h:2474
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2504
PM_NODE_ALIGNAS struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2484
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2494
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2514
CapturePatternNode.
Definition ast.h:2529
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2561
pm_node_t base
The embedded base node.
Definition ast.h:2531
PM_NODE_ALIGNAS struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2541
PM_NODE_ALIGNAS struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2551
CaseMatchNode.
Definition ast.h:2578
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2630
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2600
pm_node_t base
The embedded base node.
Definition ast.h:2580
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2620
PM_NODE_ALIGNAS struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2590
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2610
CaseNode.
Definition ast.h:2647
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2679
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2669
PM_NODE_ALIGNAS struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2659
pm_node_t base
The embedded base node.
Definition ast.h:2649
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2689
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2699
ClassNode.
Definition ast.h:2714
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2731
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2776
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2721
PM_NODE_ALIGNAS struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2756
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2746
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2785
pm_node_t base
The embedded base node.
Definition ast.h:2716
PM_NODE_ALIGNAS struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2736
PM_NODE_ALIGNAS struct pm_node * body
ClassNode::body.
Definition ast.h:2766
ClassVariableAndWriteNode.
Definition ast.h:2800
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2842
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2812
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2832
pm_node_t base
The embedded base node.
Definition ast.h:2802
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2822
ClassVariableOperatorWriteNode.
Definition ast.h:2857
pm_node_t base
The embedded base node.
Definition ast.h:2859
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2864
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2879
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2869
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2884
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2874
ClassVariableOrWriteNode.
Definition ast.h:2899
pm_node_t base
The embedded base node.
Definition ast.h:2901
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2921
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2911
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2916
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2906
ClassVariableReadNode.
Definition ast.h:2936
pm_node_t base
The embedded base node.
Definition ast.h:2938
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2949
ClassVariableTargetNode.
Definition ast.h:2964
pm_node_t base
The embedded base node.
Definition ast.h:2966
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2971
ClassVariableWriteNode.
Definition ast.h:2986
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:3009
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3022
pm_node_t base
The embedded base node.
Definition ast.h:2988
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3032
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:2999
ConstantAndWriteNode.
Definition ast.h:3047
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3064
PM_NODE_ALIGNAS struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3069
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3059
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3054
pm_node_t base
The embedded base node.
Definition ast.h:3049
A list of constant IDs.
ConstantOperatorWriteNode.
Definition ast.h:3084
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3091
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3096
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3111
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3101
PM_NODE_ALIGNAS struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3106
pm_node_t base
The embedded base node.
Definition ast.h:3086
ConstantOrWriteNode.
Definition ast.h:3126
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3143
PM_NODE_ALIGNAS struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3148
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3138
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3133
pm_node_t base
The embedded base node.
Definition ast.h:3128
ConstantPathAndWriteNode.
Definition ast.h:3163
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3170
pm_node_t base
The embedded base node.
Definition ast.h:3165
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3180
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3175
ConstantPathNode.
Definition ast.h:3195
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3233
pm_node_t base
The embedded base node.
Definition ast.h:3197
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3213
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3246
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3220
ConstantPathOperatorWriteNode.
Definition ast.h:3261
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3268
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3283
pm_node_t base
The embedded base node.
Definition ast.h:3263
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3273
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3278
ConstantPathOrWriteNode.
Definition ast.h:3298
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3310
pm_node_t base
The embedded base node.
Definition ast.h:3300
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3315
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3305
ConstantPathTargetNode.
Definition ast.h:3330
pm_node_t base
The embedded base node.
Definition ast.h:3332
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3347
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3342
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3337
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3352
ConstantPathWriteNode.
Definition ast.h:3373
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3408
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3398
pm_node_t base
The embedded base node.
Definition ast.h:3375
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3388
ConstantReadNode.
Definition ast.h:3423
pm_node_t base
The embedded base node.
Definition ast.h:3425
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3436
ConstantTargetNode.
Definition ast.h:3451
pm_node_t base
The embedded base node.
Definition ast.h:3453
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3458
ConstantWriteNode.
Definition ast.h:3473
pm_node_t base
The embedded base node.
Definition ast.h:3475
PM_NODE_ALIGNAS struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3509
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3486
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3496
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3519
DefNode.
Definition ast.h:3535
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3597
pm_constant_id_t name
DefNode::name.
Definition ast.h:3542
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3547
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3587
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3557
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3592
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3572
pm_node_t base
The embedded base node.
Definition ast.h:3537
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3582
PM_NODE_ALIGNAS struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3552
PM_NODE_ALIGNAS struct pm_node * body
DefNode::body.
Definition ast.h:3562
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3577
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3567
DefinedNode.
Definition ast.h:3612
PM_NODE_ALIGNAS struct pm_node * value
DefinedNode::value.
Definition ast.h:3624
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3619
pm_node_t base
The embedded base node.
Definition ast.h:3614
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3629
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3634
ElseNode.
Definition ast.h:3649
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3656
pm_node_t base
The embedded base node.
Definition ast.h:3651
PM_NODE_ALIGNAS struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3661
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3666
EmbeddedStatementsNode.
Definition ast.h:3681
PM_NODE_ALIGNAS struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3693
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3698
pm_node_t base
The embedded base node.
Definition ast.h:3683
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3688
EmbeddedVariableNode.
Definition ast.h:3713
PM_NODE_ALIGNAS struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3725
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3720
pm_node_t base
The embedded base node.
Definition ast.h:3715
EnsureNode.
Definition ast.h:3744
PM_NODE_ALIGNAS struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3756
pm_node_t base
The embedded base node.
Definition ast.h:3746
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3751
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3761
ErrorRecoveryNode.
Definition ast.h:3773
PM_NODE_ALIGNAS struct pm_node * unexpected
ErrorRecoveryNode::unexpected.
Definition ast.h:3782
pm_node_t base
The embedded base node.
Definition ast.h:3775
FalseNode.
Definition ast.h:3797
pm_node_t base
The embedded base node.
Definition ast.h:3799
FindPatternNode.
Definition ast.h:3823
PM_NODE_ALIGNAS struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3848
PM_NODE_ALIGNAS struct pm_splat_node * right
FindPatternNode::right.
Definition ast.h:3874
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3887
pm_node_t base
The embedded base node.
Definition ast.h:3825
PM_NODE_ALIGNAS struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3835
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3861
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3900
FlipFlopNode.
Definition ast.h:3918
PM_NODE_ALIGNAS struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3925
pm_node_t base
The embedded base node.
Definition ast.h:3920
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3935
PM_NODE_ALIGNAS struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3930
FloatNode.
Definition ast.h:3950
double value
FloatNode::value.
Definition ast.h:3959
pm_node_t base
The embedded base node.
Definition ast.h:3952
ForNode.
Definition ast.h:3974
PM_NODE_ALIGNAS struct pm_node * index
ForNode::index.
Definition ast.h:3986
PM_NODE_ALIGNAS struct pm_node * collection
ForNode::collection.
Definition ast.h:3996
pm_node_t base
The embedded base node.
Definition ast.h:3976
PM_NODE_ALIGNAS struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:4008
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4048
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4018
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4038
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4028
ForwardingArgumentsNode.
Definition ast.h:4065
pm_node_t base
The embedded base node.
Definition ast.h:4067
ForwardingParameterNode.
Definition ast.h:4083
pm_node_t base
The embedded base node.
Definition ast.h:4085
ForwardingSuperNode.
Definition ast.h:4105
pm_node_t base
The embedded base node.
Definition ast.h:4107
PM_NODE_ALIGNAS struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4125
pm_location_t keyword_loc
ForwardingSuperNode::keyword_loc.
Definition ast.h:4118
GlobalVariableAndWriteNode.
Definition ast.h:4140
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4157
pm_node_t base
The embedded base node.
Definition ast.h:4142
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4162
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4152
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4147
GlobalVariableOperatorWriteNode.
Definition ast.h:4177
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4199
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4184
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4204
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4189
pm_node_t base
The embedded base node.
Definition ast.h:4179
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4194
GlobalVariableOrWriteNode.
Definition ast.h:4219
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4226
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4231
pm_node_t base
The embedded base node.
Definition ast.h:4221
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4236
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4241
GlobalVariableReadNode.
Definition ast.h:4256
pm_node_t base
The embedded base node.
Definition ast.h:4258
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4269
GlobalVariableTargetNode.
Definition ast.h:4284
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4291
pm_node_t base
The embedded base node.
Definition ast.h:4286
GlobalVariableWriteNode.
Definition ast.h:4306
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4329
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4352
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4319
pm_node_t base
The embedded base node.
Definition ast.h:4308
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4342
HashNode.
Definition ast.h:4367
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4392
pm_node_t base
The embedded base node.
Definition ast.h:4369
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4402
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4379
HashPatternNode.
Definition ast.h:4426
PM_NODE_ALIGNAS struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4441
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4451
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4480
pm_node_t base
The embedded base node.
Definition ast.h:4428
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4493
PM_NODE_ALIGNAS struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4467
IfNode.
Definition ast.h:4514
PM_NODE_ALIGNAS struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4546
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4604
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4528
PM_NODE_ALIGNAS struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4573
pm_node_t base
The embedded base node.
Definition ast.h:4516
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4559
PM_NODE_ALIGNAS struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4592
ImaginaryNode.
Definition ast.h:4619
pm_node_t base
The embedded base node.
Definition ast.h:4621
PM_NODE_ALIGNAS struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4626
ImplicitNode.
Definition ast.h:4647
pm_node_t base
The embedded base node.
Definition ast.h:4649
PM_NODE_ALIGNAS struct pm_node * value
ImplicitNode::value.
Definition ast.h:4654
ImplicitRestNode.
Definition ast.h:4678
pm_node_t base
The embedded base node.
Definition ast.h:4680
InNode.
Definition ast.h:4695
PM_NODE_ALIGNAS struct pm_node * pattern
InNode::pattern.
Definition ast.h:4702
PM_NODE_ALIGNAS struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4707
pm_node_t base
The embedded base node.
Definition ast.h:4697
pm_location_t then_loc
InNode::then_loc.
Definition ast.h:4717
pm_location_t in_loc
InNode::in_loc.
Definition ast.h:4712
IndexAndWriteNode.
Definition ast.h:4738
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4760
pm_node_t base
The embedded base node.
Definition ast.h:4740
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4775
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4765
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4755
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4750
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4770
PM_NODE_ALIGNAS struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4745
PM_NODE_ALIGNAS struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4780
IndexOperatorWriteNode.
Definition ast.h:4801
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4833
pm_node_t base
The embedded base node.
Definition ast.h:4803
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4808
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4843
PM_NODE_ALIGNAS struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4848
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4818
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4823
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4813
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4828
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4838
IndexOrWriteNode.
Definition ast.h:4869
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4896
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4881
pm_node_t base
The embedded base node.
Definition ast.h:4871
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4906
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4886
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4891
PM_NODE_ALIGNAS struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4911
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4876
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4901
IndexTargetNode.
Definition ast.h:4940
pm_node_t base
The embedded base node.
Definition ast.h:4942
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4957
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4962
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4967
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4952
PM_NODE_ALIGNAS struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4947
InstanceVariableAndWriteNode.
Definition ast.h:4982
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:5004
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:4999
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:4994
pm_node_t base
The embedded base node.
Definition ast.h:4984
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:4989
InstanceVariableOperatorWriteNode.
Definition ast.h:5019
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5046
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5041
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5036
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5026
pm_node_t base
The embedded base node.
Definition ast.h:5021
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5031
InstanceVariableOrWriteNode.
Definition ast.h:5061
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5078
pm_node_t base
The embedded base node.
Definition ast.h:5063
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5073
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5068
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5083
InstanceVariableReadNode.
Definition ast.h:5098
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5111
pm_node_t base
The embedded base node.
Definition ast.h:5100
InstanceVariableTargetNode.
Definition ast.h:5126
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5133
pm_node_t base
The embedded base node.
Definition ast.h:5128
InstanceVariableWriteNode.
Definition ast.h:5148
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5194
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5184
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5161
pm_node_t base
The embedded base node.
Definition ast.h:5150
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5171
IntegerNode.
Definition ast.h:5215
pm_integer_t value
IntegerNode::value.
Definition ast.h:5224
pm_node_t base
The embedded base node.
Definition ast.h:5217
A structure represents an arbitrary-sized integer.
Definition integer.h:16
InterpolatedMatchLastLineNode.
Definition ast.h:5252
pm_node_t base
The embedded base node.
Definition ast.h:5254
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5269
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5264
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5259
InterpolatedRegularExpressionNode.
Definition ast.h:5297
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5304
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5309
pm_node_t base
The embedded base node.
Definition ast.h:5299
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5314
InterpolatedStringNode.
Definition ast.h:5333
pm_node_t base
The embedded base node.
Definition ast.h:5335
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5350
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5340
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5345
InterpolatedSymbolNode.
Definition ast.h:5365
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5377
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5382
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5372
pm_node_t base
The embedded base node.
Definition ast.h:5367
InterpolatedXStringNode.
Definition ast.h:5397
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5404
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5414
pm_node_t base
The embedded base node.
Definition ast.h:5399
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5409
ItLocalVariableReadNode.
Definition ast.h:5429
pm_node_t base
The embedded base node.
Definition ast.h:5431
ItParametersNode.
Definition ast.h:5446
pm_node_t base
The embedded base node.
Definition ast.h:5448
KeywordHashNode.
Definition ast.h:5466
pm_node_t base
The embedded base node.
Definition ast.h:5468
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5473
KeywordRestParameterNode.
Definition ast.h:5492
pm_node_t base
The embedded base node.
Definition ast.h:5494
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5499
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5509
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5504
LambdaNode.
Definition ast.h:5524
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5546
pm_node_t base
The embedded base node.
Definition ast.h:5526
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5541
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5536
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5531
PM_NODE_ALIGNAS struct pm_node * body
LambdaNode::body.
Definition ast.h:5556
PM_NODE_ALIGNAS struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5551
LocalVariableAndWriteNode.
Definition ast.h:5571
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5593
pm_node_t base
The embedded base node.
Definition ast.h:5573
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5598
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5583
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5588
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5578
LocalVariableOperatorWriteNode.
Definition ast.h:5613
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5645
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5640
pm_node_t base
The embedded base node.
Definition ast.h:5615
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5620
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5625
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5630
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5635
LocalVariableOrWriteNode.
Definition ast.h:5660
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5677
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5687
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5672
pm_node_t base
The embedded base node.
Definition ast.h:5662
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5682
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5667
LocalVariableReadNode.
Definition ast.h:5702
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5732
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5719
pm_node_t base
The embedded base node.
Definition ast.h:5704
LocalVariableTargetNode.
Definition ast.h:5750
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5762
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5757
pm_node_t base
The embedded base node.
Definition ast.h:5752
LocalVariableWriteNode.
Definition ast.h:5777
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5830
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5840
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5813
pm_node_t base
The embedded base node.
Definition ast.h:5779
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5803
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5790
This struct represents a slice in the source code, defined by an offset and a length.
Definition ast.h:554
uint32_t start
The offset of the location from the start of the source.
Definition ast.h:556
uint32_t length
The length of the location.
Definition ast.h:559
MatchLastLineNode.
Definition ast.h:5868
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5880
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5875
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5885
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5890
pm_node_t base
The embedded base node.
Definition ast.h:5870
MatchPredicateNode.
Definition ast.h:5905
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition ast.h:5922
PM_NODE_ALIGNAS struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5917
PM_NODE_ALIGNAS struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5912
pm_node_t base
The embedded base node.
Definition ast.h:5907
MatchRequiredNode.
Definition ast.h:5937
pm_node_t base
The embedded base node.
Definition ast.h:5939
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6008
PM_NODE_ALIGNAS struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:5998
PM_NODE_ALIGNAS struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5949
MatchWriteNode.
Definition ast.h:6023
pm_node_t base
The embedded base node.
Definition ast.h:6025
PM_NODE_ALIGNAS struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6030
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6035
ModuleNode.
Definition ast.h:6050
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6077
PM_NODE_ALIGNAS struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6067
PM_NODE_ALIGNAS struct pm_node * body
ModuleNode::body.
Definition ast.h:6072
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6057
pm_node_t base
The embedded base node.
Definition ast.h:6052
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6062
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6082
MultiTargetNode.
Definition ast.h:6102
PM_NODE_ALIGNAS struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6139
pm_node_t base
The embedded base node.
Definition ast.h:6104
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6159
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6119
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6169
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6149
MultiWriteNode.
Definition ast.h:6184
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6251
PM_NODE_ALIGNAS struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6221
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6231
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6261
PM_NODE_ALIGNAS struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6271
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6241
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6201
pm_node_t base
The embedded base node.
Definition ast.h:6186
NextNode.
Definition ast.h:6286
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6293
pm_node_t base
The embedded base node.
Definition ast.h:6288
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6298
NilNode.
Definition ast.h:6313
pm_node_t base
The embedded base node.
Definition ast.h:6315
NoBlockParameterNode.
Definition ast.h:6331
pm_location_t keyword_loc
NoBlockParameterNode::keyword_loc.
Definition ast.h:6343
pm_node_t base
The embedded base node.
Definition ast.h:6333
pm_location_t operator_loc
NoBlockParameterNode::operator_loc.
Definition ast.h:6338
NoKeywordsParameterNode.
Definition ast.h:6359
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6371
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6366
pm_node_t base
The embedded base node.
Definition ast.h:6361
A list of nodes in the source, most often used for lists of children.
Definition ast.h:567
size_t size
The number of nodes in the list.
Definition ast.h:569
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:575
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:572
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1065
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1070
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1082
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1076
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1088
NumberedParametersNode.
Definition ast.h:6386
pm_node_t base
The embedded base node.
Definition ast.h:6388
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6393
NumberedReferenceReadNode.
Definition ast.h:6408
pm_node_t base
The embedded base node.
Definition ast.h:6410
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6423
OptionalKeywordParameterNode.
Definition ast.h:6442
pm_node_t base
The embedded base node.
Definition ast.h:6444
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6449
PM_NODE_ALIGNAS struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6459
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6454
OptionalParameterNode.
Definition ast.h:6478
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6490
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6485
pm_node_t base
The embedded base node.
Definition ast.h:6480
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6495
PM_NODE_ALIGNAS struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6500
OrNode.
Definition ast.h:6515
PM_NODE_ALIGNAS struct pm_node * right
OrNode::right.
Definition ast.h:6543
pm_node_t base
The embedded base node.
Definition ast.h:6517
PM_NODE_ALIGNAS struct pm_node * left
OrNode::left.
Definition ast.h:6530
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6553
ParametersNode.
Definition ast.h:6569
PM_NODE_ALIGNAS struct pm_node * block
ParametersNode::block.
Definition ast.h:6606
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6576
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6581
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6591
pm_node_t base
The embedded base node.
Definition ast.h:6571
PM_NODE_ALIGNAS struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6586
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6596
PM_NODE_ALIGNAS struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6601
ParenthesesNode.
Definition ast.h:6624
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6641
pm_node_t base
The embedded base node.
Definition ast.h:6626
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6636
PM_NODE_ALIGNAS struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6631
PinnedExpressionNode.
Definition ast.h:6656
pm_node_t base
The embedded base node.
Definition ast.h:6658
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6698
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6688
PM_NODE_ALIGNAS struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6668
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6678
PinnedVariableNode.
Definition ast.h:6713
pm_node_t base
The embedded base node.
Definition ast.h:6715
PM_NODE_ALIGNAS struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6725
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6735
PostExecutionNode.
Definition ast.h:6750
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6772
pm_node_t base
The embedded base node.
Definition ast.h:6752
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6767
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6762
PM_NODE_ALIGNAS struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6757
PreExecutionNode.
Definition ast.h:6787
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6809
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6804
PM_NODE_ALIGNAS struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6794
pm_node_t base
The embedded base node.
Definition ast.h:6789
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6799
ProgramNode.
Definition ast.h:6821
pm_node_t base
The embedded base node.
Definition ast.h:6823
PM_NODE_ALIGNAS struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6833
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6828
RangeNode.
Definition ast.h:6854
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6890
pm_node_t base
The embedded base node.
Definition ast.h:6856
PM_NODE_ALIGNAS struct pm_node * right
RangeNode::right.
Definition ast.h:6883
PM_NODE_ALIGNAS struct pm_node * left
RangeNode::left.
Definition ast.h:6869
RationalNode.
Definition ast.h:6911
pm_node_t base
The embedded base node.
Definition ast.h:6913
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6931
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6922
RedoNode.
Definition ast.h:6946
pm_node_t base
The embedded base node.
Definition ast.h:6948
RegularExpressionNode.
Definition ast.h:6976
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:6993
pm_node_t base
The embedded base node.
Definition ast.h:6978
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:6998
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:6983
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:6988
RequiredKeywordParameterNode.
Definition ast.h:7017
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7029
pm_node_t base
The embedded base node.
Definition ast.h:7019
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7024
RequiredParameterNode.
Definition ast.h:7048
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7055
pm_node_t base
The embedded base node.
Definition ast.h:7050
RescueModifierNode.
Definition ast.h:7070
PM_NODE_ALIGNAS struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7077
pm_node_t base
The embedded base node.
Definition ast.h:7072
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7082
PM_NODE_ALIGNAS struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7087
RescueNode.
Definition ast.h:7107
PM_NODE_ALIGNAS struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7139
PM_NODE_ALIGNAS struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7144
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7114
PM_NODE_ALIGNAS struct pm_node * reference
RescueNode::reference.
Definition ast.h:7129
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7134
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7124
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7119
pm_node_t base
The embedded base node.
Definition ast.h:7109
RestParameterNode.
Definition ast.h:7163
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7170
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7175
pm_node_t base
The embedded base node.
Definition ast.h:7165
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7180
RetryNode.
Definition ast.h:7195
pm_node_t base
The embedded base node.
Definition ast.h:7197
ReturnNode.
Definition ast.h:7212
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7224
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7219
pm_node_t base
The embedded base node.
Definition ast.h:7214
SelfNode.
Definition ast.h:7239
pm_node_t base
The embedded base node.
Definition ast.h:7241
ShareableConstantNode.
Definition ast.h:7262
PM_NODE_ALIGNAS struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7271
pm_node_t base
The embedded base node.
Definition ast.h:7264
SingletonClassNode.
Definition ast.h:7286
PM_NODE_ALIGNAS struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7313
pm_node_t base
The embedded base node.
Definition ast.h:7288
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7293
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7303
PM_NODE_ALIGNAS struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7308
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7318
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7298
SourceEncodingNode.
Definition ast.h:7333
pm_node_t base
The embedded base node.
Definition ast.h:7335
SourceFileNode.
Definition ast.h:7356
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7365
pm_node_t base
The embedded base node.
Definition ast.h:7358
SourceLineNode.
Definition ast.h:7380
pm_node_t base
The embedded base node.
Definition ast.h:7382
SplatNode.
Definition ast.h:7397
pm_node_t base
The embedded base node.
Definition ast.h:7399
PM_NODE_ALIGNAS struct pm_node * expression
SplatNode::expression.
Definition ast.h:7409
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7404
StatementsNode.
Definition ast.h:7424
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7431
pm_node_t base
The embedded base node.
Definition ast.h:7426
StringNode.
Definition ast.h:7458
pm_node_t base
The embedded base node.
Definition ast.h:7460
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7480
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7470
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7475
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7465
A generic string type that can have various ownership semantics.
Definition stringy.h:18
SuperNode.
Definition ast.h:7500
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7519
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7512
pm_node_t base
The embedded base node.
Definition ast.h:7502
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7507
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7524
PM_NODE_ALIGNAS struct pm_node * block
SuperNode::block.
Definition ast.h:7529
SymbolNode.
Definition ast.h:7552
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7559
pm_location_t value_loc
SymbolNode::value_loc.
Definition ast.h:7564
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7569
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7574
pm_node_t base
The embedded base node.
Definition ast.h:7554
This struct represents a token in the Ruby source.
Definition ast.h:526
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:534
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:531
pm_token_type_t type
The type of the token.
Definition ast.h:528
TrueNode.
Definition ast.h:7589
pm_node_t base
The embedded base node.
Definition ast.h:7591
UndefNode.
Definition ast.h:7606
pm_node_t base
The embedded base node.
Definition ast.h:7608
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7618
struct pm_node_list names
UndefNode::names.
Definition ast.h:7613
UnlessNode.
Definition ast.h:7636
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition ast.h:7651
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7674
PM_NODE_ALIGNAS struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7664
PM_NODE_ALIGNAS struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7685
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7705
PM_NODE_ALIGNAS struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7695
pm_node_t base
The embedded base node.
Definition ast.h:7638
UntilNode.
Definition ast.h:7726
pm_location_t closing_loc
UntilNode::closing_loc.
Definition ast.h:7743
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition ast.h:7733
pm_node_t base
The embedded base node.
Definition ast.h:7728
PM_NODE_ALIGNAS struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7753
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7738
PM_NODE_ALIGNAS struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7748
WhenNode.
Definition ast.h:7770
pm_node_t base
The embedded base node.
Definition ast.h:7772
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7787
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition ast.h:7777
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7792
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7782
WhileNode.
Definition ast.h:7813
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7840
pm_location_t closing_loc
WhileNode::closing_loc.
Definition ast.h:7830
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition ast.h:7820
pm_node_t base
The embedded base node.
Definition ast.h:7815
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7825
PM_NODE_ALIGNAS struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7835
XStringNode.
Definition ast.h:7859
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7876
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7866
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7871
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7881
pm_node_t base
The embedded base node.
Definition ast.h:7861
YieldNode.
Definition ast.h:7896
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7903
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7908
pm_node_t base
The embedded base node.
Definition ast.h:7898
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7918
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7913