Ruby 4.1.0dev (2026-10-29 revision d5d40d27490b11b73a68f43e918199b6d386101a)
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
25#ifdef __cplusplus
26extern "C" {
27#endif
28
32typedef enum pm_token_type {
34 PM_TOKEN_EOF = 1,
35
37 PM_TOKEN_BRACE_RIGHT,
38
40 PM_TOKEN_COMMA,
41
43 PM_TOKEN_EMBEXPR_END,
44
46 PM_TOKEN_KEYWORD_DO,
47
49 PM_TOKEN_KEYWORD_ELSE,
50
52 PM_TOKEN_KEYWORD_ELSIF,
53
55 PM_TOKEN_KEYWORD_END,
56
58 PM_TOKEN_KEYWORD_ENSURE,
59
61 PM_TOKEN_KEYWORD_IN,
62
64 PM_TOKEN_KEYWORD_RESCUE,
65
67 PM_TOKEN_KEYWORD_THEN,
68
70 PM_TOKEN_KEYWORD_WHEN,
71
73 PM_TOKEN_NEWLINE,
74
76 PM_TOKEN_NEWLINE_TERMINATOR,
77
79 PM_TOKEN_PARENTHESIS_RIGHT,
80
82 PM_TOKEN_PIPE,
83
85 PM_TOKEN_SEMICOLON,
86
88 PM_TOKEN_AMPERSAND,
89
91 PM_TOKEN_AMPERSAND_AMPERSAND,
92
94 PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL,
95
97 PM_TOKEN_AMPERSAND_DOT,
98
100 PM_TOKEN_AMPERSAND_EQUAL,
101
103 PM_TOKEN_BACKTICK,
104
106 PM_TOKEN_BACK_REFERENCE,
107
109 PM_TOKEN_BANG,
110
112 PM_TOKEN_BANG_EQUAL,
113
115 PM_TOKEN_BANG_TILDE,
116
118 PM_TOKEN_BRACE_LEFT,
119
121 PM_TOKEN_BRACE_LEFT_ARGUMENT,
122
124 PM_TOKEN_BRACE_LEFT_HASH,
125
127 PM_TOKEN_BRACKET_LEFT,
128
130 PM_TOKEN_BRACKET_LEFT_ARRAY,
131
133 PM_TOKEN_BRACKET_LEFT_RIGHT,
134
136 PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL,
137
139 PM_TOKEN_BRACKET_RIGHT,
140
142 PM_TOKEN_CARET,
143
145 PM_TOKEN_CARET_EQUAL,
146
148 PM_TOKEN_CHARACTER_LITERAL,
149
151 PM_TOKEN_CLASS_VARIABLE,
152
154 PM_TOKEN_COLON,
155
157 PM_TOKEN_COLON_COLON,
158
160 PM_TOKEN_COMMENT,
161
163 PM_TOKEN_CONSTANT,
164
166 PM_TOKEN_DOT,
167
169 PM_TOKEN_DOT_DOT,
170
172 PM_TOKEN_DOT_DOT_DOT,
173
175 PM_TOKEN_EMBDOC_BEGIN,
176
178 PM_TOKEN_EMBDOC_END,
179
181 PM_TOKEN_EMBDOC_LINE,
182
184 PM_TOKEN_EMBEXPR_BEGIN,
185
187 PM_TOKEN_EMBVAR,
188
190 PM_TOKEN_EQUAL,
191
193 PM_TOKEN_EQUAL_EQUAL,
194
196 PM_TOKEN_EQUAL_EQUAL_EQUAL,
197
199 PM_TOKEN_EQUAL_GREATER,
200
202 PM_TOKEN_EQUAL_TILDE,
203
205 PM_TOKEN_FLOAT,
206
208 PM_TOKEN_FLOAT_IMAGINARY,
209
211 PM_TOKEN_FLOAT_RATIONAL,
212
214 PM_TOKEN_FLOAT_RATIONAL_IMAGINARY,
215
217 PM_TOKEN_GLOBAL_VARIABLE,
218
220 PM_TOKEN_GREATER,
221
223 PM_TOKEN_GREATER_EQUAL,
224
226 PM_TOKEN_GREATER_GREATER,
227
229 PM_TOKEN_GREATER_GREATER_EQUAL,
230
232 PM_TOKEN_HEREDOC_END,
233
235 PM_TOKEN_HEREDOC_START,
236
238 PM_TOKEN_IDENTIFIER,
239
241 PM_TOKEN_IGNORED_NEWLINE,
242
244 PM_TOKEN_INSTANCE_VARIABLE,
245
247 PM_TOKEN_INTEGER,
248
250 PM_TOKEN_INTEGER_IMAGINARY,
251
253 PM_TOKEN_INTEGER_RATIONAL,
254
256 PM_TOKEN_INTEGER_RATIONAL_IMAGINARY,
257
259 PM_TOKEN_KEYWORD_ALIAS,
260
262 PM_TOKEN_KEYWORD_AND,
263
265 PM_TOKEN_KEYWORD_BEGIN,
266
268 PM_TOKEN_KEYWORD_BEGIN_UPCASE,
269
271 PM_TOKEN_KEYWORD_BREAK,
272
274 PM_TOKEN_KEYWORD_CASE,
275
277 PM_TOKEN_KEYWORD_CLASS,
278
280 PM_TOKEN_KEYWORD_DEF,
281
283 PM_TOKEN_KEYWORD_DEFINED,
284
286 PM_TOKEN_KEYWORD_DO_BLOCK,
287
289 PM_TOKEN_KEYWORD_DO_LAMBDA,
290
292 PM_TOKEN_KEYWORD_DO_LOOP,
293
295 PM_TOKEN_KEYWORD_END_UPCASE,
296
298 PM_TOKEN_KEYWORD_FALSE,
299
301 PM_TOKEN_KEYWORD_FOR,
302
304 PM_TOKEN_KEYWORD_IF,
305
307 PM_TOKEN_KEYWORD_IF_MODIFIER,
308
310 PM_TOKEN_KEYWORD_MODULE,
311
313 PM_TOKEN_KEYWORD_NEXT,
314
316 PM_TOKEN_KEYWORD_NIL,
317
319 PM_TOKEN_KEYWORD_NOT,
320
322 PM_TOKEN_KEYWORD_OR,
323
325 PM_TOKEN_KEYWORD_REDO,
326
328 PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
329
331 PM_TOKEN_KEYWORD_RETRY,
332
334 PM_TOKEN_KEYWORD_RETURN,
335
337 PM_TOKEN_KEYWORD_SELF,
338
340 PM_TOKEN_KEYWORD_SUPER,
341
343 PM_TOKEN_KEYWORD_TRUE,
344
346 PM_TOKEN_KEYWORD_UNDEF,
347
349 PM_TOKEN_KEYWORD_UNLESS,
350
352 PM_TOKEN_KEYWORD_UNLESS_MODIFIER,
353
355 PM_TOKEN_KEYWORD_UNTIL,
356
358 PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
359
361 PM_TOKEN_KEYWORD_WHILE,
362
364 PM_TOKEN_KEYWORD_WHILE_MODIFIER,
365
367 PM_TOKEN_KEYWORD_YIELD,
368
370 PM_TOKEN_KEYWORD___ENCODING__,
371
373 PM_TOKEN_KEYWORD___FILE__,
374
376 PM_TOKEN_KEYWORD___LINE__,
377
379 PM_TOKEN_LABEL,
380
382 PM_TOKEN_LABEL_END,
383
385 PM_TOKEN_LAMBDA_BEGIN,
386
388 PM_TOKEN_LESS,
389
391 PM_TOKEN_LESS_EQUAL,
392
394 PM_TOKEN_LESS_EQUAL_GREATER,
395
397 PM_TOKEN_LESS_LESS,
398
400 PM_TOKEN_LESS_LESS_EQUAL,
401
403 PM_TOKEN_METHOD_NAME,
404
406 PM_TOKEN_MINUS,
407
409 PM_TOKEN_MINUS_EQUAL,
410
412 PM_TOKEN_MINUS_GREATER,
413
415 PM_TOKEN_NUMBERED_REFERENCE,
416
418 PM_TOKEN_PARENTHESIS_LEFT,
419
421 PM_TOKEN_PARENTHESIS_LEFT_GROUPING,
422
424 PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
425
427 PM_TOKEN_PERCENT,
428
430 PM_TOKEN_PERCENT_EQUAL,
431
433 PM_TOKEN_PERCENT_LOWER_I,
434
436 PM_TOKEN_PERCENT_LOWER_W,
437
439 PM_TOKEN_PERCENT_LOWER_X,
440
442 PM_TOKEN_PERCENT_UPPER_I,
443
445 PM_TOKEN_PERCENT_UPPER_W,
446
448 PM_TOKEN_PIPE_EQUAL,
449
451 PM_TOKEN_PIPE_PIPE,
452
454 PM_TOKEN_PIPE_PIPE_EQUAL,
455
457 PM_TOKEN_PLUS,
458
460 PM_TOKEN_PLUS_EQUAL,
461
463 PM_TOKEN_QUESTION_MARK,
464
466 PM_TOKEN_REGEXP_BEGIN,
467
469 PM_TOKEN_REGEXP_END,
470
472 PM_TOKEN_SLASH,
473
475 PM_TOKEN_SLASH_EQUAL,
476
478 PM_TOKEN_STAR,
479
481 PM_TOKEN_STAR_EQUAL,
482
484 PM_TOKEN_STAR_STAR,
485
487 PM_TOKEN_STAR_STAR_EQUAL,
488
490 PM_TOKEN_STRING_BEGIN,
491
493 PM_TOKEN_STRING_CONTENT,
494
496 PM_TOKEN_STRING_END,
497
499 PM_TOKEN_SYMBOL_BEGIN,
500
502 PM_TOKEN_TILDE,
503
505 PM_TOKEN_UAMPERSAND,
506
508 PM_TOKEN_UCOLON_COLON,
509
511 PM_TOKEN_UDOT_DOT,
512
514 PM_TOKEN_UDOT_DOT_DOT,
515
517 PM_TOKEN_UMINUS,
518
520 PM_TOKEN_UMINUS_NUM,
521
523 PM_TOKEN_UPLUS,
524
526 PM_TOKEN_USTAR,
527
529 PM_TOKEN_USTAR_STAR,
530
532 PM_TOKEN_WORDS_SEP,
533
535 PM_TOKEN_WORDS_SEP_IMPLICIT,
536
538 PM_TOKEN_XSTRING_BEGIN,
539
541 PM_TOKEN___END__,
542
544 PM_TOKEN_MAXIMUM,
545} pm_token_type_t;
546
551typedef struct {
553 pm_token_type_t type;
554
556 const uint8_t *start;
557
559 const uint8_t *end;
560} pm_token_t;
561
569PRISM_EXPORTED_FUNCTION const char * pm_token_type(pm_token_type_t token_type);
570
579typedef struct {
581 uint32_t start;
582
584 uint32_t length;
586
587struct pm_node;
588
592typedef struct pm_node_list {
594 size_t size;
595
597 size_t capacity;
598
600 struct pm_node **nodes;
602
606enum pm_node_type {
608 PM_ALIAS_GLOBAL_VARIABLE_NODE = 1,
609
611 PM_ALIAS_METHOD_NODE = 2,
612
614 PM_ALTERNATION_PATTERN_NODE = 3,
615
617 PM_AND_NODE = 4,
618
620 PM_ARGUMENTS_NODE = 5,
621
623 PM_ARRAY_NODE = 6,
624
626 PM_ARRAY_PATTERN_NODE = 7,
627
629 PM_ASSOC_NODE = 8,
630
632 PM_ASSOC_SPLAT_NODE = 9,
633
635 PM_BACK_REFERENCE_READ_NODE = 10,
636
638 PM_BEGIN_NODE = 11,
639
641 PM_BLOCK_ARGUMENT_NODE = 12,
642
644 PM_BLOCK_LOCAL_VARIABLE_NODE = 13,
645
647 PM_BLOCK_NODE = 14,
648
650 PM_BLOCK_PARAMETER_NODE = 15,
651
653 PM_BLOCK_PARAMETERS_NODE = 16,
654
656 PM_BREAK_NODE = 17,
657
659 PM_CALL_AND_WRITE_NODE = 18,
660
662 PM_CALL_NODE = 19,
663
665 PM_CALL_OPERATOR_WRITE_NODE = 20,
666
668 PM_CALL_OR_WRITE_NODE = 21,
669
671 PM_CALL_TARGET_NODE = 22,
672
674 PM_CAPTURE_PATTERN_NODE = 23,
675
677 PM_CASE_MATCH_NODE = 24,
678
680 PM_CASE_NODE = 25,
681
683 PM_CLASS_NODE = 26,
684
686 PM_CLASS_VARIABLE_AND_WRITE_NODE = 27,
687
689 PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 28,
690
692 PM_CLASS_VARIABLE_OR_WRITE_NODE = 29,
693
695 PM_CLASS_VARIABLE_READ_NODE = 30,
696
698 PM_CLASS_VARIABLE_TARGET_NODE = 31,
699
701 PM_CLASS_VARIABLE_WRITE_NODE = 32,
702
704 PM_CONSTANT_AND_WRITE_NODE = 33,
705
707 PM_CONSTANT_OPERATOR_WRITE_NODE = 34,
708
710 PM_CONSTANT_OR_WRITE_NODE = 35,
711
713 PM_CONSTANT_PATH_AND_WRITE_NODE = 36,
714
716 PM_CONSTANT_PATH_NODE = 37,
717
719 PM_CONSTANT_PATH_OPERATOR_WRITE_NODE = 38,
720
722 PM_CONSTANT_PATH_OR_WRITE_NODE = 39,
723
725 PM_CONSTANT_PATH_TARGET_NODE = 40,
726
728 PM_CONSTANT_PATH_WRITE_NODE = 41,
729
731 PM_CONSTANT_READ_NODE = 42,
732
734 PM_CONSTANT_TARGET_NODE = 43,
735
737 PM_CONSTANT_WRITE_NODE = 44,
738
740 PM_DEF_NODE = 45,
741
743 PM_DEFINED_NODE = 46,
744
746 PM_ELSE_NODE = 47,
747
749 PM_EMBEDDED_STATEMENTS_NODE = 48,
750
752 PM_EMBEDDED_VARIABLE_NODE = 49,
753
755 PM_ENSURE_NODE = 50,
756
758 PM_ERROR_RECOVERY_NODE = 51,
759
761 PM_FALSE_NODE = 52,
762
764 PM_FIND_PATTERN_NODE = 53,
765
767 PM_FLIP_FLOP_NODE = 54,
768
770 PM_FLOAT_NODE = 55,
771
773 PM_FOR_NODE = 56,
774
776 PM_FORWARDING_ARGUMENTS_NODE = 57,
777
779 PM_FORWARDING_PARAMETER_NODE = 58,
780
782 PM_FORWARDING_SUPER_NODE = 59,
783
785 PM_GLOBAL_VARIABLE_AND_WRITE_NODE = 60,
786
788 PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 61,
789
791 PM_GLOBAL_VARIABLE_OR_WRITE_NODE = 62,
792
794 PM_GLOBAL_VARIABLE_READ_NODE = 63,
795
797 PM_GLOBAL_VARIABLE_TARGET_NODE = 64,
798
800 PM_GLOBAL_VARIABLE_WRITE_NODE = 65,
801
803 PM_HASH_NODE = 66,
804
806 PM_HASH_PATTERN_NODE = 67,
807
809 PM_IF_NODE = 68,
810
812 PM_IMAGINARY_NODE = 69,
813
815 PM_IMPLICIT_NODE = 70,
816
818 PM_IMPLICIT_REST_NODE = 71,
819
821 PM_IN_NODE = 72,
822
824 PM_INDEX_AND_WRITE_NODE = 73,
825
827 PM_INDEX_OPERATOR_WRITE_NODE = 74,
828
830 PM_INDEX_OR_WRITE_NODE = 75,
831
833 PM_INDEX_TARGET_NODE = 76,
834
836 PM_INSTANCE_VARIABLE_AND_WRITE_NODE = 77,
837
839 PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 78,
840
842 PM_INSTANCE_VARIABLE_OR_WRITE_NODE = 79,
843
845 PM_INSTANCE_VARIABLE_READ_NODE = 80,
846
848 PM_INSTANCE_VARIABLE_TARGET_NODE = 81,
849
851 PM_INSTANCE_VARIABLE_WRITE_NODE = 82,
852
854 PM_INTEGER_NODE = 83,
855
857 PM_INTERPOLATED_MATCH_LAST_LINE_NODE = 84,
858
860 PM_INTERPOLATED_REGULAR_EXPRESSION_NODE = 85,
861
863 PM_INTERPOLATED_STRING_NODE = 86,
864
866 PM_INTERPOLATED_SYMBOL_NODE = 87,
867
869 PM_INTERPOLATED_X_STRING_NODE = 88,
870
872 PM_IT_LOCAL_VARIABLE_READ_NODE = 89,
873
875 PM_IT_PARAMETERS_NODE = 90,
876
878 PM_KEYWORD_HASH_NODE = 91,
879
881 PM_KEYWORD_REST_PARAMETER_NODE = 92,
882
884 PM_LAMBDA_NODE = 93,
885
887 PM_LOCAL_VARIABLE_AND_WRITE_NODE = 94,
888
890 PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 95,
891
893 PM_LOCAL_VARIABLE_OR_WRITE_NODE = 96,
894
896 PM_LOCAL_VARIABLE_READ_NODE = 97,
897
899 PM_LOCAL_VARIABLE_TARGET_NODE = 98,
900
902 PM_LOCAL_VARIABLE_WRITE_NODE = 99,
903
905 PM_MATCH_LAST_LINE_NODE = 100,
906
908 PM_MATCH_PREDICATE_NODE = 101,
909
911 PM_MATCH_REQUIRED_NODE = 102,
912
914 PM_MATCH_WRITE_NODE = 103,
915
917 PM_MODULE_NODE = 104,
918
920 PM_MULTI_TARGET_NODE = 105,
921
923 PM_MULTI_WRITE_NODE = 106,
924
926 PM_NEXT_NODE = 107,
927
929 PM_NIL_NODE = 108,
930
932 PM_NO_BLOCK_PARAMETER_NODE = 109,
933
935 PM_NO_KEYWORDS_PARAMETER_NODE = 110,
936
938 PM_NUMBERED_PARAMETERS_NODE = 111,
939
941 PM_NUMBERED_REFERENCE_READ_NODE = 112,
942
944 PM_OPTIONAL_KEYWORD_PARAMETER_NODE = 113,
945
947 PM_OPTIONAL_PARAMETER_NODE = 114,
948
950 PM_OR_NODE = 115,
951
953 PM_PARAMETERS_NODE = 116,
954
956 PM_PARENTHESES_NODE = 117,
957
959 PM_PINNED_EXPRESSION_NODE = 118,
960
962 PM_PINNED_VARIABLE_NODE = 119,
963
965 PM_POST_EXECUTION_NODE = 120,
966
968 PM_PRE_EXECUTION_NODE = 121,
969
971 PM_PROGRAM_NODE = 122,
972
974 PM_RANGE_NODE = 123,
975
977 PM_RATIONAL_NODE = 124,
978
980 PM_REDO_NODE = 125,
981
983 PM_REGULAR_EXPRESSION_NODE = 126,
984
986 PM_REQUIRED_KEYWORD_PARAMETER_NODE = 127,
987
989 PM_REQUIRED_PARAMETER_NODE = 128,
990
992 PM_RESCUE_MODIFIER_NODE = 129,
993
995 PM_RESCUE_NODE = 130,
996
998 PM_REST_PARAMETER_NODE = 131,
999
1001 PM_RETRY_NODE = 132,
1002
1004 PM_RETURN_NODE = 133,
1005
1007 PM_SELF_NODE = 134,
1008
1010 PM_SHAREABLE_CONSTANT_NODE = 135,
1011
1013 PM_SINGLETON_CLASS_NODE = 136,
1014
1016 PM_SOURCE_ENCODING_NODE = 137,
1017
1019 PM_SOURCE_FILE_NODE = 138,
1020
1022 PM_SOURCE_LINE_NODE = 139,
1023
1025 PM_SPLAT_NODE = 140,
1026
1028 PM_STATEMENTS_NODE = 141,
1029
1031 PM_STRING_NODE = 142,
1032
1034 PM_SUPER_NODE = 143,
1035
1037 PM_SYMBOL_NODE = 144,
1038
1040 PM_TRUE_NODE = 145,
1041
1043 PM_UNDEF_NODE = 146,
1044
1046 PM_UNLESS_NODE = 147,
1047
1049 PM_UNTIL_NODE = 148,
1050
1052 PM_WHEN_NODE = 149,
1053
1055 PM_WHILE_NODE = 150,
1056
1058 PM_X_STRING_NODE = 151,
1059
1061 PM_YIELD_NODE = 152,
1062
1064 PM_SCOPE_NODE
1065};
1066
1071typedef uint16_t pm_node_type_t;
1072
1077typedef uint16_t pm_node_flags_t;
1078
1083static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1084static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1085
1090typedef struct pm_node {
1095 pm_node_type_t type;
1096
1101 pm_node_flags_t flags;
1102
1109 uint32_t node_id;
1110
1116} pm_node_t;
1117
1121#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1122
1127#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1128
1132#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1133
1137#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1138
1142#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1143
1147#ifdef _MSC_VER
1148#define PM_NODE_ALIGNAS __declspec(align(8))
1149#else
1150#define PM_NODE_ALIGNAS PRISM_ALIGNAS(PRISM_ALIGNOF(void *))
1151#endif
1152
1199
1212typedef struct pm_alias_method_node {
1215
1230 PM_NODE_ALIGNAS struct pm_node *new_name;
1231
1246 PM_NODE_ALIGNAS struct pm_node *old_name;
1247
1258
1274
1283 PM_NODE_ALIGNAS struct pm_node *left;
1284
1293 PM_NODE_ALIGNAS struct pm_node *right;
1294
1305
1318typedef struct pm_and_node {
1321
1333 PM_NODE_ALIGNAS struct pm_node *left;
1334
1346 PM_NODE_ALIGNAS struct pm_node *right;
1347
1358
1392
1443
1538
1551typedef struct pm_assoc_node {
1554
1569 PM_NODE_ALIGNAS struct pm_node *key;
1570
1582 PM_NODE_ALIGNAS struct pm_node *value;
1583
1594
1631
1659
1674typedef struct pm_begin_node {
1677
1687
1696 PM_NODE_ALIGNAS struct pm_statements_node *statements;
1697
1706 PM_NODE_ALIGNAS struct pm_rescue_node *rescue_clause;
1707
1716 PM_NODE_ALIGNAS struct pm_else_node *else_clause;
1717
1726 PM_NODE_ALIGNAS struct pm_ensure_node *ensure_clause;
1727
1738
1775
1805
1876
1929
2006
2043
2136
2276
2379
2472
2543
2590
2659
2728
2814
2871
2913
2950
2978
3000
3061
3098
3140
3177
3209
3275
3312
3344
3381
3437
3465
3487
3548
3626
3663
3695
3727
3754
3790
3803
3809 PM_NODE_ALIGNAS struct pm_node *unexpected;
3811
3828
3850typedef struct pm_find_pattern_node {
3853
3862 PM_NODE_ALIGNAS struct pm_node *constant;
3863
3875 PM_NODE_ALIGNAS struct pm_splat_node *left;
3876
3889
3901 PM_NODE_ALIGNAS struct pm_splat_node *right;
3902
3915
3929
3945typedef struct pm_flip_flop_node {
3948
3952 PM_NODE_ALIGNAS struct pm_node *left;
3953
3957 PM_NODE_ALIGNAS struct pm_node *right;
3958
3964
3977typedef struct pm_float_node {
3980
3986 double value;
3988
4077
4096
4114
4154
4191
4233
4270
4298
4320
4381
4431
4453typedef struct pm_hash_pattern_node {
4456
4468 PM_NODE_ALIGNAS struct pm_node *constant;
4469
4479
4494 PM_NODE_ALIGNAS struct pm_node *rest;
4495
4508
4522
4541typedef struct pm_if_node {
4544
4556
4573 PM_NODE_ALIGNAS struct pm_node *predicate;
4574
4587
4600 PM_NODE_ALIGNAS struct pm_statements_node *statements;
4601
4619 PM_NODE_ALIGNAS struct pm_node *subsequent;
4620
4632} pm_if_node_t;
4633
4646typedef struct pm_imaginary_node {
4649
4653 PM_NODE_ALIGNAS struct pm_node *numeric;
4655
4674typedef struct pm_implicit_node {
4677
4681 PM_NODE_ALIGNAS struct pm_node *value;
4683
4709
4722typedef struct pm_in_node {
4725
4729 PM_NODE_ALIGNAS struct pm_node *pattern;
4730
4734 PM_NODE_ALIGNAS struct pm_statements_node *statements;
4735
4740
4745} pm_in_node_t;
4746
4809
4877
4940
4967typedef struct pm_index_target_node {
4970
4974 PM_NODE_ALIGNAS struct pm_node *receiver;
4975
4980
4984 PM_NODE_ALIGNAS struct pm_arguments_node *arguments;
4985
4990
4994 PM_NODE_ALIGNAS struct pm_block_argument_node *block;
4996
5033
5075
5112
5140
5162
5223
5253
5298
5343
5379
5411
5443
5460
5477
5502
5538
5585
5627
5674
5716
5761
5791
5869
5919
5935
5939 PM_NODE_ALIGNAS struct pm_node *value;
5940
5944 PM_NODE_ALIGNAS struct pm_node *pattern;
5945
5951
5967
5976 PM_NODE_ALIGNAS struct pm_node *value;
5977
6025 PM_NODE_ALIGNAS struct pm_node *pattern;
6026
6037
6050typedef struct pm_match_write_node {
6053
6057 PM_NODE_ALIGNAS struct pm_call_node *call;
6058
6064
6111
6198
6300
6327
6344
6372
6400
6422
6452
6488
6529
6542typedef struct pm_or_node {
6545
6557 PM_NODE_ALIGNAS struct pm_node *left;
6558
6570 PM_NODE_ALIGNAS struct pm_node *right;
6571
6581} pm_or_node_t;
6582
6596typedef struct pm_parameters_node {
6599
6604
6609
6613 PM_NODE_ALIGNAS struct pm_node *rest;
6614
6619
6624
6628 PM_NODE_ALIGNAS struct pm_node *keyword_rest;
6629
6633 PM_NODE_ALIGNAS struct pm_node *block;
6635
6670
6727
6764
6801
6838
6862
6881typedef struct pm_range_node {
6884
6896 PM_NODE_ALIGNAS struct pm_node *left;
6897
6910 PM_NODE_ALIGNAS struct pm_node *right;
6911
6919
6960
6977
7027
7058
7084
7100
7104 PM_NODE_ALIGNAS struct pm_node *expression;
7105
7110
7114 PM_NODE_ALIGNAS struct pm_node *rescue_expression;
7116
7173
7209
7226
7253
7270
7300
7347
7364
7394
7411
7424typedef struct pm_splat_node {
7427
7432
7436 PM_NODE_ALIGNAS struct pm_node *expression;
7438
7460
7509
7558
7603
7620
7647
7734
7782
7821
7869
7910
7947
7951typedef enum pm_arguments_node_flags {
7953 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING = 4,
7954
7956 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS = 8,
7957
7959 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT = 16,
7960
7962 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT = 32,
7963
7965 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
7966
7967 PM_ARGUMENTS_NODE_FLAGS_LAST,
7968} pm_arguments_node_flags_t;
7969
7973typedef enum pm_array_node_flags {
7975 PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
7976
7977 PM_ARRAY_NODE_FLAGS_LAST,
7978} pm_array_node_flags_t;
7979
7983typedef enum pm_call_node_flags {
7985 PM_CALL_NODE_FLAGS_SAFE_NAVIGATION = 4,
7986
7988 PM_CALL_NODE_FLAGS_VARIABLE_CALL = 8,
7989
7991 PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 16,
7992
7994 PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
7995
7996 PM_CALL_NODE_FLAGS_LAST,
7997} pm_call_node_flags_t;
7998
8002typedef enum pm_encoding_flags {
8004 PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING = 4,
8005
8007 PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
8008
8009 PM_ENCODING_FLAGS_LAST,
8010} pm_encoding_flags_t;
8011
8015typedef enum pm_integer_base_flags {
8017 PM_INTEGER_BASE_FLAGS_BINARY = 4,
8018
8020 PM_INTEGER_BASE_FLAGS_DECIMAL = 8,
8021
8023 PM_INTEGER_BASE_FLAGS_OCTAL = 16,
8024
8026 PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
8027
8028 PM_INTEGER_BASE_FLAGS_LAST,
8029} pm_integer_base_flags_t;
8030
8034typedef enum pm_interpolated_string_node_flags {
8036 PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN = 4,
8037
8039 PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
8040
8041 PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
8042} pm_interpolated_string_node_flags_t;
8043
8047typedef enum pm_keyword_hash_node_flags {
8049 PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
8050
8051 PM_KEYWORD_HASH_NODE_FLAGS_LAST,
8052} pm_keyword_hash_node_flags_t;
8053
8057typedef enum pm_loop_flags {
8059 PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8060
8061 PM_LOOP_FLAGS_LAST,
8062} pm_loop_flags_t;
8063
8067typedef enum pm_parameter_flags {
8069 PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8070
8071 PM_PARAMETER_FLAGS_LAST,
8072} pm_parameter_flags_t;
8073
8077typedef enum pm_parentheses_node_flags {
8079 PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8080
8081 PM_PARENTHESES_NODE_FLAGS_LAST,
8082} pm_parentheses_node_flags_t;
8083
8087typedef enum pm_range_flags {
8089 PM_RANGE_FLAGS_EXCLUDE_END = 4,
8090
8091 PM_RANGE_FLAGS_LAST,
8092} pm_range_flags_t;
8093
8097typedef enum pm_regular_expression_flags {
8099 PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 4,
8100
8102 PM_REGULAR_EXPRESSION_FLAGS_EXTENDED = 8,
8103
8105 PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 16,
8106
8108 PM_REGULAR_EXPRESSION_FLAGS_ONCE = 32,
8109
8111 PM_REGULAR_EXPRESSION_FLAGS_EUC_JP = 64,
8112
8114 PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 128,
8115
8117 PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 256,
8118
8120 PM_REGULAR_EXPRESSION_FLAGS_UTF_8 = 512,
8121
8123 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING = 1024,
8124
8126 PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING = 2048,
8127
8129 PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8130
8131 PM_REGULAR_EXPRESSION_FLAGS_LAST,
8132} pm_regular_expression_flags_t;
8133
8137typedef enum pm_shareable_constant_node_flags {
8139 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL = 4,
8140
8142 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING = 8,
8143
8145 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8146
8147 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
8148} pm_shareable_constant_node_flags_t;
8149
8153typedef enum pm_string_flags {
8155 PM_STRING_FLAGS_FORCED_UTF8_ENCODING = 4,
8156
8158 PM_STRING_FLAGS_FORCED_BINARY_ENCODING = 8,
8159
8161 PM_STRING_FLAGS_FROZEN = 16,
8162
8164 PM_STRING_FLAGS_MUTABLE = 32,
8165
8166 PM_STRING_FLAGS_LAST,
8167} pm_string_flags_t;
8168
8172typedef enum pm_symbol_flags {
8174 PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING = 4,
8175
8177 PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING = 8,
8178
8180 PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
8181
8182 PM_SYMBOL_FLAGS_LAST,
8183} pm_symbol_flags_t;
8184
8197PRISM_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);
8198
8211PRISM_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);
8212
8225PRISM_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);
8226
8239PRISM_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);
8240
8251PRISM_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);
8252
8265PRISM_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);
8266
8282PRISM_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);
8283
8296PRISM_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);
8297
8309PRISM_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);
8310
8321PRISM_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);
8322
8338PRISM_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);
8339
8351PRISM_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);
8352
8363PRISM_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);
8364
8379PRISM_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);
8380
8393PRISM_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);
8394
8408PRISM_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);
8409
8421PRISM_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);
8422
8439PRISM_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);
8440
8459PRISM_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);
8460
8478PRISM_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);
8479
8496PRISM_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);
8497
8511PRISM_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);
8512
8525PRISM_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);
8526
8541PRISM_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);
8542
8557PRISM_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);
8558
8576PRISM_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);
8577
8591PRISM_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);
8592
8607PRISM_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);
8608
8622PRISM_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);
8623
8634PRISM_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);
8635
8646PRISM_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);
8647
8661PRISM_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);
8662
8676PRISM_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);
8677
8692PRISM_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);
8693
8707PRISM_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);
8708
8721PRISM_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);
8722
8736PRISM_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);
8737
8751PRISM_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);
8752
8765PRISM_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);
8766
8780PRISM_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);
8781
8794PRISM_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);
8795
8806PRISM_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);
8807
8818PRISM_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);
8819
8833PRISM_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);
8834
8856PRISM_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);
8857
8871PRISM_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);
8872
8885PRISM_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);
8886
8899PRISM_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);
8900
8912PRISM_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);
8913
8926PRISM_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);
8927
8938PRISM_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);
8939
8949PRISM_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);
8950
8966PRISM_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);
8967
8980PRISM_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);
8981
8992PRISM_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);
8993
9010PRISM_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);
9011
9021PRISM_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);
9022
9032PRISM_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);
9033
9045PRISM_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);
9046
9060PRISM_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);
9061
9076PRISM_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);
9077
9091PRISM_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);
9092
9103PRISM_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);
9104
9115PRISM_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);
9116
9130PRISM_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);
9131
9144PRISM_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);
9145
9160PRISM_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);
9161
9177PRISM_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);
9178
9189PRISM_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);
9190
9201PRISM_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);
9202
9212PRISM_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);
9213
9227PRISM_EXPORTED_FUNCTION pm_in_node_t * pm_in_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *pattern, struct pm_statements_node *statements, pm_location_t in_keyword_loc, pm_location_t then_keyword_loc);
9228
9246PRISM_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);
9247
9266PRISM_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);
9267
9285PRISM_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);
9286
9301PRISM_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);
9302
9316PRISM_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);
9317
9332PRISM_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);
9333
9347PRISM_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);
9348
9359PRISM_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);
9360
9371PRISM_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);
9372
9386PRISM_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);
9387
9398PRISM_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);
9399
9412PRISM_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);
9413
9426PRISM_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);
9427
9440PRISM_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);
9441
9454PRISM_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);
9455
9468PRISM_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);
9469
9479PRISM_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);
9480
9490PRISM_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);
9491
9502PRISM_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);
9503
9516PRISM_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);
9517
9533PRISM_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);
9534
9549PRISM_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);
9550
9566PRISM_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);
9567
9582PRISM_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);
9583
9595PRISM_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);
9596
9608PRISM_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);
9609
9624PRISM_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);
9625
9639PRISM_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);
9640
9653PRISM_EXPORTED_FUNCTION pm_match_predicate_node_t * pm_match_predicate_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_node *pattern, pm_location_t keyword_loc);
9654
9667PRISM_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);
9668
9680PRISM_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);
9681
9697PRISM_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);
9698
9713PRISM_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);
9714
9731PRISM_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);
9732
9744PRISM_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);
9745
9755PRISM_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);
9756
9768PRISM_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);
9769
9781PRISM_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);
9782
9793PRISM_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);
9794
9805PRISM_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);
9806
9819PRISM_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);
9820
9834PRISM_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);
9835
9848PRISM_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);
9849
9866PRISM_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);
9867
9880PRISM_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);
9881
9895PRISM_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);
9896
9908PRISM_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);
9909
9923PRISM_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);
9924
9938PRISM_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);
9939
9951PRISM_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);
9952
9965PRISM_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);
9966
9978PRISM_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);
9979
9989PRISM_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);
9990
10004PRISM_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);
10005
10017PRISM_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);
10018
10029PRISM_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);
10030
10043PRISM_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);
10044
10061PRISM_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);
10062
10075PRISM_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);
10076
10086PRISM_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);
10087
10099PRISM_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);
10100
10110PRISM_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);
10111
10122PRISM_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);
10123
10139PRISM_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);
10140
10150PRISM_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);
10151
10162PRISM_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);
10163
10173PRISM_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);
10174
10186PRISM_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);
10187
10198PRISM_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);
10199
10213PRISM_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);
10214
10229PRISM_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);
10230
10244PRISM_EXPORTED_FUNCTION pm_symbol_node_t * pm_symbol_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped);
10245
10255PRISM_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);
10256
10268PRISM_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);
10269
10285PRISM_EXPORTED_FUNCTION pm_unless_node_t * pm_unless_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t unless_keyword_loc, struct pm_node *predicate, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_else_node *else_clause, pm_location_t end_keyword_loc);
10286
10301PRISM_EXPORTED_FUNCTION pm_until_node_t * pm_until_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t until_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc, struct pm_node *predicate, struct pm_statements_node *statements);
10302
10316PRISM_EXPORTED_FUNCTION pm_when_node_t * pm_when_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t when_keyword_loc, pm_node_list_t conditions, pm_location_t then_keyword_loc, struct pm_statements_node *statements);
10317
10332PRISM_EXPORTED_FUNCTION pm_while_node_t * pm_while_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t while_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc, struct pm_node *predicate, struct pm_statements_node *statements);
10333
10347PRISM_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);
10348
10362PRISM_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);
10363
10370#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
10371
10372#ifdef __cplusplus
10373}
10374#endif
10375
10376#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 view of a sequence of bytes owned by someone else.
AliasGlobalVariableNode.
Definition ast.h:1165
PM_NODE_ALIGNAS struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1177
pm_node_t base
The embedded base node.
Definition ast.h:1167
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1197
PM_NODE_ALIGNAS struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1187
AliasMethodNode.
Definition ast.h:1212
PM_NODE_ALIGNAS struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1246
pm_node_t base
The embedded base node.
Definition ast.h:1214
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1256
PM_NODE_ALIGNAS struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1230
AlternationPatternNode.
Definition ast.h:1271
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1303
PM_NODE_ALIGNAS struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1283
pm_node_t base
The embedded base node.
Definition ast.h:1273
PM_NODE_ALIGNAS struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1293
AndNode.
Definition ast.h:1318
PM_NODE_ALIGNAS struct pm_node * left
AndNode::left.
Definition ast.h:1333
PM_NODE_ALIGNAS struct pm_node * right
AndNode::right.
Definition ast.h:1346
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1356
pm_node_t base
The embedded base node.
Definition ast.h:1320
ArgumentsNode.
Definition ast.h:1378
pm_node_t base
The embedded base node.
Definition ast.h:1380
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1390
ArrayNode.
Definition ast.h:1408
pm_node_t base
The embedded base node.
Definition ast.h:1410
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1441
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1417
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1429
ArrayPatternNode.
Definition ast.h:1468
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1496
PM_NODE_ALIGNAS struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1506
PM_NODE_ALIGNAS struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1486
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1526
pm_node_t base
The embedded base node.
Definition ast.h:1470
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1536
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1516
AssocNode.
Definition ast.h:1551
pm_node_t base
The embedded base node.
Definition ast.h:1553
PM_NODE_ALIGNAS struct pm_node * value
AssocNode::value.
Definition ast.h:1582
PM_NODE_ALIGNAS struct pm_node * key
AssocNode::key.
Definition ast.h:1569
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1592
AssocSplatNode.
Definition ast.h:1607
pm_node_t base
The embedded base node.
Definition ast.h:1609
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1629
PM_NODE_ALIGNAS struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1619
BackReferenceReadNode.
Definition ast.h:1644
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1657
pm_node_t base
The embedded base node.
Definition ast.h:1646
BeginNode.
Definition ast.h:1674
PM_NODE_ALIGNAS struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1716
PM_NODE_ALIGNAS struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1726
PM_NODE_ALIGNAS struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1696
PM_NODE_ALIGNAS struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1706
pm_node_t base
The embedded base node.
Definition ast.h:1676
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1736
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1686
BlockArgumentNode.
Definition ast.h:1751
PM_NODE_ALIGNAS struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1763
pm_node_t base
The embedded base node.
Definition ast.h:1753
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1773
BlockLocalVariableNode.
Definition ast.h:1791
pm_node_t base
The embedded base node.
Definition ast.h:1793
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1803
BlockNode.
Definition ast.h:1818
pm_node_t base
The embedded base node.
Definition ast.h:1820
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1874
PM_NODE_ALIGNAS struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1844
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1864
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1830
PM_NODE_ALIGNAS struct pm_node * body
BlockNode::body.
Definition ast.h:1854
BlockParameterNode.
Definition ast.h:1893
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1927
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1916
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1906
pm_node_t base
The embedded base node.
Definition ast.h:1895
BlockParametersNode.
Definition ast.h:1946
pm_node_t base
The embedded base node.
Definition ast.h:1948
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1976
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1962
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:2004
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1990
BreakNode.
Definition ast.h:2019
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2041
pm_node_t base
The embedded base node.
Definition ast.h:2021
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:2031
CallAndWriteNode.
Definition ast.h:2062
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2124
PM_NODE_ALIGNAS struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2074
pm_node_t base
The embedded base node.
Definition ast.h:2064
PM_NODE_ALIGNAS struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2134
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2084
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2094
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2104
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2114
CallNode.
Definition ast.h:2170
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2231
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2251
pm_constant_id_t name
CallNode::name.
Definition ast.h:2211
pm_node_t base
The embedded base node.
Definition ast.h:2172
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2241
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2264
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2201
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2221
PM_NODE_ALIGNAS struct pm_node * block
CallNode::block.
Definition ast.h:2274
PM_NODE_ALIGNAS struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2188
CallOperatorWriteNode.
Definition ast.h:2295
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2337
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2357
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2367
pm_node_t base
The embedded base node.
Definition ast.h:2297
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2347
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2327
PM_NODE_ALIGNAS struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2307
PM_NODE_ALIGNAS struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2377
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2317
CallOrWriteNode.
Definition ast.h:2398
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2460
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2420
PM_NODE_ALIGNAS struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2410
pm_node_t base
The embedded base node.
Definition ast.h:2400
PM_NODE_ALIGNAS struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2470
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2450
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2440
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2430
CallTargetNode.
Definition ast.h:2499
pm_node_t base
The embedded base node.
Definition ast.h:2501
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2531
PM_NODE_ALIGNAS struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2511
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2521
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2541
CapturePatternNode.
Definition ast.h:2556
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2588
pm_node_t base
The embedded base node.
Definition ast.h:2558
PM_NODE_ALIGNAS struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2568
PM_NODE_ALIGNAS struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2578
CaseMatchNode.
Definition ast.h:2605
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2657
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2627
pm_node_t base
The embedded base node.
Definition ast.h:2607
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2647
PM_NODE_ALIGNAS struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2617
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2637
CaseNode.
Definition ast.h:2674
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2706
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2696
PM_NODE_ALIGNAS struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2686
pm_node_t base
The embedded base node.
Definition ast.h:2676
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2716
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2726
ClassNode.
Definition ast.h:2741
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2758
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2803
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2748
PM_NODE_ALIGNAS struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2783
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2773
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2812
pm_node_t base
The embedded base node.
Definition ast.h:2743
PM_NODE_ALIGNAS struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2763
PM_NODE_ALIGNAS struct pm_node * body
ClassNode::body.
Definition ast.h:2793
ClassVariableAndWriteNode.
Definition ast.h:2827
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2869
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2839
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2859
pm_node_t base
The embedded base node.
Definition ast.h:2829
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2849
ClassVariableOperatorWriteNode.
Definition ast.h:2884
pm_node_t base
The embedded base node.
Definition ast.h:2886
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2891
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2906
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2896
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2911
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2901
ClassVariableOrWriteNode.
Definition ast.h:2926
pm_node_t base
The embedded base node.
Definition ast.h:2928
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2948
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2938
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2943
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2933
ClassVariableReadNode.
Definition ast.h:2963
pm_node_t base
The embedded base node.
Definition ast.h:2965
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2976
ClassVariableTargetNode.
Definition ast.h:2991
pm_node_t base
The embedded base node.
Definition ast.h:2993
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2998
ClassVariableWriteNode.
Definition ast.h:3013
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:3036
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3049
pm_node_t base
The embedded base node.
Definition ast.h:3015
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3059
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:3026
ConstantAndWriteNode.
Definition ast.h:3074
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3091
PM_NODE_ALIGNAS struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3096
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3086
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3081
pm_node_t base
The embedded base node.
Definition ast.h:3076
A list of constant IDs.
ConstantOperatorWriteNode.
Definition ast.h:3111
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3118
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3123
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3138
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3128
PM_NODE_ALIGNAS struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3133
pm_node_t base
The embedded base node.
Definition ast.h:3113
ConstantOrWriteNode.
Definition ast.h:3153
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3170
PM_NODE_ALIGNAS struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3175
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3165
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3160
pm_node_t base
The embedded base node.
Definition ast.h:3155
ConstantPathAndWriteNode.
Definition ast.h:3190
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3197
pm_node_t base
The embedded base node.
Definition ast.h:3192
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3207
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3202
ConstantPathNode.
Definition ast.h:3222
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3260
pm_node_t base
The embedded base node.
Definition ast.h:3224
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3240
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3273
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3247
ConstantPathOperatorWriteNode.
Definition ast.h:3288
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3295
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3310
pm_node_t base
The embedded base node.
Definition ast.h:3290
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3300
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3305
ConstantPathOrWriteNode.
Definition ast.h:3325
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3337
pm_node_t base
The embedded base node.
Definition ast.h:3327
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3342
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3332
ConstantPathTargetNode.
Definition ast.h:3357
pm_node_t base
The embedded base node.
Definition ast.h:3359
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3374
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3369
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3364
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3379
ConstantPathWriteNode.
Definition ast.h:3400
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3435
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3425
pm_node_t base
The embedded base node.
Definition ast.h:3402
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3415
ConstantReadNode.
Definition ast.h:3450
pm_node_t base
The embedded base node.
Definition ast.h:3452
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3463
ConstantTargetNode.
Definition ast.h:3478
pm_node_t base
The embedded base node.
Definition ast.h:3480
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3485
ConstantWriteNode.
Definition ast.h:3500
pm_node_t base
The embedded base node.
Definition ast.h:3502
PM_NODE_ALIGNAS struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3536
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3513
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3523
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3546
DefNode.
Definition ast.h:3562
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3624
pm_constant_id_t name
DefNode::name.
Definition ast.h:3569
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3574
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3614
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3584
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3619
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3599
pm_node_t base
The embedded base node.
Definition ast.h:3564
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3609
PM_NODE_ALIGNAS struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3579
PM_NODE_ALIGNAS struct pm_node * body
DefNode::body.
Definition ast.h:3589
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3604
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3594
DefinedNode.
Definition ast.h:3639
PM_NODE_ALIGNAS struct pm_node * value
DefinedNode::value.
Definition ast.h:3651
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3646
pm_node_t base
The embedded base node.
Definition ast.h:3641
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3656
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3661
ElseNode.
Definition ast.h:3676
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3683
pm_node_t base
The embedded base node.
Definition ast.h:3678
PM_NODE_ALIGNAS struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3688
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3693
EmbeddedStatementsNode.
Definition ast.h:3708
PM_NODE_ALIGNAS struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3720
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3725
pm_node_t base
The embedded base node.
Definition ast.h:3710
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3715
EmbeddedVariableNode.
Definition ast.h:3740
PM_NODE_ALIGNAS struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3752
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3747
pm_node_t base
The embedded base node.
Definition ast.h:3742
EnsureNode.
Definition ast.h:3771
PM_NODE_ALIGNAS struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3783
pm_node_t base
The embedded base node.
Definition ast.h:3773
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3778
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3788
ErrorRecoveryNode.
Definition ast.h:3800
PM_NODE_ALIGNAS struct pm_node * unexpected
ErrorRecoveryNode::unexpected.
Definition ast.h:3809
pm_node_t base
The embedded base node.
Definition ast.h:3802
FalseNode.
Definition ast.h:3824
pm_node_t base
The embedded base node.
Definition ast.h:3826
FindPatternNode.
Definition ast.h:3850
PM_NODE_ALIGNAS struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3875
PM_NODE_ALIGNAS struct pm_splat_node * right
FindPatternNode::right.
Definition ast.h:3901
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3914
pm_node_t base
The embedded base node.
Definition ast.h:3852
PM_NODE_ALIGNAS struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3862
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3888
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3927
FlipFlopNode.
Definition ast.h:3945
PM_NODE_ALIGNAS struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3952
pm_node_t base
The embedded base node.
Definition ast.h:3947
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3962
PM_NODE_ALIGNAS struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3957
FloatNode.
Definition ast.h:3977
double value
FloatNode::value.
Definition ast.h:3986
pm_node_t base
The embedded base node.
Definition ast.h:3979
ForNode.
Definition ast.h:4001
PM_NODE_ALIGNAS struct pm_node * index
ForNode::index.
Definition ast.h:4013
PM_NODE_ALIGNAS struct pm_node * collection
ForNode::collection.
Definition ast.h:4023
pm_node_t base
The embedded base node.
Definition ast.h:4003
PM_NODE_ALIGNAS struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:4035
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4075
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4045
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4065
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4055
ForwardingArgumentsNode.
Definition ast.h:4092
pm_node_t base
The embedded base node.
Definition ast.h:4094
ForwardingParameterNode.
Definition ast.h:4110
pm_node_t base
The embedded base node.
Definition ast.h:4112
ForwardingSuperNode.
Definition ast.h:4132
pm_node_t base
The embedded base node.
Definition ast.h:4134
PM_NODE_ALIGNAS struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4152
pm_location_t keyword_loc
ForwardingSuperNode::keyword_loc.
Definition ast.h:4145
GlobalVariableAndWriteNode.
Definition ast.h:4167
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4184
pm_node_t base
The embedded base node.
Definition ast.h:4169
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4189
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4179
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4174
GlobalVariableOperatorWriteNode.
Definition ast.h:4204
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4226
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4211
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4231
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4216
pm_node_t base
The embedded base node.
Definition ast.h:4206
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4221
GlobalVariableOrWriteNode.
Definition ast.h:4246
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4253
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4258
pm_node_t base
The embedded base node.
Definition ast.h:4248
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4263
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4268
GlobalVariableReadNode.
Definition ast.h:4283
pm_node_t base
The embedded base node.
Definition ast.h:4285
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4296
GlobalVariableTargetNode.
Definition ast.h:4311
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4318
pm_node_t base
The embedded base node.
Definition ast.h:4313
GlobalVariableWriteNode.
Definition ast.h:4333
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4356
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4379
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4346
pm_node_t base
The embedded base node.
Definition ast.h:4335
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4369
HashNode.
Definition ast.h:4394
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4419
pm_node_t base
The embedded base node.
Definition ast.h:4396
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4429
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4406
HashPatternNode.
Definition ast.h:4453
PM_NODE_ALIGNAS struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4468
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4478
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4507
pm_node_t base
The embedded base node.
Definition ast.h:4455
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4520
PM_NODE_ALIGNAS struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4494
IfNode.
Definition ast.h:4541
PM_NODE_ALIGNAS struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4573
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4631
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4555
PM_NODE_ALIGNAS struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4600
pm_node_t base
The embedded base node.
Definition ast.h:4543
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4586
PM_NODE_ALIGNAS struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4619
ImaginaryNode.
Definition ast.h:4646
pm_node_t base
The embedded base node.
Definition ast.h:4648
PM_NODE_ALIGNAS struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4653
ImplicitNode.
Definition ast.h:4674
pm_node_t base
The embedded base node.
Definition ast.h:4676
PM_NODE_ALIGNAS struct pm_node * value
ImplicitNode::value.
Definition ast.h:4681
ImplicitRestNode.
Definition ast.h:4705
pm_node_t base
The embedded base node.
Definition ast.h:4707
InNode.
Definition ast.h:4722
pm_location_t in_keyword_loc
InNode::in_keyword_loc.
Definition ast.h:4739
PM_NODE_ALIGNAS struct pm_node * pattern
InNode::pattern.
Definition ast.h:4729
PM_NODE_ALIGNAS struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4734
pm_location_t then_keyword_loc
InNode::then_keyword_loc.
Definition ast.h:4744
pm_node_t base
The embedded base node.
Definition ast.h:4724
IndexAndWriteNode.
Definition ast.h:4765
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4787
pm_node_t base
The embedded base node.
Definition ast.h:4767
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4802
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4792
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4782
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4777
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4797
PM_NODE_ALIGNAS struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4772
PM_NODE_ALIGNAS struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4807
IndexOperatorWriteNode.
Definition ast.h:4828
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4860
pm_node_t base
The embedded base node.
Definition ast.h:4830
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4835
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4870
PM_NODE_ALIGNAS struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4875
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4845
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4850
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4840
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4855
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4865
IndexOrWriteNode.
Definition ast.h:4896
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4923
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4908
pm_node_t base
The embedded base node.
Definition ast.h:4898
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4933
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4913
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4918
PM_NODE_ALIGNAS struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4938
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4903
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4928
IndexTargetNode.
Definition ast.h:4967
pm_node_t base
The embedded base node.
Definition ast.h:4969
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4984
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4989
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4994
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4979
PM_NODE_ALIGNAS struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4974
InstanceVariableAndWriteNode.
Definition ast.h:5009
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:5031
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:5026
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:5021
pm_node_t base
The embedded base node.
Definition ast.h:5011
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:5016
InstanceVariableOperatorWriteNode.
Definition ast.h:5046
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5073
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5068
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5063
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5053
pm_node_t base
The embedded base node.
Definition ast.h:5048
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5058
InstanceVariableOrWriteNode.
Definition ast.h:5088
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5105
pm_node_t base
The embedded base node.
Definition ast.h:5090
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5100
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5095
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5110
InstanceVariableReadNode.
Definition ast.h:5125
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5138
pm_node_t base
The embedded base node.
Definition ast.h:5127
InstanceVariableTargetNode.
Definition ast.h:5153
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5160
pm_node_t base
The embedded base node.
Definition ast.h:5155
InstanceVariableWriteNode.
Definition ast.h:5175
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5221
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5211
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5188
pm_node_t base
The embedded base node.
Definition ast.h:5177
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5198
IntegerNode.
Definition ast.h:5242
pm_integer_t value
IntegerNode::value.
Definition ast.h:5251
pm_node_t base
The embedded base node.
Definition ast.h:5244
A structure represents an arbitrary-sized integer.
Definition integer.h:16
InterpolatedMatchLastLineNode.
Definition ast.h:5279
pm_node_t base
The embedded base node.
Definition ast.h:5281
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5296
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5291
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5286
InterpolatedRegularExpressionNode.
Definition ast.h:5324
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5331
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5336
pm_node_t base
The embedded base node.
Definition ast.h:5326
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5341
InterpolatedStringNode.
Definition ast.h:5360
pm_node_t base
The embedded base node.
Definition ast.h:5362
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5377
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5367
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5372
InterpolatedSymbolNode.
Definition ast.h:5392
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5404
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5409
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5399
pm_node_t base
The embedded base node.
Definition ast.h:5394
InterpolatedXStringNode.
Definition ast.h:5424
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5431
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5441
pm_node_t base
The embedded base node.
Definition ast.h:5426
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5436
ItLocalVariableReadNode.
Definition ast.h:5456
pm_node_t base
The embedded base node.
Definition ast.h:5458
ItParametersNode.
Definition ast.h:5473
pm_node_t base
The embedded base node.
Definition ast.h:5475
KeywordHashNode.
Definition ast.h:5493
pm_node_t base
The embedded base node.
Definition ast.h:5495
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5500
KeywordRestParameterNode.
Definition ast.h:5519
pm_node_t base
The embedded base node.
Definition ast.h:5521
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5526
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5536
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5531
LambdaNode.
Definition ast.h:5551
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5573
pm_node_t base
The embedded base node.
Definition ast.h:5553
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5568
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5563
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5558
PM_NODE_ALIGNAS struct pm_node * body
LambdaNode::body.
Definition ast.h:5583
PM_NODE_ALIGNAS struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5578
LocalVariableAndWriteNode.
Definition ast.h:5598
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5620
pm_node_t base
The embedded base node.
Definition ast.h:5600
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5625
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5610
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5615
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5605
LocalVariableOperatorWriteNode.
Definition ast.h:5640
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5672
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5667
pm_node_t base
The embedded base node.
Definition ast.h:5642
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5647
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5652
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5657
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5662
LocalVariableOrWriteNode.
Definition ast.h:5687
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5704
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5714
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5699
pm_node_t base
The embedded base node.
Definition ast.h:5689
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5709
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5694
LocalVariableReadNode.
Definition ast.h:5729
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5759
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5746
pm_node_t base
The embedded base node.
Definition ast.h:5731
LocalVariableTargetNode.
Definition ast.h:5777
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5789
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5784
pm_node_t base
The embedded base node.
Definition ast.h:5779
LocalVariableWriteNode.
Definition ast.h:5804
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5857
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5867
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5840
pm_node_t base
The embedded base node.
Definition ast.h:5806
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5830
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5817
This struct represents a slice in the source code, defined by an offset and a length.
Definition ast.h:579
uint32_t start
The offset of the location from the start of the source.
Definition ast.h:581
uint32_t length
The length of the location.
Definition ast.h:584
MatchLastLineNode.
Definition ast.h:5895
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5907
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5902
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5912
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5917
pm_node_t base
The embedded base node.
Definition ast.h:5897
MatchPredicateNode.
Definition ast.h:5932
pm_location_t keyword_loc
MatchPredicateNode::keyword_loc.
Definition ast.h:5949
PM_NODE_ALIGNAS struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5944
PM_NODE_ALIGNAS struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5939
pm_node_t base
The embedded base node.
Definition ast.h:5934
MatchRequiredNode.
Definition ast.h:5964
pm_node_t base
The embedded base node.
Definition ast.h:5966
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6035
PM_NODE_ALIGNAS struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:6025
PM_NODE_ALIGNAS struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5976
MatchWriteNode.
Definition ast.h:6050
pm_node_t base
The embedded base node.
Definition ast.h:6052
PM_NODE_ALIGNAS struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6057
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6062
ModuleNode.
Definition ast.h:6077
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6104
PM_NODE_ALIGNAS struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6094
PM_NODE_ALIGNAS struct pm_node * body
ModuleNode::body.
Definition ast.h:6099
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6084
pm_node_t base
The embedded base node.
Definition ast.h:6079
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6089
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6109
MultiTargetNode.
Definition ast.h:6129
PM_NODE_ALIGNAS struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6166
pm_node_t base
The embedded base node.
Definition ast.h:6131
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6186
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6146
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6196
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6176
MultiWriteNode.
Definition ast.h:6211
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6278
PM_NODE_ALIGNAS struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6248
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6258
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6288
PM_NODE_ALIGNAS struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6298
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6268
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6228
pm_node_t base
The embedded base node.
Definition ast.h:6213
NextNode.
Definition ast.h:6313
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6320
pm_node_t base
The embedded base node.
Definition ast.h:6315
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6325
NilNode.
Definition ast.h:6340
pm_node_t base
The embedded base node.
Definition ast.h:6342
NoBlockParameterNode.
Definition ast.h:6358
pm_location_t keyword_loc
NoBlockParameterNode::keyword_loc.
Definition ast.h:6370
pm_node_t base
The embedded base node.
Definition ast.h:6360
pm_location_t operator_loc
NoBlockParameterNode::operator_loc.
Definition ast.h:6365
NoKeywordsParameterNode.
Definition ast.h:6386
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6398
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6393
pm_node_t base
The embedded base node.
Definition ast.h:6388
A list of nodes in the source, most often used for lists of children.
Definition ast.h:592
size_t size
The number of nodes in the list.
Definition ast.h:594
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:600
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:597
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1090
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1095
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1109
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1101
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1115
NumberedParametersNode.
Definition ast.h:6413
pm_node_t base
The embedded base node.
Definition ast.h:6415
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6420
NumberedReferenceReadNode.
Definition ast.h:6435
pm_node_t base
The embedded base node.
Definition ast.h:6437
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6450
OptionalKeywordParameterNode.
Definition ast.h:6469
pm_node_t base
The embedded base node.
Definition ast.h:6471
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6476
PM_NODE_ALIGNAS struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6486
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6481
OptionalParameterNode.
Definition ast.h:6505
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6517
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6512
pm_node_t base
The embedded base node.
Definition ast.h:6507
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6522
PM_NODE_ALIGNAS struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6527
OrNode.
Definition ast.h:6542
PM_NODE_ALIGNAS struct pm_node * right
OrNode::right.
Definition ast.h:6570
pm_node_t base
The embedded base node.
Definition ast.h:6544
PM_NODE_ALIGNAS struct pm_node * left
OrNode::left.
Definition ast.h:6557
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6580
ParametersNode.
Definition ast.h:6596
PM_NODE_ALIGNAS struct pm_node * block
ParametersNode::block.
Definition ast.h:6633
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6603
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6608
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6618
pm_node_t base
The embedded base node.
Definition ast.h:6598
PM_NODE_ALIGNAS struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6613
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6623
PM_NODE_ALIGNAS struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6628
ParenthesesNode.
Definition ast.h:6651
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6668
pm_node_t base
The embedded base node.
Definition ast.h:6653
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6663
PM_NODE_ALIGNAS struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6658
PinnedExpressionNode.
Definition ast.h:6683
pm_node_t base
The embedded base node.
Definition ast.h:6685
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6725
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6715
PM_NODE_ALIGNAS struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6695
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6705
PinnedVariableNode.
Definition ast.h:6740
pm_node_t base
The embedded base node.
Definition ast.h:6742
PM_NODE_ALIGNAS struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6752
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6762
PostExecutionNode.
Definition ast.h:6777
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6799
pm_node_t base
The embedded base node.
Definition ast.h:6779
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6794
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6789
PM_NODE_ALIGNAS struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6784
PreExecutionNode.
Definition ast.h:6814
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6836
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6831
PM_NODE_ALIGNAS struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6821
pm_node_t base
The embedded base node.
Definition ast.h:6816
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6826
ProgramNode.
Definition ast.h:6848
pm_node_t base
The embedded base node.
Definition ast.h:6850
PM_NODE_ALIGNAS struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6860
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6855
RangeNode.
Definition ast.h:6881
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6917
pm_node_t base
The embedded base node.
Definition ast.h:6883
PM_NODE_ALIGNAS struct pm_node * right
RangeNode::right.
Definition ast.h:6910
PM_NODE_ALIGNAS struct pm_node * left
RangeNode::left.
Definition ast.h:6896
RationalNode.
Definition ast.h:6938
pm_node_t base
The embedded base node.
Definition ast.h:6940
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6958
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6949
RedoNode.
Definition ast.h:6973
pm_node_t base
The embedded base node.
Definition ast.h:6975
RegularExpressionNode.
Definition ast.h:7003
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:7020
pm_node_t base
The embedded base node.
Definition ast.h:7005
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:7025
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:7010
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:7015
RequiredKeywordParameterNode.
Definition ast.h:7044
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7056
pm_node_t base
The embedded base node.
Definition ast.h:7046
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7051
RequiredParameterNode.
Definition ast.h:7075
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7082
pm_node_t base
The embedded base node.
Definition ast.h:7077
RescueModifierNode.
Definition ast.h:7097
PM_NODE_ALIGNAS struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7104
pm_node_t base
The embedded base node.
Definition ast.h:7099
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7109
PM_NODE_ALIGNAS struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7114
RescueNode.
Definition ast.h:7134
PM_NODE_ALIGNAS struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7166
PM_NODE_ALIGNAS struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7171
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7141
PM_NODE_ALIGNAS struct pm_node * reference
RescueNode::reference.
Definition ast.h:7156
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7161
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7151
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7146
pm_node_t base
The embedded base node.
Definition ast.h:7136
RestParameterNode.
Definition ast.h:7190
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7197
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7202
pm_node_t base
The embedded base node.
Definition ast.h:7192
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7207
RetryNode.
Definition ast.h:7222
pm_node_t base
The embedded base node.
Definition ast.h:7224
ReturnNode.
Definition ast.h:7239
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7251
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7246
pm_node_t base
The embedded base node.
Definition ast.h:7241
SelfNode.
Definition ast.h:7266
pm_node_t base
The embedded base node.
Definition ast.h:7268
ShareableConstantNode.
Definition ast.h:7289
PM_NODE_ALIGNAS struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7298
pm_node_t base
The embedded base node.
Definition ast.h:7291
SingletonClassNode.
Definition ast.h:7313
PM_NODE_ALIGNAS struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7340
pm_node_t base
The embedded base node.
Definition ast.h:7315
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7320
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7330
PM_NODE_ALIGNAS struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7335
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7345
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7325
SourceEncodingNode.
Definition ast.h:7360
pm_node_t base
The embedded base node.
Definition ast.h:7362
SourceFileNode.
Definition ast.h:7383
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7392
pm_node_t base
The embedded base node.
Definition ast.h:7385
SourceLineNode.
Definition ast.h:7407
pm_node_t base
The embedded base node.
Definition ast.h:7409
SplatNode.
Definition ast.h:7424
pm_node_t base
The embedded base node.
Definition ast.h:7426
PM_NODE_ALIGNAS struct pm_node * expression
SplatNode::expression.
Definition ast.h:7436
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7431
StatementsNode.
Definition ast.h:7451
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7458
pm_node_t base
The embedded base node.
Definition ast.h:7453
StringNode.
Definition ast.h:7485
pm_node_t base
The embedded base node.
Definition ast.h:7487
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7507
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7497
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7502
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7492
A view of a sequence of bytes.
Definition stringy.h:23
SuperNode.
Definition ast.h:7527
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7546
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7539
pm_node_t base
The embedded base node.
Definition ast.h:7529
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7534
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7551
PM_NODE_ALIGNAS struct pm_node * block
SuperNode::block.
Definition ast.h:7556
SymbolNode.
Definition ast.h:7579
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7586
pm_location_t content_loc
SymbolNode::content_loc.
Definition ast.h:7591
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7596
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7601
pm_node_t base
The embedded base node.
Definition ast.h:7581
This struct represents a token in the Ruby source.
Definition ast.h:551
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:559
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:556
pm_token_type_t type
The type of the token.
Definition ast.h:553
TrueNode.
Definition ast.h:7616
pm_node_t base
The embedded base node.
Definition ast.h:7618
UndefNode.
Definition ast.h:7633
pm_node_t base
The embedded base node.
Definition ast.h:7635
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7645
struct pm_node_list names
UndefNode::names.
Definition ast.h:7640
UnlessNode.
Definition ast.h:7663
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7701
PM_NODE_ALIGNAS struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7691
PM_NODE_ALIGNAS struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7712
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7732
PM_NODE_ALIGNAS struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7722
pm_node_t base
The embedded base node.
Definition ast.h:7665
pm_location_t unless_keyword_loc
UnlessNode::unless_keyword_loc.
Definition ast.h:7678
UntilNode.
Definition ast.h:7753
pm_location_t end_keyword_loc
UntilNode::end_keyword_loc.
Definition ast.h:7770
pm_location_t until_keyword_loc
UntilNode::until_keyword_loc.
Definition ast.h:7760
pm_node_t base
The embedded base node.
Definition ast.h:7755
PM_NODE_ALIGNAS struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7780
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7765
PM_NODE_ALIGNAS struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7775
WhenNode.
Definition ast.h:7797
pm_location_t when_keyword_loc
WhenNode::when_keyword_loc.
Definition ast.h:7804
pm_node_t base
The embedded base node.
Definition ast.h:7799
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7814
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7819
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7809
WhileNode.
Definition ast.h:7840
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7867
pm_location_t while_keyword_loc
WhileNode::while_keyword_loc.
Definition ast.h:7847
pm_location_t end_keyword_loc
WhileNode::end_keyword_loc.
Definition ast.h:7857
pm_node_t base
The embedded base node.
Definition ast.h:7842
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7852
PM_NODE_ALIGNAS struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7862
XStringNode.
Definition ast.h:7886
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7903
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7893
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7898
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7908
pm_node_t base
The embedded base node.
Definition ast.h:7888
YieldNode.
Definition ast.h:7923
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7930
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7935
pm_node_t base
The embedded base node.
Definition ast.h:7925
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7945
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7940