Ruby 4.1.0dev (2026-03-01 revision 19b636d3ecc8a824437e0d6abd7fe0c24b594ce0)
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
14#include "prism/defines.h"
18
19#include <assert.h>
20#include <stddef.h>
21#include <stdint.h>
22
26typedef enum pm_token_type {
28 PM_TOKEN_EOF = 1,
29
31 PM_TOKEN_BRACE_RIGHT,
32
34 PM_TOKEN_COMMA,
35
37 PM_TOKEN_EMBEXPR_END,
38
40 PM_TOKEN_KEYWORD_DO,
41
43 PM_TOKEN_KEYWORD_ELSE,
44
46 PM_TOKEN_KEYWORD_ELSIF,
47
49 PM_TOKEN_KEYWORD_END,
50
52 PM_TOKEN_KEYWORD_ENSURE,
53
55 PM_TOKEN_KEYWORD_IN,
56
58 PM_TOKEN_KEYWORD_RESCUE,
59
61 PM_TOKEN_KEYWORD_THEN,
62
64 PM_TOKEN_KEYWORD_WHEN,
65
67 PM_TOKEN_NEWLINE,
68
70 PM_TOKEN_PARENTHESIS_RIGHT,
71
73 PM_TOKEN_PIPE,
74
76 PM_TOKEN_SEMICOLON,
77
79 PM_TOKEN_AMPERSAND,
80
82 PM_TOKEN_AMPERSAND_AMPERSAND,
83
85 PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL,
86
88 PM_TOKEN_AMPERSAND_DOT,
89
91 PM_TOKEN_AMPERSAND_EQUAL,
92
94 PM_TOKEN_BACKTICK,
95
97 PM_TOKEN_BACK_REFERENCE,
98
100 PM_TOKEN_BANG,
101
103 PM_TOKEN_BANG_EQUAL,
104
106 PM_TOKEN_BANG_TILDE,
107
109 PM_TOKEN_BRACE_LEFT,
110
112 PM_TOKEN_BRACKET_LEFT,
113
115 PM_TOKEN_BRACKET_LEFT_ARRAY,
116
118 PM_TOKEN_BRACKET_LEFT_RIGHT,
119
121 PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL,
122
124 PM_TOKEN_BRACKET_RIGHT,
125
127 PM_TOKEN_CARET,
128
130 PM_TOKEN_CARET_EQUAL,
131
133 PM_TOKEN_CHARACTER_LITERAL,
134
136 PM_TOKEN_CLASS_VARIABLE,
137
139 PM_TOKEN_COLON,
140
142 PM_TOKEN_COLON_COLON,
143
145 PM_TOKEN_COMMENT,
146
148 PM_TOKEN_CONSTANT,
149
151 PM_TOKEN_DOT,
152
154 PM_TOKEN_DOT_DOT,
155
157 PM_TOKEN_DOT_DOT_DOT,
158
160 PM_TOKEN_EMBDOC_BEGIN,
161
163 PM_TOKEN_EMBDOC_END,
164
166 PM_TOKEN_EMBDOC_LINE,
167
169 PM_TOKEN_EMBEXPR_BEGIN,
170
172 PM_TOKEN_EMBVAR,
173
175 PM_TOKEN_EQUAL,
176
178 PM_TOKEN_EQUAL_EQUAL,
179
181 PM_TOKEN_EQUAL_EQUAL_EQUAL,
182
184 PM_TOKEN_EQUAL_GREATER,
185
187 PM_TOKEN_EQUAL_TILDE,
188
190 PM_TOKEN_FLOAT,
191
193 PM_TOKEN_FLOAT_IMAGINARY,
194
196 PM_TOKEN_FLOAT_RATIONAL,
197
199 PM_TOKEN_FLOAT_RATIONAL_IMAGINARY,
200
202 PM_TOKEN_GLOBAL_VARIABLE,
203
205 PM_TOKEN_GREATER,
206
208 PM_TOKEN_GREATER_EQUAL,
209
211 PM_TOKEN_GREATER_GREATER,
212
214 PM_TOKEN_GREATER_GREATER_EQUAL,
215
217 PM_TOKEN_HEREDOC_END,
218
220 PM_TOKEN_HEREDOC_START,
221
223 PM_TOKEN_IDENTIFIER,
224
226 PM_TOKEN_IGNORED_NEWLINE,
227
229 PM_TOKEN_INSTANCE_VARIABLE,
230
232 PM_TOKEN_INTEGER,
233
235 PM_TOKEN_INTEGER_IMAGINARY,
236
238 PM_TOKEN_INTEGER_RATIONAL,
239
241 PM_TOKEN_INTEGER_RATIONAL_IMAGINARY,
242
244 PM_TOKEN_KEYWORD_ALIAS,
245
247 PM_TOKEN_KEYWORD_AND,
248
250 PM_TOKEN_KEYWORD_BEGIN,
251
253 PM_TOKEN_KEYWORD_BEGIN_UPCASE,
254
256 PM_TOKEN_KEYWORD_BREAK,
257
259 PM_TOKEN_KEYWORD_CASE,
260
262 PM_TOKEN_KEYWORD_CLASS,
263
265 PM_TOKEN_KEYWORD_DEF,
266
268 PM_TOKEN_KEYWORD_DEFINED,
269
271 PM_TOKEN_KEYWORD_DO_LOOP,
272
274 PM_TOKEN_KEYWORD_END_UPCASE,
275
277 PM_TOKEN_KEYWORD_FALSE,
278
280 PM_TOKEN_KEYWORD_FOR,
281
283 PM_TOKEN_KEYWORD_IF,
284
286 PM_TOKEN_KEYWORD_IF_MODIFIER,
287
289 PM_TOKEN_KEYWORD_MODULE,
290
292 PM_TOKEN_KEYWORD_NEXT,
293
295 PM_TOKEN_KEYWORD_NIL,
296
298 PM_TOKEN_KEYWORD_NOT,
299
301 PM_TOKEN_KEYWORD_OR,
302
304 PM_TOKEN_KEYWORD_REDO,
305
307 PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
308
310 PM_TOKEN_KEYWORD_RETRY,
311
313 PM_TOKEN_KEYWORD_RETURN,
314
316 PM_TOKEN_KEYWORD_SELF,
317
319 PM_TOKEN_KEYWORD_SUPER,
320
322 PM_TOKEN_KEYWORD_TRUE,
323
325 PM_TOKEN_KEYWORD_UNDEF,
326
328 PM_TOKEN_KEYWORD_UNLESS,
329
331 PM_TOKEN_KEYWORD_UNLESS_MODIFIER,
332
334 PM_TOKEN_KEYWORD_UNTIL,
335
337 PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
338
340 PM_TOKEN_KEYWORD_WHILE,
341
343 PM_TOKEN_KEYWORD_WHILE_MODIFIER,
344
346 PM_TOKEN_KEYWORD_YIELD,
347
349 PM_TOKEN_KEYWORD___ENCODING__,
350
352 PM_TOKEN_KEYWORD___FILE__,
353
355 PM_TOKEN_KEYWORD___LINE__,
356
358 PM_TOKEN_LABEL,
359
361 PM_TOKEN_LABEL_END,
362
364 PM_TOKEN_LAMBDA_BEGIN,
365
367 PM_TOKEN_LESS,
368
370 PM_TOKEN_LESS_EQUAL,
371
373 PM_TOKEN_LESS_EQUAL_GREATER,
374
376 PM_TOKEN_LESS_LESS,
377
379 PM_TOKEN_LESS_LESS_EQUAL,
380
382 PM_TOKEN_METHOD_NAME,
383
385 PM_TOKEN_MINUS,
386
388 PM_TOKEN_MINUS_EQUAL,
389
391 PM_TOKEN_MINUS_GREATER,
392
394 PM_TOKEN_NUMBERED_REFERENCE,
395
397 PM_TOKEN_PARENTHESIS_LEFT,
398
400 PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
401
403 PM_TOKEN_PERCENT,
404
406 PM_TOKEN_PERCENT_EQUAL,
407
409 PM_TOKEN_PERCENT_LOWER_I,
410
412 PM_TOKEN_PERCENT_LOWER_W,
413
415 PM_TOKEN_PERCENT_LOWER_X,
416
418 PM_TOKEN_PERCENT_UPPER_I,
419
421 PM_TOKEN_PERCENT_UPPER_W,
422
424 PM_TOKEN_PIPE_EQUAL,
425
427 PM_TOKEN_PIPE_PIPE,
428
430 PM_TOKEN_PIPE_PIPE_EQUAL,
431
433 PM_TOKEN_PLUS,
434
436 PM_TOKEN_PLUS_EQUAL,
437
439 PM_TOKEN_QUESTION_MARK,
440
442 PM_TOKEN_REGEXP_BEGIN,
443
445 PM_TOKEN_REGEXP_END,
446
448 PM_TOKEN_SLASH,
449
451 PM_TOKEN_SLASH_EQUAL,
452
454 PM_TOKEN_STAR,
455
457 PM_TOKEN_STAR_EQUAL,
458
460 PM_TOKEN_STAR_STAR,
461
463 PM_TOKEN_STAR_STAR_EQUAL,
464
466 PM_TOKEN_STRING_BEGIN,
467
469 PM_TOKEN_STRING_CONTENT,
470
472 PM_TOKEN_STRING_END,
473
475 PM_TOKEN_SYMBOL_BEGIN,
476
478 PM_TOKEN_TILDE,
479
481 PM_TOKEN_UAMPERSAND,
482
484 PM_TOKEN_UCOLON_COLON,
485
487 PM_TOKEN_UDOT_DOT,
488
490 PM_TOKEN_UDOT_DOT_DOT,
491
493 PM_TOKEN_UMINUS,
494
496 PM_TOKEN_UMINUS_NUM,
497
499 PM_TOKEN_UPLUS,
500
502 PM_TOKEN_USTAR,
503
505 PM_TOKEN_USTAR_STAR,
506
508 PM_TOKEN_WORDS_SEP,
509
511 PM_TOKEN___END__,
512
514 PM_TOKEN_MAXIMUM,
515} pm_token_type_t;
516
521typedef struct {
523 pm_token_type_t type;
524
526 const uint8_t *start;
527
529 const uint8_t *end;
530} pm_token_t;
531
540typedef struct {
542 uint32_t start;
543
545 uint32_t length;
547
548struct pm_node;
549
553typedef struct pm_node_list {
555 size_t size;
556
558 size_t capacity;
559
561 struct pm_node **nodes;
563
567enum pm_node_type {
569 PM_ALIAS_GLOBAL_VARIABLE_NODE = 1,
570
572 PM_ALIAS_METHOD_NODE = 2,
573
575 PM_ALTERNATION_PATTERN_NODE = 3,
576
578 PM_AND_NODE = 4,
579
581 PM_ARGUMENTS_NODE = 5,
582
584 PM_ARRAY_NODE = 6,
585
587 PM_ARRAY_PATTERN_NODE = 7,
588
590 PM_ASSOC_NODE = 8,
591
593 PM_ASSOC_SPLAT_NODE = 9,
594
596 PM_BACK_REFERENCE_READ_NODE = 10,
597
599 PM_BEGIN_NODE = 11,
600
602 PM_BLOCK_ARGUMENT_NODE = 12,
603
605 PM_BLOCK_LOCAL_VARIABLE_NODE = 13,
606
608 PM_BLOCK_NODE = 14,
609
611 PM_BLOCK_PARAMETER_NODE = 15,
612
614 PM_BLOCK_PARAMETERS_NODE = 16,
615
617 PM_BREAK_NODE = 17,
618
620 PM_CALL_AND_WRITE_NODE = 18,
621
623 PM_CALL_NODE = 19,
624
626 PM_CALL_OPERATOR_WRITE_NODE = 20,
627
629 PM_CALL_OR_WRITE_NODE = 21,
630
632 PM_CALL_TARGET_NODE = 22,
633
635 PM_CAPTURE_PATTERN_NODE = 23,
636
638 PM_CASE_MATCH_NODE = 24,
639
641 PM_CASE_NODE = 25,
642
644 PM_CLASS_NODE = 26,
645
647 PM_CLASS_VARIABLE_AND_WRITE_NODE = 27,
648
650 PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 28,
651
653 PM_CLASS_VARIABLE_OR_WRITE_NODE = 29,
654
656 PM_CLASS_VARIABLE_READ_NODE = 30,
657
659 PM_CLASS_VARIABLE_TARGET_NODE = 31,
660
662 PM_CLASS_VARIABLE_WRITE_NODE = 32,
663
665 PM_CONSTANT_AND_WRITE_NODE = 33,
666
668 PM_CONSTANT_OPERATOR_WRITE_NODE = 34,
669
671 PM_CONSTANT_OR_WRITE_NODE = 35,
672
674 PM_CONSTANT_PATH_AND_WRITE_NODE = 36,
675
677 PM_CONSTANT_PATH_NODE = 37,
678
680 PM_CONSTANT_PATH_OPERATOR_WRITE_NODE = 38,
681
683 PM_CONSTANT_PATH_OR_WRITE_NODE = 39,
684
686 PM_CONSTANT_PATH_TARGET_NODE = 40,
687
689 PM_CONSTANT_PATH_WRITE_NODE = 41,
690
692 PM_CONSTANT_READ_NODE = 42,
693
695 PM_CONSTANT_TARGET_NODE = 43,
696
698 PM_CONSTANT_WRITE_NODE = 44,
699
701 PM_DEF_NODE = 45,
702
704 PM_DEFINED_NODE = 46,
705
707 PM_ELSE_NODE = 47,
708
710 PM_EMBEDDED_STATEMENTS_NODE = 48,
711
713 PM_EMBEDDED_VARIABLE_NODE = 49,
714
716 PM_ENSURE_NODE = 50,
717
719 PM_FALSE_NODE = 51,
720
722 PM_FIND_PATTERN_NODE = 52,
723
725 PM_FLIP_FLOP_NODE = 53,
726
728 PM_FLOAT_NODE = 54,
729
731 PM_FOR_NODE = 55,
732
734 PM_FORWARDING_ARGUMENTS_NODE = 56,
735
737 PM_FORWARDING_PARAMETER_NODE = 57,
738
740 PM_FORWARDING_SUPER_NODE = 58,
741
743 PM_GLOBAL_VARIABLE_AND_WRITE_NODE = 59,
744
746 PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 60,
747
749 PM_GLOBAL_VARIABLE_OR_WRITE_NODE = 61,
750
752 PM_GLOBAL_VARIABLE_READ_NODE = 62,
753
755 PM_GLOBAL_VARIABLE_TARGET_NODE = 63,
756
758 PM_GLOBAL_VARIABLE_WRITE_NODE = 64,
759
761 PM_HASH_NODE = 65,
762
764 PM_HASH_PATTERN_NODE = 66,
765
767 PM_IF_NODE = 67,
768
770 PM_IMAGINARY_NODE = 68,
771
773 PM_IMPLICIT_NODE = 69,
774
776 PM_IMPLICIT_REST_NODE = 70,
777
779 PM_IN_NODE = 71,
780
782 PM_INDEX_AND_WRITE_NODE = 72,
783
785 PM_INDEX_OPERATOR_WRITE_NODE = 73,
786
788 PM_INDEX_OR_WRITE_NODE = 74,
789
791 PM_INDEX_TARGET_NODE = 75,
792
794 PM_INSTANCE_VARIABLE_AND_WRITE_NODE = 76,
795
797 PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 77,
798
800 PM_INSTANCE_VARIABLE_OR_WRITE_NODE = 78,
801
803 PM_INSTANCE_VARIABLE_READ_NODE = 79,
804
806 PM_INSTANCE_VARIABLE_TARGET_NODE = 80,
807
809 PM_INSTANCE_VARIABLE_WRITE_NODE = 81,
810
812 PM_INTEGER_NODE = 82,
813
815 PM_INTERPOLATED_MATCH_LAST_LINE_NODE = 83,
816
818 PM_INTERPOLATED_REGULAR_EXPRESSION_NODE = 84,
819
821 PM_INTERPOLATED_STRING_NODE = 85,
822
824 PM_INTERPOLATED_SYMBOL_NODE = 86,
825
827 PM_INTERPOLATED_X_STRING_NODE = 87,
828
830 PM_IT_LOCAL_VARIABLE_READ_NODE = 88,
831
833 PM_IT_PARAMETERS_NODE = 89,
834
836 PM_KEYWORD_HASH_NODE = 90,
837
839 PM_KEYWORD_REST_PARAMETER_NODE = 91,
840
842 PM_LAMBDA_NODE = 92,
843
845 PM_LOCAL_VARIABLE_AND_WRITE_NODE = 93,
846
848 PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 94,
849
851 PM_LOCAL_VARIABLE_OR_WRITE_NODE = 95,
852
854 PM_LOCAL_VARIABLE_READ_NODE = 96,
855
857 PM_LOCAL_VARIABLE_TARGET_NODE = 97,
858
860 PM_LOCAL_VARIABLE_WRITE_NODE = 98,
861
863 PM_MATCH_LAST_LINE_NODE = 99,
864
866 PM_MATCH_PREDICATE_NODE = 100,
867
869 PM_MATCH_REQUIRED_NODE = 101,
870
872 PM_MATCH_WRITE_NODE = 102,
873
875 PM_MISSING_NODE = 103,
876
878 PM_MODULE_NODE = 104,
879
881 PM_MULTI_TARGET_NODE = 105,
882
884 PM_MULTI_WRITE_NODE = 106,
885
887 PM_NEXT_NODE = 107,
888
890 PM_NIL_NODE = 108,
891
893 PM_NO_BLOCK_PARAMETER_NODE = 109,
894
896 PM_NO_KEYWORDS_PARAMETER_NODE = 110,
897
899 PM_NUMBERED_PARAMETERS_NODE = 111,
900
902 PM_NUMBERED_REFERENCE_READ_NODE = 112,
903
905 PM_OPTIONAL_KEYWORD_PARAMETER_NODE = 113,
906
908 PM_OPTIONAL_PARAMETER_NODE = 114,
909
911 PM_OR_NODE = 115,
912
914 PM_PARAMETERS_NODE = 116,
915
917 PM_PARENTHESES_NODE = 117,
918
920 PM_PINNED_EXPRESSION_NODE = 118,
921
923 PM_PINNED_VARIABLE_NODE = 119,
924
926 PM_POST_EXECUTION_NODE = 120,
927
929 PM_PRE_EXECUTION_NODE = 121,
930
932 PM_PROGRAM_NODE = 122,
933
935 PM_RANGE_NODE = 123,
936
938 PM_RATIONAL_NODE = 124,
939
941 PM_REDO_NODE = 125,
942
944 PM_REGULAR_EXPRESSION_NODE = 126,
945
947 PM_REQUIRED_KEYWORD_PARAMETER_NODE = 127,
948
950 PM_REQUIRED_PARAMETER_NODE = 128,
951
953 PM_RESCUE_MODIFIER_NODE = 129,
954
956 PM_RESCUE_NODE = 130,
957
959 PM_REST_PARAMETER_NODE = 131,
960
962 PM_RETRY_NODE = 132,
963
965 PM_RETURN_NODE = 133,
966
968 PM_SELF_NODE = 134,
969
971 PM_SHAREABLE_CONSTANT_NODE = 135,
972
974 PM_SINGLETON_CLASS_NODE = 136,
975
977 PM_SOURCE_ENCODING_NODE = 137,
978
980 PM_SOURCE_FILE_NODE = 138,
981
983 PM_SOURCE_LINE_NODE = 139,
984
986 PM_SPLAT_NODE = 140,
987
989 PM_STATEMENTS_NODE = 141,
990
992 PM_STRING_NODE = 142,
993
995 PM_SUPER_NODE = 143,
996
998 PM_SYMBOL_NODE = 144,
999
1001 PM_TRUE_NODE = 145,
1002
1004 PM_UNDEF_NODE = 146,
1005
1007 PM_UNLESS_NODE = 147,
1008
1010 PM_UNTIL_NODE = 148,
1011
1013 PM_WHEN_NODE = 149,
1014
1016 PM_WHILE_NODE = 150,
1017
1019 PM_X_STRING_NODE = 151,
1020
1022 PM_YIELD_NODE = 152,
1023
1025 PM_SCOPE_NODE
1026};
1027
1032typedef uint16_t pm_node_type_t;
1033
1038typedef uint16_t pm_node_flags_t;
1039
1044static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1045static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1046
1051typedef struct pm_node {
1056 pm_node_type_t type;
1057
1062 pm_node_flags_t flags;
1063
1068 uint32_t node_id;
1069
1075} pm_node_t;
1076
1080#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1081
1086#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1087
1091#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1092
1096#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1097
1101#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1102
1106#ifdef _MSC_VER
1107#define PM_NODE_ALIGNAS __declspec(align(8))
1108#else
1109#define PM_NODE_ALIGNAS PRISM_ALIGNAS(PRISM_ALIGNOF(void *))
1110#endif
1111
1158
1171typedef struct pm_alias_method_node {
1174
1189 PM_NODE_ALIGNAS struct pm_node *new_name;
1190
1205 PM_NODE_ALIGNAS struct pm_node *old_name;
1206
1217
1233
1242 PM_NODE_ALIGNAS struct pm_node *left;
1243
1252 PM_NODE_ALIGNAS struct pm_node *right;
1253
1264
1277typedef struct pm_and_node {
1280
1292 PM_NODE_ALIGNAS struct pm_node *left;
1293
1305 PM_NODE_ALIGNAS struct pm_node *right;
1306
1317
1351
1402
1497
1510typedef struct pm_assoc_node {
1513
1528 PM_NODE_ALIGNAS struct pm_node *key;
1529
1541 PM_NODE_ALIGNAS struct pm_node *value;
1542
1553
1590
1618
1633typedef struct pm_begin_node {
1636
1646
1655 PM_NODE_ALIGNAS struct pm_statements_node *statements;
1656
1665 PM_NODE_ALIGNAS struct pm_rescue_node *rescue_clause;
1666
1675 PM_NODE_ALIGNAS struct pm_else_node *else_clause;
1676
1685 PM_NODE_ALIGNAS struct pm_ensure_node *ensure_clause;
1686
1697
1734
1764
1835
1888
1965
2002
2095
2235
2338
2431
2502
2549
2618
2687
2773
2830
2872
2909
2937
2959
3020
3057
3099
3136
3168
3234
3271
3303
3340
3396
3424
3446
3507
3585
3622
3654
3686
3713
3749
3766
3788typedef struct pm_find_pattern_node {
3791
3800 PM_NODE_ALIGNAS struct pm_node *constant;
3801
3813 PM_NODE_ALIGNAS struct pm_splat_node *left;
3814
3827
3839 PM_NODE_ALIGNAS struct pm_node *right;
3840
3853
3867
3883typedef struct pm_flip_flop_node {
3886
3890 PM_NODE_ALIGNAS struct pm_node *left;
3891
3895 PM_NODE_ALIGNAS struct pm_node *right;
3896
3902
3915typedef struct pm_float_node {
3918
3924 double value;
3926
4015
4034
4052
4081
4118
4160
4197
4225
4247
4308
4358
4380typedef struct pm_hash_pattern_node {
4383
4395 PM_NODE_ALIGNAS struct pm_node *constant;
4396
4406
4421 PM_NODE_ALIGNAS struct pm_node *rest;
4422
4435
4449
4468typedef struct pm_if_node {
4471
4483
4500 PM_NODE_ALIGNAS struct pm_node *predicate;
4501
4514
4527 PM_NODE_ALIGNAS struct pm_statements_node *statements;
4528
4546 PM_NODE_ALIGNAS struct pm_node *subsequent;
4547
4559} pm_if_node_t;
4560
4573typedef struct pm_imaginary_node {
4576
4580 PM_NODE_ALIGNAS struct pm_node *numeric;
4582
4601typedef struct pm_implicit_node {
4604
4608 PM_NODE_ALIGNAS struct pm_node *value;
4610
4636
4649typedef struct pm_in_node {
4652
4656 PM_NODE_ALIGNAS struct pm_node *pattern;
4657
4661 PM_NODE_ALIGNAS struct pm_statements_node *statements;
4662
4667
4672} pm_in_node_t;
4673
4736
4804
4867
4894typedef struct pm_index_target_node {
4897
4901 PM_NODE_ALIGNAS struct pm_node *receiver;
4902
4907
4911 PM_NODE_ALIGNAS struct pm_arguments_node *arguments;
4912
4917
4921 PM_NODE_ALIGNAS struct pm_block_argument_node *block;
4923
4960
5002
5039
5067
5089
5150
5180
5225
5270
5306
5338
5370
5387
5404
5429
5465
5512
5554
5601
5643
5688
5718
5796
5846
5862
5866 PM_NODE_ALIGNAS struct pm_node *value;
5867
5871 PM_NODE_ALIGNAS struct pm_node *pattern;
5872
5878
5894
5903 PM_NODE_ALIGNAS struct pm_node *value;
5904
5952 PM_NODE_ALIGNAS struct pm_node *pattern;
5953
5964
5977typedef struct pm_match_write_node {
5980
5984 PM_NODE_ALIGNAS struct pm_call_node *call;
5985
5991
6005
6052
6139
6241
6268
6285
6313
6341
6363
6393
6429
6470
6483typedef struct pm_or_node {
6486
6498 PM_NODE_ALIGNAS struct pm_node *left;
6499
6511 PM_NODE_ALIGNAS struct pm_node *right;
6512
6522} pm_or_node_t;
6523
6537typedef struct pm_parameters_node {
6540
6545
6550
6554 PM_NODE_ALIGNAS struct pm_node *rest;
6555
6560
6565
6569 PM_NODE_ALIGNAS struct pm_node *keyword_rest;
6570
6574 PM_NODE_ALIGNAS struct pm_node *block;
6576
6611
6668
6705
6742
6779
6803
6822typedef struct pm_range_node {
6825
6837 PM_NODE_ALIGNAS struct pm_node *left;
6838
6851 PM_NODE_ALIGNAS struct pm_node *right;
6852
6860
6901
6918
6968
6999
7025
7041
7045 PM_NODE_ALIGNAS struct pm_node *expression;
7046
7051
7055 PM_NODE_ALIGNAS struct pm_node *rescue_expression;
7057
7114
7150
7167
7194
7211
7241
7288
7305
7335
7352
7365typedef struct pm_splat_node {
7368
7373
7377 PM_NODE_ALIGNAS struct pm_node *expression;
7379
7401
7450
7499
7544
7561
7588
7675
7723
7762
7810
7851
7888
7892typedef enum pm_arguments_node_flags {
7894 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING = 4,
7895
7897 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS = 8,
7898
7900 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT = 16,
7901
7903 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT = 32,
7904
7906 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
7907
7908 PM_ARGUMENTS_NODE_FLAGS_LAST,
7909} pm_arguments_node_flags_t;
7910
7914typedef enum pm_array_node_flags {
7916 PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
7917
7918 PM_ARRAY_NODE_FLAGS_LAST,
7919} pm_array_node_flags_t;
7920
7924typedef enum pm_call_node_flags {
7926 PM_CALL_NODE_FLAGS_SAFE_NAVIGATION = 4,
7927
7929 PM_CALL_NODE_FLAGS_VARIABLE_CALL = 8,
7930
7932 PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 16,
7933
7935 PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
7936
7937 PM_CALL_NODE_FLAGS_LAST,
7938} pm_call_node_flags_t;
7939
7943typedef enum pm_encoding_flags {
7945 PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING = 4,
7946
7948 PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
7949
7950 PM_ENCODING_FLAGS_LAST,
7951} pm_encoding_flags_t;
7952
7956typedef enum pm_integer_base_flags {
7958 PM_INTEGER_BASE_FLAGS_BINARY = 4,
7959
7961 PM_INTEGER_BASE_FLAGS_DECIMAL = 8,
7962
7964 PM_INTEGER_BASE_FLAGS_OCTAL = 16,
7965
7967 PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
7968
7969 PM_INTEGER_BASE_FLAGS_LAST,
7970} pm_integer_base_flags_t;
7971
7975typedef enum pm_interpolated_string_node_flags {
7977 PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN = 4,
7978
7980 PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
7981
7982 PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
7983} pm_interpolated_string_node_flags_t;
7984
7988typedef enum pm_keyword_hash_node_flags {
7990 PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
7991
7992 PM_KEYWORD_HASH_NODE_FLAGS_LAST,
7993} pm_keyword_hash_node_flags_t;
7994
7998typedef enum pm_loop_flags {
8000 PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8001
8002 PM_LOOP_FLAGS_LAST,
8003} pm_loop_flags_t;
8004
8008typedef enum pm_parameter_flags {
8010 PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8011
8012 PM_PARAMETER_FLAGS_LAST,
8013} pm_parameter_flags_t;
8014
8018typedef enum pm_parentheses_node_flags {
8020 PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8021
8022 PM_PARENTHESES_NODE_FLAGS_LAST,
8023} pm_parentheses_node_flags_t;
8024
8028typedef enum pm_range_flags {
8030 PM_RANGE_FLAGS_EXCLUDE_END = 4,
8031
8032 PM_RANGE_FLAGS_LAST,
8033} pm_range_flags_t;
8034
8038typedef enum pm_regular_expression_flags {
8040 PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 4,
8041
8043 PM_REGULAR_EXPRESSION_FLAGS_EXTENDED = 8,
8044
8046 PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 16,
8047
8049 PM_REGULAR_EXPRESSION_FLAGS_ONCE = 32,
8050
8052 PM_REGULAR_EXPRESSION_FLAGS_EUC_JP = 64,
8053
8055 PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 128,
8056
8058 PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 256,
8059
8061 PM_REGULAR_EXPRESSION_FLAGS_UTF_8 = 512,
8062
8064 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING = 1024,
8065
8067 PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING = 2048,
8068
8070 PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8071
8072 PM_REGULAR_EXPRESSION_FLAGS_LAST,
8073} pm_regular_expression_flags_t;
8074
8078typedef enum pm_shareable_constant_node_flags {
8080 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL = 4,
8081
8083 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING = 8,
8084
8086 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8087
8088 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
8089} pm_shareable_constant_node_flags_t;
8090
8094typedef enum pm_string_flags {
8096 PM_STRING_FLAGS_FORCED_UTF8_ENCODING = 4,
8097
8099 PM_STRING_FLAGS_FORCED_BINARY_ENCODING = 8,
8100
8102 PM_STRING_FLAGS_FROZEN = 16,
8103
8105 PM_STRING_FLAGS_MUTABLE = 32,
8106
8107 PM_STRING_FLAGS_LAST,
8108} pm_string_flags_t;
8109
8113typedef enum pm_symbol_flags {
8115 PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING = 4,
8116
8118 PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING = 8,
8119
8121 PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
8122
8123 PM_SYMBOL_FLAGS_LAST,
8124} pm_symbol_flags_t;
8125
8132#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
8133
8134#endif
A data structure that stores a set of strings.
uint32_t pm_constant_id_t
A constant id is a unique identifier for a constant in the constant pool.
This module provides functions for working with arbitrary-sized integers.
A generic string type that can have various ownership semantics.
Macro definitions used throughout the prism library.
AliasGlobalVariableNode.
Definition ast.h:1124
PM_NODE_ALIGNAS struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1136
pm_node_t base
The embedded base node.
Definition ast.h:1126
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1156
PM_NODE_ALIGNAS struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1146
AliasMethodNode.
Definition ast.h:1171
PM_NODE_ALIGNAS struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1205
pm_node_t base
The embedded base node.
Definition ast.h:1173
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1215
PM_NODE_ALIGNAS struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1189
AlternationPatternNode.
Definition ast.h:1230
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1262
PM_NODE_ALIGNAS struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1242
pm_node_t base
The embedded base node.
Definition ast.h:1232
PM_NODE_ALIGNAS struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1252
AndNode.
Definition ast.h:1277
PM_NODE_ALIGNAS struct pm_node * left
AndNode::left.
Definition ast.h:1292
PM_NODE_ALIGNAS struct pm_node * right
AndNode::right.
Definition ast.h:1305
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1315
pm_node_t base
The embedded base node.
Definition ast.h:1279
ArgumentsNode.
Definition ast.h:1337
pm_node_t base
The embedded base node.
Definition ast.h:1339
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1349
ArrayNode.
Definition ast.h:1367
pm_node_t base
The embedded base node.
Definition ast.h:1369
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1400
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1376
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1388
ArrayPatternNode.
Definition ast.h:1427
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1455
PM_NODE_ALIGNAS struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1465
PM_NODE_ALIGNAS struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1445
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1485
pm_node_t base
The embedded base node.
Definition ast.h:1429
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1495
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1475
AssocNode.
Definition ast.h:1510
pm_node_t base
The embedded base node.
Definition ast.h:1512
PM_NODE_ALIGNAS struct pm_node * value
AssocNode::value.
Definition ast.h:1541
PM_NODE_ALIGNAS struct pm_node * key
AssocNode::key.
Definition ast.h:1528
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1551
AssocSplatNode.
Definition ast.h:1566
pm_node_t base
The embedded base node.
Definition ast.h:1568
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1588
PM_NODE_ALIGNAS struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1578
BackReferenceReadNode.
Definition ast.h:1603
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1616
pm_node_t base
The embedded base node.
Definition ast.h:1605
BeginNode.
Definition ast.h:1633
PM_NODE_ALIGNAS struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1675
PM_NODE_ALIGNAS struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1685
PM_NODE_ALIGNAS struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1655
PM_NODE_ALIGNAS struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1665
pm_node_t base
The embedded base node.
Definition ast.h:1635
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1695
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1645
BlockArgumentNode.
Definition ast.h:1710
PM_NODE_ALIGNAS struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1722
pm_node_t base
The embedded base node.
Definition ast.h:1712
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1732
BlockLocalVariableNode.
Definition ast.h:1750
pm_node_t base
The embedded base node.
Definition ast.h:1752
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1762
BlockNode.
Definition ast.h:1777
pm_node_t base
The embedded base node.
Definition ast.h:1779
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1833
PM_NODE_ALIGNAS struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1803
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1823
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1789
PM_NODE_ALIGNAS struct pm_node * body
BlockNode::body.
Definition ast.h:1813
BlockParameterNode.
Definition ast.h:1852
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1886
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1875
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1865
pm_node_t base
The embedded base node.
Definition ast.h:1854
BlockParametersNode.
Definition ast.h:1905
pm_node_t base
The embedded base node.
Definition ast.h:1907
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1935
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1921
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1963
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1949
BreakNode.
Definition ast.h:1978
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2000
pm_node_t base
The embedded base node.
Definition ast.h:1980
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:1990
CallAndWriteNode.
Definition ast.h:2021
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2083
PM_NODE_ALIGNAS struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2033
pm_node_t base
The embedded base node.
Definition ast.h:2023
PM_NODE_ALIGNAS struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2093
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2043
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2053
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2063
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2073
CallNode.
Definition ast.h:2129
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2190
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2210
pm_constant_id_t name
CallNode::name.
Definition ast.h:2170
pm_node_t base
The embedded base node.
Definition ast.h:2131
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2200
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2223
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2160
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2180
PM_NODE_ALIGNAS struct pm_node * block
CallNode::block.
Definition ast.h:2233
PM_NODE_ALIGNAS struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2147
CallOperatorWriteNode.
Definition ast.h:2254
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2296
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2316
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2326
pm_node_t base
The embedded base node.
Definition ast.h:2256
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2306
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2286
PM_NODE_ALIGNAS struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2266
PM_NODE_ALIGNAS struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2336
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2276
CallOrWriteNode.
Definition ast.h:2357
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2419
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2379
PM_NODE_ALIGNAS struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2369
pm_node_t base
The embedded base node.
Definition ast.h:2359
PM_NODE_ALIGNAS struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2429
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2409
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2399
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2389
CallTargetNode.
Definition ast.h:2458
pm_node_t base
The embedded base node.
Definition ast.h:2460
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2490
PM_NODE_ALIGNAS struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2470
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2480
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2500
CapturePatternNode.
Definition ast.h:2515
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2547
pm_node_t base
The embedded base node.
Definition ast.h:2517
PM_NODE_ALIGNAS struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2527
PM_NODE_ALIGNAS struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2537
CaseMatchNode.
Definition ast.h:2564
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2616
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2586
pm_node_t base
The embedded base node.
Definition ast.h:2566
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2606
PM_NODE_ALIGNAS struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2576
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2596
CaseNode.
Definition ast.h:2633
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2665
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2655
PM_NODE_ALIGNAS struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2645
pm_node_t base
The embedded base node.
Definition ast.h:2635
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2675
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2685
ClassNode.
Definition ast.h:2700
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2717
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2762
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2707
PM_NODE_ALIGNAS struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2742
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2732
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2771
pm_node_t base
The embedded base node.
Definition ast.h:2702
PM_NODE_ALIGNAS struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2722
PM_NODE_ALIGNAS struct pm_node * body
ClassNode::body.
Definition ast.h:2752
ClassVariableAndWriteNode.
Definition ast.h:2786
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2828
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2798
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2818
pm_node_t base
The embedded base node.
Definition ast.h:2788
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2808
ClassVariableOperatorWriteNode.
Definition ast.h:2843
pm_node_t base
The embedded base node.
Definition ast.h:2845
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2850
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2865
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2855
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2870
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2860
ClassVariableOrWriteNode.
Definition ast.h:2885
pm_node_t base
The embedded base node.
Definition ast.h:2887
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2907
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2897
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2902
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2892
ClassVariableReadNode.
Definition ast.h:2922
pm_node_t base
The embedded base node.
Definition ast.h:2924
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2935
ClassVariableTargetNode.
Definition ast.h:2950
pm_node_t base
The embedded base node.
Definition ast.h:2952
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2957
ClassVariableWriteNode.
Definition ast.h:2972
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:2995
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3008
pm_node_t base
The embedded base node.
Definition ast.h:2974
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3018
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:2985
ConstantAndWriteNode.
Definition ast.h:3033
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3050
PM_NODE_ALIGNAS struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3055
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3045
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3040
pm_node_t base
The embedded base node.
Definition ast.h:3035
A list of constant IDs.
ConstantOperatorWriteNode.
Definition ast.h:3070
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3077
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3082
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3097
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3087
PM_NODE_ALIGNAS struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3092
pm_node_t base
The embedded base node.
Definition ast.h:3072
ConstantOrWriteNode.
Definition ast.h:3112
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3129
PM_NODE_ALIGNAS struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3134
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3124
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3119
pm_node_t base
The embedded base node.
Definition ast.h:3114
ConstantPathAndWriteNode.
Definition ast.h:3149
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3156
pm_node_t base
The embedded base node.
Definition ast.h:3151
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3166
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3161
ConstantPathNode.
Definition ast.h:3181
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3219
pm_node_t base
The embedded base node.
Definition ast.h:3183
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3199
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3232
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3206
ConstantPathOperatorWriteNode.
Definition ast.h:3247
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3254
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3269
pm_node_t base
The embedded base node.
Definition ast.h:3249
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3259
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3264
ConstantPathOrWriteNode.
Definition ast.h:3284
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3296
pm_node_t base
The embedded base node.
Definition ast.h:3286
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3301
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3291
ConstantPathTargetNode.
Definition ast.h:3316
pm_node_t base
The embedded base node.
Definition ast.h:3318
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3333
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3328
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3323
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3338
ConstantPathWriteNode.
Definition ast.h:3359
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3394
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3384
pm_node_t base
The embedded base node.
Definition ast.h:3361
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3374
ConstantReadNode.
Definition ast.h:3409
pm_node_t base
The embedded base node.
Definition ast.h:3411
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3422
ConstantTargetNode.
Definition ast.h:3437
pm_node_t base
The embedded base node.
Definition ast.h:3439
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3444
ConstantWriteNode.
Definition ast.h:3459
pm_node_t base
The embedded base node.
Definition ast.h:3461
PM_NODE_ALIGNAS struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3495
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3472
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3482
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3505
DefNode.
Definition ast.h:3521
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3583
pm_constant_id_t name
DefNode::name.
Definition ast.h:3528
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3533
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3573
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3543
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3578
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3558
pm_node_t base
The embedded base node.
Definition ast.h:3523
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3568
PM_NODE_ALIGNAS struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3538
PM_NODE_ALIGNAS struct pm_node * body
DefNode::body.
Definition ast.h:3548
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3563
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3553
DefinedNode.
Definition ast.h:3598
PM_NODE_ALIGNAS struct pm_node * value
DefinedNode::value.
Definition ast.h:3610
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3605
pm_node_t base
The embedded base node.
Definition ast.h:3600
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3615
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3620
ElseNode.
Definition ast.h:3635
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3642
pm_node_t base
The embedded base node.
Definition ast.h:3637
PM_NODE_ALIGNAS struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3647
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3652
EmbeddedStatementsNode.
Definition ast.h:3667
PM_NODE_ALIGNAS struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3679
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3684
pm_node_t base
The embedded base node.
Definition ast.h:3669
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3674
EmbeddedVariableNode.
Definition ast.h:3699
PM_NODE_ALIGNAS struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3711
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3706
pm_node_t base
The embedded base node.
Definition ast.h:3701
EnsureNode.
Definition ast.h:3730
PM_NODE_ALIGNAS struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3742
pm_node_t base
The embedded base node.
Definition ast.h:3732
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3737
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3747
FalseNode.
Definition ast.h:3762
pm_node_t base
The embedded base node.
Definition ast.h:3764
FindPatternNode.
Definition ast.h:3788
PM_NODE_ALIGNAS struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3813
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3852
pm_node_t base
The embedded base node.
Definition ast.h:3790
PM_NODE_ALIGNAS struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3800
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3826
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3865
PM_NODE_ALIGNAS struct pm_node * right
FindPatternNode::right.
Definition ast.h:3839
FlipFlopNode.
Definition ast.h:3883
PM_NODE_ALIGNAS struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3890
pm_node_t base
The embedded base node.
Definition ast.h:3885
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3900
PM_NODE_ALIGNAS struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3895
FloatNode.
Definition ast.h:3915
double value
FloatNode::value.
Definition ast.h:3924
pm_node_t base
The embedded base node.
Definition ast.h:3917
ForNode.
Definition ast.h:3939
PM_NODE_ALIGNAS struct pm_node * index
ForNode::index.
Definition ast.h:3951
PM_NODE_ALIGNAS struct pm_node * collection
ForNode::collection.
Definition ast.h:3961
pm_node_t base
The embedded base node.
Definition ast.h:3941
PM_NODE_ALIGNAS struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:3973
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4013
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:3983
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4003
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:3993
ForwardingArgumentsNode.
Definition ast.h:4030
pm_node_t base
The embedded base node.
Definition ast.h:4032
ForwardingParameterNode.
Definition ast.h:4048
pm_node_t base
The embedded base node.
Definition ast.h:4050
ForwardingSuperNode.
Definition ast.h:4070
pm_node_t base
The embedded base node.
Definition ast.h:4072
PM_NODE_ALIGNAS struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4079
GlobalVariableAndWriteNode.
Definition ast.h:4094
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4111
pm_node_t base
The embedded base node.
Definition ast.h:4096
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4116
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4106
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4101
GlobalVariableOperatorWriteNode.
Definition ast.h:4131
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4153
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4138
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4158
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4143
pm_node_t base
The embedded base node.
Definition ast.h:4133
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4148
GlobalVariableOrWriteNode.
Definition ast.h:4173
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4180
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4185
pm_node_t base
The embedded base node.
Definition ast.h:4175
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4190
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4195
GlobalVariableReadNode.
Definition ast.h:4210
pm_node_t base
The embedded base node.
Definition ast.h:4212
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4223
GlobalVariableTargetNode.
Definition ast.h:4238
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4245
pm_node_t base
The embedded base node.
Definition ast.h:4240
GlobalVariableWriteNode.
Definition ast.h:4260
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4283
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4306
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4273
pm_node_t base
The embedded base node.
Definition ast.h:4262
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4296
HashNode.
Definition ast.h:4321
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4346
pm_node_t base
The embedded base node.
Definition ast.h:4323
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4356
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4333
HashPatternNode.
Definition ast.h:4380
PM_NODE_ALIGNAS struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4395
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4405
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4434
pm_node_t base
The embedded base node.
Definition ast.h:4382
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4447
PM_NODE_ALIGNAS struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4421
IfNode.
Definition ast.h:4468
PM_NODE_ALIGNAS struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4500
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4558
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4482
PM_NODE_ALIGNAS struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4527
pm_node_t base
The embedded base node.
Definition ast.h:4470
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4513
PM_NODE_ALIGNAS struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4546
ImaginaryNode.
Definition ast.h:4573
pm_node_t base
The embedded base node.
Definition ast.h:4575
PM_NODE_ALIGNAS struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4580
ImplicitNode.
Definition ast.h:4601
pm_node_t base
The embedded base node.
Definition ast.h:4603
PM_NODE_ALIGNAS struct pm_node * value
ImplicitNode::value.
Definition ast.h:4608
ImplicitRestNode.
Definition ast.h:4632
pm_node_t base
The embedded base node.
Definition ast.h:4634
InNode.
Definition ast.h:4649
PM_NODE_ALIGNAS struct pm_node * pattern
InNode::pattern.
Definition ast.h:4656
PM_NODE_ALIGNAS struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4661
pm_node_t base
The embedded base node.
Definition ast.h:4651
pm_location_t then_loc
InNode::then_loc.
Definition ast.h:4671
pm_location_t in_loc
InNode::in_loc.
Definition ast.h:4666
IndexAndWriteNode.
Definition ast.h:4692
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4714
pm_node_t base
The embedded base node.
Definition ast.h:4694
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4729
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4719
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4709
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4704
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4724
PM_NODE_ALIGNAS struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4699
PM_NODE_ALIGNAS struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4734
IndexOperatorWriteNode.
Definition ast.h:4755
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4787
pm_node_t base
The embedded base node.
Definition ast.h:4757
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4762
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4797
PM_NODE_ALIGNAS struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4802
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4772
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4777
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4767
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4782
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4792
IndexOrWriteNode.
Definition ast.h:4823
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4850
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4835
pm_node_t base
The embedded base node.
Definition ast.h:4825
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4860
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4840
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4845
PM_NODE_ALIGNAS struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4865
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4830
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4855
IndexTargetNode.
Definition ast.h:4894
pm_node_t base
The embedded base node.
Definition ast.h:4896
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4911
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4916
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4921
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4906
PM_NODE_ALIGNAS struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4901
InstanceVariableAndWriteNode.
Definition ast.h:4936
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:4958
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:4953
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:4948
pm_node_t base
The embedded base node.
Definition ast.h:4938
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:4943
InstanceVariableOperatorWriteNode.
Definition ast.h:4973
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5000
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:4995
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4990
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:4980
pm_node_t base
The embedded base node.
Definition ast.h:4975
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:4985
InstanceVariableOrWriteNode.
Definition ast.h:5015
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5032
pm_node_t base
The embedded base node.
Definition ast.h:5017
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5027
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5022
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5037
InstanceVariableReadNode.
Definition ast.h:5052
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5065
pm_node_t base
The embedded base node.
Definition ast.h:5054
InstanceVariableTargetNode.
Definition ast.h:5080
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5087
pm_node_t base
The embedded base node.
Definition ast.h:5082
InstanceVariableWriteNode.
Definition ast.h:5102
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5148
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5138
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5115
pm_node_t base
The embedded base node.
Definition ast.h:5104
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5125
IntegerNode.
Definition ast.h:5169
pm_integer_t value
IntegerNode::value.
Definition ast.h:5178
pm_node_t base
The embedded base node.
Definition ast.h:5171
A structure represents an arbitrary-sized integer.
Definition pm_integer.h:20
InterpolatedMatchLastLineNode.
Definition ast.h:5206
pm_node_t base
The embedded base node.
Definition ast.h:5208
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5223
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5218
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5213
InterpolatedRegularExpressionNode.
Definition ast.h:5251
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5258
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5263
pm_node_t base
The embedded base node.
Definition ast.h:5253
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5268
InterpolatedStringNode.
Definition ast.h:5287
pm_node_t base
The embedded base node.
Definition ast.h:5289
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5304
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5294
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5299
InterpolatedSymbolNode.
Definition ast.h:5319
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5331
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5336
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5326
pm_node_t base
The embedded base node.
Definition ast.h:5321
InterpolatedXStringNode.
Definition ast.h:5351
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5358
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5368
pm_node_t base
The embedded base node.
Definition ast.h:5353
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5363
ItLocalVariableReadNode.
Definition ast.h:5383
pm_node_t base
The embedded base node.
Definition ast.h:5385
ItParametersNode.
Definition ast.h:5400
pm_node_t base
The embedded base node.
Definition ast.h:5402
KeywordHashNode.
Definition ast.h:5420
pm_node_t base
The embedded base node.
Definition ast.h:5422
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5427
KeywordRestParameterNode.
Definition ast.h:5446
pm_node_t base
The embedded base node.
Definition ast.h:5448
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5453
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5463
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5458
LambdaNode.
Definition ast.h:5478
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5500
pm_node_t base
The embedded base node.
Definition ast.h:5480
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5495
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5490
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5485
PM_NODE_ALIGNAS struct pm_node * body
LambdaNode::body.
Definition ast.h:5510
PM_NODE_ALIGNAS struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5505
LocalVariableAndWriteNode.
Definition ast.h:5525
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5547
pm_node_t base
The embedded base node.
Definition ast.h:5527
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5552
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5537
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5542
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5532
LocalVariableOperatorWriteNode.
Definition ast.h:5567
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5599
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5594
pm_node_t base
The embedded base node.
Definition ast.h:5569
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5574
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5579
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5584
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5589
LocalVariableOrWriteNode.
Definition ast.h:5614
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5631
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5641
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5626
pm_node_t base
The embedded base node.
Definition ast.h:5616
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5636
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5621
LocalVariableReadNode.
Definition ast.h:5656
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5686
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5673
pm_node_t base
The embedded base node.
Definition ast.h:5658
LocalVariableTargetNode.
Definition ast.h:5704
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5716
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5711
pm_node_t base
The embedded base node.
Definition ast.h:5706
LocalVariableWriteNode.
Definition ast.h:5731
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5784
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5794
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5767
pm_node_t base
The embedded base node.
Definition ast.h:5733
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5757
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5744
This struct represents a slice in the source code, defined by an offset and a length.
Definition ast.h:540
uint32_t start
The offset of the location from the start of the source.
Definition ast.h:542
uint32_t length
The length of the location.
Definition ast.h:545
MatchLastLineNode.
Definition ast.h:5822
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5834
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5829
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5839
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5844
pm_node_t base
The embedded base node.
Definition ast.h:5824
MatchPredicateNode.
Definition ast.h:5859
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition ast.h:5876
PM_NODE_ALIGNAS struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5871
PM_NODE_ALIGNAS struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5866
pm_node_t base
The embedded base node.
Definition ast.h:5861
MatchRequiredNode.
Definition ast.h:5891
pm_node_t base
The embedded base node.
Definition ast.h:5893
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:5962
PM_NODE_ALIGNAS struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:5952
PM_NODE_ALIGNAS struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5903
MatchWriteNode.
Definition ast.h:5977
pm_node_t base
The embedded base node.
Definition ast.h:5979
PM_NODE_ALIGNAS struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:5984
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:5989
MissingNode.
Definition ast.h:6001
pm_node_t base
The embedded base node.
Definition ast.h:6003
ModuleNode.
Definition ast.h:6018
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6045
PM_NODE_ALIGNAS struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6035
PM_NODE_ALIGNAS struct pm_node * body
ModuleNode::body.
Definition ast.h:6040
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6025
pm_node_t base
The embedded base node.
Definition ast.h:6020
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6030
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6050
MultiTargetNode.
Definition ast.h:6070
PM_NODE_ALIGNAS struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6107
pm_node_t base
The embedded base node.
Definition ast.h:6072
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6127
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6087
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6137
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6117
MultiWriteNode.
Definition ast.h:6152
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6219
PM_NODE_ALIGNAS struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6189
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6199
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6229
PM_NODE_ALIGNAS struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6239
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6209
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6169
pm_node_t base
The embedded base node.
Definition ast.h:6154
NextNode.
Definition ast.h:6254
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6261
pm_node_t base
The embedded base node.
Definition ast.h:6256
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6266
NilNode.
Definition ast.h:6281
pm_node_t base
The embedded base node.
Definition ast.h:6283
NoBlockParameterNode.
Definition ast.h:6299
pm_location_t keyword_loc
NoBlockParameterNode::keyword_loc.
Definition ast.h:6311
pm_node_t base
The embedded base node.
Definition ast.h:6301
pm_location_t operator_loc
NoBlockParameterNode::operator_loc.
Definition ast.h:6306
NoKeywordsParameterNode.
Definition ast.h:6327
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6339
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6334
pm_node_t base
The embedded base node.
Definition ast.h:6329
A list of nodes in the source, most often used for lists of children.
Definition ast.h:553
size_t size
The number of nodes in the list.
Definition ast.h:555
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:561
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:558
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1051
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1056
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1068
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1062
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1074
NumberedParametersNode.
Definition ast.h:6354
pm_node_t base
The embedded base node.
Definition ast.h:6356
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6361
NumberedReferenceReadNode.
Definition ast.h:6376
pm_node_t base
The embedded base node.
Definition ast.h:6378
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6391
OptionalKeywordParameterNode.
Definition ast.h:6410
pm_node_t base
The embedded base node.
Definition ast.h:6412
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6417
PM_NODE_ALIGNAS struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6427
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6422
OptionalParameterNode.
Definition ast.h:6446
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6458
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6453
pm_node_t base
The embedded base node.
Definition ast.h:6448
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6463
PM_NODE_ALIGNAS struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6468
OrNode.
Definition ast.h:6483
PM_NODE_ALIGNAS struct pm_node * right
OrNode::right.
Definition ast.h:6511
pm_node_t base
The embedded base node.
Definition ast.h:6485
PM_NODE_ALIGNAS struct pm_node * left
OrNode::left.
Definition ast.h:6498
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6521
ParametersNode.
Definition ast.h:6537
PM_NODE_ALIGNAS struct pm_node * block
ParametersNode::block.
Definition ast.h:6574
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6544
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6549
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6559
pm_node_t base
The embedded base node.
Definition ast.h:6539
PM_NODE_ALIGNAS struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6554
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6564
PM_NODE_ALIGNAS struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6569
ParenthesesNode.
Definition ast.h:6592
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6609
pm_node_t base
The embedded base node.
Definition ast.h:6594
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6604
PM_NODE_ALIGNAS struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6599
PinnedExpressionNode.
Definition ast.h:6624
pm_node_t base
The embedded base node.
Definition ast.h:6626
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6666
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6656
PM_NODE_ALIGNAS struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6636
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6646
PinnedVariableNode.
Definition ast.h:6681
pm_node_t base
The embedded base node.
Definition ast.h:6683
PM_NODE_ALIGNAS struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6693
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6703
PostExecutionNode.
Definition ast.h:6718
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6740
pm_node_t base
The embedded base node.
Definition ast.h:6720
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6735
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6730
PM_NODE_ALIGNAS struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6725
PreExecutionNode.
Definition ast.h:6755
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6777
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6772
PM_NODE_ALIGNAS struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6762
pm_node_t base
The embedded base node.
Definition ast.h:6757
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6767
ProgramNode.
Definition ast.h:6789
pm_node_t base
The embedded base node.
Definition ast.h:6791
PM_NODE_ALIGNAS struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6801
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6796
RangeNode.
Definition ast.h:6822
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6858
pm_node_t base
The embedded base node.
Definition ast.h:6824
PM_NODE_ALIGNAS struct pm_node * right
RangeNode::right.
Definition ast.h:6851
PM_NODE_ALIGNAS struct pm_node * left
RangeNode::left.
Definition ast.h:6837
RationalNode.
Definition ast.h:6879
pm_node_t base
The embedded base node.
Definition ast.h:6881
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6899
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6890
RedoNode.
Definition ast.h:6914
pm_node_t base
The embedded base node.
Definition ast.h:6916
RegularExpressionNode.
Definition ast.h:6944
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:6961
pm_node_t base
The embedded base node.
Definition ast.h:6946
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:6966
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:6951
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:6956
RequiredKeywordParameterNode.
Definition ast.h:6985
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:6997
pm_node_t base
The embedded base node.
Definition ast.h:6987
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:6992
RequiredParameterNode.
Definition ast.h:7016
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7023
pm_node_t base
The embedded base node.
Definition ast.h:7018
RescueModifierNode.
Definition ast.h:7038
PM_NODE_ALIGNAS struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7045
pm_node_t base
The embedded base node.
Definition ast.h:7040
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7050
PM_NODE_ALIGNAS struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7055
RescueNode.
Definition ast.h:7075
PM_NODE_ALIGNAS struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7107
PM_NODE_ALIGNAS struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7112
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7082
PM_NODE_ALIGNAS struct pm_node * reference
RescueNode::reference.
Definition ast.h:7097
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7102
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7092
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7087
pm_node_t base
The embedded base node.
Definition ast.h:7077
RestParameterNode.
Definition ast.h:7131
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7138
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7143
pm_node_t base
The embedded base node.
Definition ast.h:7133
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7148
RetryNode.
Definition ast.h:7163
pm_node_t base
The embedded base node.
Definition ast.h:7165
ReturnNode.
Definition ast.h:7180
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7192
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7187
pm_node_t base
The embedded base node.
Definition ast.h:7182
SelfNode.
Definition ast.h:7207
pm_node_t base
The embedded base node.
Definition ast.h:7209
ShareableConstantNode.
Definition ast.h:7230
PM_NODE_ALIGNAS struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7239
pm_node_t base
The embedded base node.
Definition ast.h:7232
SingletonClassNode.
Definition ast.h:7254
PM_NODE_ALIGNAS struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7281
pm_node_t base
The embedded base node.
Definition ast.h:7256
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7261
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7271
PM_NODE_ALIGNAS struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7276
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7286
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7266
SourceEncodingNode.
Definition ast.h:7301
pm_node_t base
The embedded base node.
Definition ast.h:7303
SourceFileNode.
Definition ast.h:7324
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7333
pm_node_t base
The embedded base node.
Definition ast.h:7326
SourceLineNode.
Definition ast.h:7348
pm_node_t base
The embedded base node.
Definition ast.h:7350
SplatNode.
Definition ast.h:7365
pm_node_t base
The embedded base node.
Definition ast.h:7367
PM_NODE_ALIGNAS struct pm_node * expression
SplatNode::expression.
Definition ast.h:7377
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7372
StatementsNode.
Definition ast.h:7392
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7399
pm_node_t base
The embedded base node.
Definition ast.h:7394
StringNode.
Definition ast.h:7426
pm_node_t base
The embedded base node.
Definition ast.h:7428
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7448
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7438
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7443
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7433
A generic string type that can have various ownership semantics.
Definition pm_string.h:33
SuperNode.
Definition ast.h:7468
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7487
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7480
pm_node_t base
The embedded base node.
Definition ast.h:7470
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7475
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7492
PM_NODE_ALIGNAS struct pm_node * block
SuperNode::block.
Definition ast.h:7497
SymbolNode.
Definition ast.h:7520
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7527
pm_location_t value_loc
SymbolNode::value_loc.
Definition ast.h:7532
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7537
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7542
pm_node_t base
The embedded base node.
Definition ast.h:7522
This struct represents a token in the Ruby source.
Definition ast.h:521
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:529
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:526
pm_token_type_t type
The type of the token.
Definition ast.h:523
TrueNode.
Definition ast.h:7557
pm_node_t base
The embedded base node.
Definition ast.h:7559
UndefNode.
Definition ast.h:7574
pm_node_t base
The embedded base node.
Definition ast.h:7576
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7586
struct pm_node_list names
UndefNode::names.
Definition ast.h:7581
UnlessNode.
Definition ast.h:7604
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition ast.h:7619
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7642
PM_NODE_ALIGNAS struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7632
PM_NODE_ALIGNAS struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7653
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7673
PM_NODE_ALIGNAS struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7663
pm_node_t base
The embedded base node.
Definition ast.h:7606
UntilNode.
Definition ast.h:7694
pm_location_t closing_loc
UntilNode::closing_loc.
Definition ast.h:7711
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition ast.h:7701
pm_node_t base
The embedded base node.
Definition ast.h:7696
PM_NODE_ALIGNAS struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7721
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7706
PM_NODE_ALIGNAS struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7716
WhenNode.
Definition ast.h:7738
pm_node_t base
The embedded base node.
Definition ast.h:7740
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7755
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition ast.h:7745
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7760
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7750
WhileNode.
Definition ast.h:7781
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7808
pm_location_t closing_loc
WhileNode::closing_loc.
Definition ast.h:7798
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition ast.h:7788
pm_node_t base
The embedded base node.
Definition ast.h:7783
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7793
PM_NODE_ALIGNAS struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7803
XStringNode.
Definition ast.h:7827
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7844
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7834
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7839
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7849
pm_node_t base
The embedded base node.
Definition ast.h:7829
YieldNode.
Definition ast.h:7864
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7871
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7876
pm_node_t base
The embedded base node.
Definition ast.h:7866
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7886
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7881