Ruby: prism/ast.h Source File

Ruby 3.4.8p72 (2025-12-17 revision 995b59f66677d44767ce9faac6957e5543617ff9)

ast.h
1/* :markup: markdown */
2
3/*----------------------------------------------------------------------------*/
4/* This file is generated by the templates/template.rb script and should not */
5/* be modified manually. See */
6/* templates/include/prism/ast.h.erb */
7/* if you are looking to modify the */
8/* template */
9/*----------------------------------------------------------------------------*/
10
13#ifndef PRISM_AST_H
14#define PRISM_AST_H
15
16#include "prism/defines.h"
17#include "prism/util/pm_constant_pool.h"
18#include "prism/util/pm_integer.h"
19#include "prism/util/pm_string.h"
20
21#include <assert.h>
22#include <stddef.h>
23#include <stdint.h>
24
28typedef enum pm_token_type {
30 PM_TOKEN_EOF = 1,
31
33 PM_TOKEN_BRACE_RIGHT,
34
36 PM_TOKEN_COMMA,
37
39 PM_TOKEN_EMBEXPR_END,
40
42 PM_TOKEN_KEYWORD_DO,
43
45 PM_TOKEN_KEYWORD_ELSE,
46
48 PM_TOKEN_KEYWORD_ELSIF,
49
51 PM_TOKEN_KEYWORD_END,
52
54 PM_TOKEN_KEYWORD_ENSURE,
55
57 PM_TOKEN_KEYWORD_IN,
58
60 PM_TOKEN_KEYWORD_RESCUE,
61
63 PM_TOKEN_KEYWORD_THEN,
64
66 PM_TOKEN_KEYWORD_WHEN,
67
69 PM_TOKEN_NEWLINE,
70
72 PM_TOKEN_PARENTHESIS_RIGHT,
73
75 PM_TOKEN_SEMICOLON,
76
78 PM_TOKEN_AMPERSAND,
79
81 PM_TOKEN_AMPERSAND_AMPERSAND,
82
84 PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL,
85
87 PM_TOKEN_AMPERSAND_DOT,
88
90 PM_TOKEN_AMPERSAND_EQUAL,
91
93 PM_TOKEN_BACKTICK,
94
96 PM_TOKEN_BACK_REFERENCE,
97
99 PM_TOKEN_BANG,
100
102 PM_TOKEN_BANG_EQUAL,
103
105 PM_TOKEN_BANG_TILDE,
106
108 PM_TOKEN_BRACE_LEFT,
109
111 PM_TOKEN_BRACKET_LEFT,
112
114 PM_TOKEN_BRACKET_LEFT_ARRAY,
115
117 PM_TOKEN_BRACKET_LEFT_RIGHT,
118
120 PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL,
121
123 PM_TOKEN_BRACKET_RIGHT,
124
126 PM_TOKEN_CARET,
127
129 PM_TOKEN_CARET_EQUAL,
130
132 PM_TOKEN_CHARACTER_LITERAL,
133
135 PM_TOKEN_CLASS_VARIABLE,
136
138 PM_TOKEN_COLON,
139
141 PM_TOKEN_COLON_COLON,
142
144 PM_TOKEN_COMMENT,
145
147 PM_TOKEN_CONSTANT,
148
150 PM_TOKEN_DOT,
151
153 PM_TOKEN_DOT_DOT,
154
156 PM_TOKEN_DOT_DOT_DOT,
157
159 PM_TOKEN_EMBDOC_BEGIN,
160
162 PM_TOKEN_EMBDOC_END,
163
165 PM_TOKEN_EMBDOC_LINE,
166
168 PM_TOKEN_EMBEXPR_BEGIN,
169
171 PM_TOKEN_EMBVAR,
172
174 PM_TOKEN_EQUAL,
175
177 PM_TOKEN_EQUAL_EQUAL,
178
180 PM_TOKEN_EQUAL_EQUAL_EQUAL,
181
183 PM_TOKEN_EQUAL_GREATER,
184
186 PM_TOKEN_EQUAL_TILDE,
187
189 PM_TOKEN_FLOAT,
190
192 PM_TOKEN_FLOAT_IMAGINARY,
193
195 PM_TOKEN_FLOAT_RATIONAL,
196
198 PM_TOKEN_FLOAT_RATIONAL_IMAGINARY,
199
201 PM_TOKEN_GLOBAL_VARIABLE,
202
204 PM_TOKEN_GREATER,
205
207 PM_TOKEN_GREATER_EQUAL,
208
210 PM_TOKEN_GREATER_GREATER,
211
213 PM_TOKEN_GREATER_GREATER_EQUAL,
214
216 PM_TOKEN_HEREDOC_END,
217
219 PM_TOKEN_HEREDOC_START,
220
222 PM_TOKEN_IDENTIFIER,
223
225 PM_TOKEN_IGNORED_NEWLINE,
226
228 PM_TOKEN_INSTANCE_VARIABLE,
229
231 PM_TOKEN_INTEGER,
232
234 PM_TOKEN_INTEGER_IMAGINARY,
235
237 PM_TOKEN_INTEGER_RATIONAL,
238
240 PM_TOKEN_INTEGER_RATIONAL_IMAGINARY,
241
243 PM_TOKEN_KEYWORD_ALIAS,
244
246 PM_TOKEN_KEYWORD_AND,
247
249 PM_TOKEN_KEYWORD_BEGIN,
250
252 PM_TOKEN_KEYWORD_BEGIN_UPCASE,
253
255 PM_TOKEN_KEYWORD_BREAK,
256
258 PM_TOKEN_KEYWORD_CASE,
259
261 PM_TOKEN_KEYWORD_CLASS,
262
264 PM_TOKEN_KEYWORD_DEF,
265
267 PM_TOKEN_KEYWORD_DEFINED,
268
270 PM_TOKEN_KEYWORD_DO_LOOP,
271
273 PM_TOKEN_KEYWORD_END_UPCASE,
274
276 PM_TOKEN_KEYWORD_FALSE,
277
279 PM_TOKEN_KEYWORD_FOR,
280
282 PM_TOKEN_KEYWORD_IF,
283
285 PM_TOKEN_KEYWORD_IF_MODIFIER,
286
288 PM_TOKEN_KEYWORD_MODULE,
289
291 PM_TOKEN_KEYWORD_NEXT,
292
294 PM_TOKEN_KEYWORD_NIL,
295
297 PM_TOKEN_KEYWORD_NOT,
298
300 PM_TOKEN_KEYWORD_OR,
301
303 PM_TOKEN_KEYWORD_REDO,
304
306 PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
307
309 PM_TOKEN_KEYWORD_RETRY,
310
312 PM_TOKEN_KEYWORD_RETURN,
313
315 PM_TOKEN_KEYWORD_SELF,
316
318 PM_TOKEN_KEYWORD_SUPER,
319
321 PM_TOKEN_KEYWORD_TRUE,
322
324 PM_TOKEN_KEYWORD_UNDEF,
325
327 PM_TOKEN_KEYWORD_UNLESS,
328
330 PM_TOKEN_KEYWORD_UNLESS_MODIFIER,
331
333 PM_TOKEN_KEYWORD_UNTIL,
334
336 PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
337
339 PM_TOKEN_KEYWORD_WHILE,
340
342 PM_TOKEN_KEYWORD_WHILE_MODIFIER,
343
345 PM_TOKEN_KEYWORD_YIELD,
346
348 PM_TOKEN_KEYWORD___ENCODING__,
349
351 PM_TOKEN_KEYWORD___FILE__,
352
354 PM_TOKEN_KEYWORD___LINE__,
355
357 PM_TOKEN_LABEL,
358
360 PM_TOKEN_LABEL_END,
361
363 PM_TOKEN_LAMBDA_BEGIN,
364
366 PM_TOKEN_LESS,
367
369 PM_TOKEN_LESS_EQUAL,
370
372 PM_TOKEN_LESS_EQUAL_GREATER,
373
375 PM_TOKEN_LESS_LESS,
376
378 PM_TOKEN_LESS_LESS_EQUAL,
379
381 PM_TOKEN_METHOD_NAME,
382
384 PM_TOKEN_MINUS,
385
387 PM_TOKEN_MINUS_EQUAL,
388
390 PM_TOKEN_MINUS_GREATER,
391
393 PM_TOKEN_NUMBERED_REFERENCE,
394
396 PM_TOKEN_PARENTHESIS_LEFT,
397
399 PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
400
402 PM_TOKEN_PERCENT,
403
405 PM_TOKEN_PERCENT_EQUAL,
406
408 PM_TOKEN_PERCENT_LOWER_I,
409
411 PM_TOKEN_PERCENT_LOWER_W,
412
414 PM_TOKEN_PERCENT_LOWER_X,
415
417 PM_TOKEN_PERCENT_UPPER_I,
418
420 PM_TOKEN_PERCENT_UPPER_W,
421
423 PM_TOKEN_PIPE,
424
426 PM_TOKEN_PIPE_EQUAL,
427
429 PM_TOKEN_PIPE_PIPE,
430
432 PM_TOKEN_PIPE_PIPE_EQUAL,
433
435 PM_TOKEN_PLUS,
436
438 PM_TOKEN_PLUS_EQUAL,
439
441 PM_TOKEN_QUESTION_MARK,
442
444 PM_TOKEN_REGEXP_BEGIN,
445
447 PM_TOKEN_REGEXP_END,
448
450 PM_TOKEN_SLASH,
451
453 PM_TOKEN_SLASH_EQUAL,
454
456 PM_TOKEN_STAR,
457
459 PM_TOKEN_STAR_EQUAL,
460
462 PM_TOKEN_STAR_STAR,
463
465 PM_TOKEN_STAR_STAR_EQUAL,
466
468 PM_TOKEN_STRING_BEGIN,
469
471 PM_TOKEN_STRING_CONTENT,
472
474 PM_TOKEN_STRING_END,
475
477 PM_TOKEN_SYMBOL_BEGIN,
478
480 PM_TOKEN_TILDE,
481
483 PM_TOKEN_UAMPERSAND,
484
486 PM_TOKEN_UCOLON_COLON,
487
489 PM_TOKEN_UDOT_DOT,
490
492 PM_TOKEN_UDOT_DOT_DOT,
493
495 PM_TOKEN_UMINUS,
496
498 PM_TOKEN_UMINUS_NUM,
499
501 PM_TOKEN_UPLUS,
502
504 PM_TOKEN_USTAR,
505
507 PM_TOKEN_USTAR_STAR,
508
510 PM_TOKEN_WORDS_SEP,
511
513 PM_TOKEN___END__,
514
516 PM_TOKEN_MISSING,
517
519 PM_TOKEN_NOT_PROVIDED,
520
522 PM_TOKEN_MAXIMUM,
523} pm_token_type_t;
524
529 typedef struct {
531 pm_token_type_t type;
532
534 const uint8_t *start;
535
537 const uint8_t *end;
538} pm_token_t;
539
544 typedef struct {
546 const uint8_t *start;
547
549 const uint8_t *end;
550} pm_location_t;
551
552struct pm_node;
553
557 typedef struct pm_node_list {
559 size_t size;
560
562 size_t capacity;
563
565 struct pm_node **nodes;
566} pm_node_list_t;
567
571enum pm_node_type {
573 PM_ALIAS_GLOBAL_VARIABLE_NODE = 1,
574
576 PM_ALIAS_METHOD_NODE = 2,
577
579 PM_ALTERNATION_PATTERN_NODE = 3,
580
582 PM_AND_NODE = 4,
583
585 PM_ARGUMENTS_NODE = 5,
586
588 PM_ARRAY_NODE = 6,
589
591 PM_ARRAY_PATTERN_NODE = 7,
592
594 PM_ASSOC_NODE = 8,
595
597 PM_ASSOC_SPLAT_NODE = 9,
598
600 PM_BACK_REFERENCE_READ_NODE = 10,
601
603 PM_BEGIN_NODE = 11,
604
606 PM_BLOCK_ARGUMENT_NODE = 12,
607
609 PM_BLOCK_LOCAL_VARIABLE_NODE = 13,
610
612 PM_BLOCK_NODE = 14,
613
615 PM_BLOCK_PARAMETER_NODE = 15,
616
618 PM_BLOCK_PARAMETERS_NODE = 16,
619
621 PM_BREAK_NODE = 17,
622
624 PM_CALL_AND_WRITE_NODE = 18,
625
627 PM_CALL_NODE = 19,
628
630 PM_CALL_OPERATOR_WRITE_NODE = 20,
631
633 PM_CALL_OR_WRITE_NODE = 21,
634
636 PM_CALL_TARGET_NODE = 22,
637
639 PM_CAPTURE_PATTERN_NODE = 23,
640
642 PM_CASE_MATCH_NODE = 24,
643
645 PM_CASE_NODE = 25,
646
648 PM_CLASS_NODE = 26,
649
651 PM_CLASS_VARIABLE_AND_WRITE_NODE = 27,
652
654 PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE = 28,
655
657 PM_CLASS_VARIABLE_OR_WRITE_NODE = 29,
658
660 PM_CLASS_VARIABLE_READ_NODE = 30,
661
663 PM_CLASS_VARIABLE_TARGET_NODE = 31,
664
666 PM_CLASS_VARIABLE_WRITE_NODE = 32,
667
669 PM_CONSTANT_AND_WRITE_NODE = 33,
670
672 PM_CONSTANT_OPERATOR_WRITE_NODE = 34,
673
675 PM_CONSTANT_OR_WRITE_NODE = 35,
676
678 PM_CONSTANT_PATH_AND_WRITE_NODE = 36,
679
681 PM_CONSTANT_PATH_NODE = 37,
682
684 PM_CONSTANT_PATH_OPERATOR_WRITE_NODE = 38,
685
687 PM_CONSTANT_PATH_OR_WRITE_NODE = 39,
688
690 PM_CONSTANT_PATH_TARGET_NODE = 40,
691
693 PM_CONSTANT_PATH_WRITE_NODE = 41,
694
696 PM_CONSTANT_READ_NODE = 42,
697
699 PM_CONSTANT_TARGET_NODE = 43,
700
702 PM_CONSTANT_WRITE_NODE = 44,
703
705 PM_DEF_NODE = 45,
706
708 PM_DEFINED_NODE = 46,
709
711 PM_ELSE_NODE = 47,
712
714 PM_EMBEDDED_STATEMENTS_NODE = 48,
715
717 PM_EMBEDDED_VARIABLE_NODE = 49,
718
720 PM_ENSURE_NODE = 50,
721
723 PM_FALSE_NODE = 51,
724
726 PM_FIND_PATTERN_NODE = 52,
727
729 PM_FLIP_FLOP_NODE = 53,
730
732 PM_FLOAT_NODE = 54,
733
735 PM_FOR_NODE = 55,
736
738 PM_FORWARDING_ARGUMENTS_NODE = 56,
739
741 PM_FORWARDING_PARAMETER_NODE = 57,
742
744 PM_FORWARDING_SUPER_NODE = 58,
745
747 PM_GLOBAL_VARIABLE_AND_WRITE_NODE = 59,
748
750 PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE = 60,
751
753 PM_GLOBAL_VARIABLE_OR_WRITE_NODE = 61,
754
756 PM_GLOBAL_VARIABLE_READ_NODE = 62,
757
759 PM_GLOBAL_VARIABLE_TARGET_NODE = 63,
760
762 PM_GLOBAL_VARIABLE_WRITE_NODE = 64,
763
765 PM_HASH_NODE = 65,
766
768 PM_HASH_PATTERN_NODE = 66,
769
771 PM_IF_NODE = 67,
772
774 PM_IMAGINARY_NODE = 68,
775
777 PM_IMPLICIT_NODE = 69,
778
780 PM_IMPLICIT_REST_NODE = 70,
781
783 PM_IN_NODE = 71,
784
786 PM_INDEX_AND_WRITE_NODE = 72,
787
789 PM_INDEX_OPERATOR_WRITE_NODE = 73,
790
792 PM_INDEX_OR_WRITE_NODE = 74,
793
795 PM_INDEX_TARGET_NODE = 75,
796
798 PM_INSTANCE_VARIABLE_AND_WRITE_NODE = 76,
799
801 PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE = 77,
802
804 PM_INSTANCE_VARIABLE_OR_WRITE_NODE = 78,
805
807 PM_INSTANCE_VARIABLE_READ_NODE = 79,
808
810 PM_INSTANCE_VARIABLE_TARGET_NODE = 80,
811
813 PM_INSTANCE_VARIABLE_WRITE_NODE = 81,
814
816 PM_INTEGER_NODE = 82,
817
819 PM_INTERPOLATED_MATCH_LAST_LINE_NODE = 83,
820
822 PM_INTERPOLATED_REGULAR_EXPRESSION_NODE = 84,
823
825 PM_INTERPOLATED_STRING_NODE = 85,
826
828 PM_INTERPOLATED_SYMBOL_NODE = 86,
829
831 PM_INTERPOLATED_X_STRING_NODE = 87,
832
834 PM_IT_LOCAL_VARIABLE_READ_NODE = 88,
835
837 PM_IT_PARAMETERS_NODE = 89,
838
840 PM_KEYWORD_HASH_NODE = 90,
841
843 PM_KEYWORD_REST_PARAMETER_NODE = 91,
844
846 PM_LAMBDA_NODE = 92,
847
849 PM_LOCAL_VARIABLE_AND_WRITE_NODE = 93,
850
852 PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE = 94,
853
855 PM_LOCAL_VARIABLE_OR_WRITE_NODE = 95,
856
858 PM_LOCAL_VARIABLE_READ_NODE = 96,
859
861 PM_LOCAL_VARIABLE_TARGET_NODE = 97,
862
864 PM_LOCAL_VARIABLE_WRITE_NODE = 98,
865
867 PM_MATCH_LAST_LINE_NODE = 99,
868
870 PM_MATCH_PREDICATE_NODE = 100,
871
873 PM_MATCH_REQUIRED_NODE = 101,
874
876 PM_MATCH_WRITE_NODE = 102,
877
879 PM_MISSING_NODE = 103,
880
882 PM_MODULE_NODE = 104,
883
885 PM_MULTI_TARGET_NODE = 105,
886
888 PM_MULTI_WRITE_NODE = 106,
889
891 PM_NEXT_NODE = 107,
892
894 PM_NIL_NODE = 108,
895
897 PM_NO_KEYWORDS_PARAMETER_NODE = 109,
898
900 PM_NUMBERED_PARAMETERS_NODE = 110,
901
903 PM_NUMBERED_REFERENCE_READ_NODE = 111,
904
906 PM_OPTIONAL_KEYWORD_PARAMETER_NODE = 112,
907
909 PM_OPTIONAL_PARAMETER_NODE = 113,
910
912 PM_OR_NODE = 114,
913
915 PM_PARAMETERS_NODE = 115,
916
918 PM_PARENTHESES_NODE = 116,
919
921 PM_PINNED_EXPRESSION_NODE = 117,
922
924 PM_PINNED_VARIABLE_NODE = 118,
925
927 PM_POST_EXECUTION_NODE = 119,
928
930 PM_PRE_EXECUTION_NODE = 120,
931
933 PM_PROGRAM_NODE = 121,
934
936 PM_RANGE_NODE = 122,
937
939 PM_RATIONAL_NODE = 123,
940
942 PM_REDO_NODE = 124,
943
945 PM_REGULAR_EXPRESSION_NODE = 125,
946
948 PM_REQUIRED_KEYWORD_PARAMETER_NODE = 126,
949
951 PM_REQUIRED_PARAMETER_NODE = 127,
952
954 PM_RESCUE_MODIFIER_NODE = 128,
955
957 PM_RESCUE_NODE = 129,
958
960 PM_REST_PARAMETER_NODE = 130,
961
963 PM_RETRY_NODE = 131,
964
966 PM_RETURN_NODE = 132,
967
969 PM_SELF_NODE = 133,
970
972 PM_SHAREABLE_CONSTANT_NODE = 134,
973
975 PM_SINGLETON_CLASS_NODE = 135,
976
978 PM_SOURCE_ENCODING_NODE = 136,
979
981 PM_SOURCE_FILE_NODE = 137,
982
984 PM_SOURCE_LINE_NODE = 138,
985
987 PM_SPLAT_NODE = 139,
988
990 PM_STATEMENTS_NODE = 140,
991
993 PM_STRING_NODE = 141,
994
996 PM_SUPER_NODE = 142,
997
999 PM_SYMBOL_NODE = 143,
1000
1002 PM_TRUE_NODE = 144,
1003
1005 PM_UNDEF_NODE = 145,
1006
1008 PM_UNLESS_NODE = 146,
1009
1011 PM_UNTIL_NODE = 147,
1012
1014 PM_WHEN_NODE = 148,
1015
1017 PM_WHILE_NODE = 149,
1018
1020 PM_X_STRING_NODE = 150,
1021
1023 PM_YIELD_NODE = 151,
1024
1026 PM_SCOPE_NODE
1027};
1028
1033typedef uint16_t pm_node_type_t;
1034
1039typedef uint16_t pm_node_flags_t;
1040
1045static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1046static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1047
1052#define PM_NODE_TYPE(node) ((enum pm_node_type) (node)->type)
1053
1057#define PM_NODE_TYPE_P(node, type) (PM_NODE_TYPE(node) == (type))
1058
1062#define PM_NODE_FLAG_P(node, flag) ((((pm_node_t *)(node))->flags & (flag)) != 0)
1063
1068 typedef struct pm_node {
1073 pm_node_type_t type;
1074
1079 pm_node_flags_t flags;
1080
1085 uint32_t node_id;
1086
1091 pm_location_t location;
1092} pm_node_t;
1093
1106 typedef struct pm_alias_global_variable_node {
1108 pm_node_t base;
1109
1110
1119 struct pm_node *new_name;
1120
1129 struct pm_node *old_name;
1130
1139 pm_location_t keyword_loc;
1140} pm_alias_global_variable_node_t;
1141
1154 typedef struct pm_alias_method_node {
1156 pm_node_t base;
1157
1158
1173 struct pm_node *new_name;
1174
1189 struct pm_node *old_name;
1190
1199 pm_location_t keyword_loc;
1200} pm_alias_method_node_t;
1201
1214 typedef struct pm_alternation_pattern_node {
1216 pm_node_t base;
1217
1218
1227 struct pm_node *left;
1228
1237 struct pm_node *right;
1238
1247 pm_location_t operator_loc;
1248} pm_alternation_pattern_node_t;
1249
1262 typedef struct pm_and_node {
1264 pm_node_t base;
1265
1266
1278 struct pm_node *left;
1279
1291 struct pm_node *right;
1292
1301 pm_location_t operator_loc;
1302} pm_and_node_t;
1303
1323 typedef struct pm_arguments_node {
1325 pm_node_t base;
1326
1327
1336 struct pm_node_list arguments;
1337} pm_arguments_node_t;
1338
1354 typedef struct pm_array_node {
1356 pm_node_t base;
1357
1358
1364 struct pm_node_list elements;
1365
1376 pm_location_t opening_loc;
1377
1388 pm_location_t closing_loc;
1389} pm_array_node_t;
1390
1415 typedef struct pm_array_pattern_node {
1417 pm_node_t base;
1418
1419
1434 struct pm_node *constant;
1435
1444 struct pm_node_list requireds;
1445
1454 struct pm_node *rest;
1455
1464 struct pm_node_list posts;
1465
1474 pm_location_t opening_loc;
1475
1484 pm_location_t closing_loc;
1485} pm_array_pattern_node_t;
1486
1499 typedef struct pm_assoc_node {
1501 pm_node_t base;
1502
1503
1518 struct pm_node *key;
1519
1531 struct pm_node *value;
1532
1541 pm_location_t operator_loc;
1542} pm_assoc_node_t;
1543
1556 typedef struct pm_assoc_splat_node {
1558 pm_node_t base;
1559
1560
1569 struct pm_node *value;
1570
1579 pm_location_t operator_loc;
1580} pm_assoc_splat_node_t;
1581
1594 typedef struct pm_back_reference_read_node {
1596 pm_node_t base;
1597
1598
1608 pm_constant_id_t name;
1609} pm_back_reference_read_node_t;
1610
1625 typedef struct pm_begin_node {
1627 pm_node_t base;
1628
1629
1638 pm_location_t begin_keyword_loc;
1639
1648 struct pm_statements_node *statements;
1649
1658 struct pm_rescue_node *rescue_clause;
1659
1668 struct pm_else_node *else_clause;
1669
1678 struct pm_ensure_node *ensure_clause;
1679
1688 pm_location_t end_keyword_loc;
1689} pm_begin_node_t;
1690
1703 typedef struct pm_block_argument_node {
1705 pm_node_t base;
1706
1707
1716 struct pm_node *expression;
1717
1726 pm_location_t operator_loc;
1727} pm_block_argument_node_t;
1728
1744 typedef struct pm_block_local_variable_node {
1746 pm_node_t base;
1747
1748
1757 pm_constant_id_t name;
1758} pm_block_local_variable_node_t;
1759
1772 typedef struct pm_block_node {
1774 pm_node_t base;
1775
1776
1785 pm_constant_id_list_t locals;
1786
1799 struct pm_node *parameters;
1800
1809 struct pm_node *body;
1810
1819 pm_location_t opening_loc;
1820
1829 pm_location_t closing_loc;
1830} pm_block_node_t;
1831
1848 typedef struct pm_block_parameter_node {
1850 pm_node_t base;
1851
1852
1862 pm_constant_id_t name;
1863
1872 pm_location_t name_loc;
1873
1883 pm_location_t operator_loc;
1884} pm_block_parameter_node_t;
1885
1902 typedef struct pm_block_parameters_node {
1904 pm_node_t base;
1905
1906
1919 struct pm_parameters_node *parameters;
1920
1933 struct pm_node_list locals;
1934
1947 pm_location_t opening_loc;
1948
1961 pm_location_t closing_loc;
1962} pm_block_parameters_node_t;
1963
1976 typedef struct pm_break_node {
1978 pm_node_t base;
1979
1980
1989 struct pm_arguments_node *arguments;
1990
1999 pm_location_t keyword_loc;
2000} pm_break_node_t;
2001
2020 typedef struct pm_call_and_write_node {
2022 pm_node_t base;
2023
2024
2033 struct pm_node *receiver;
2034
2043 pm_location_t call_operator_loc;
2044
2053 pm_location_t message_loc;
2054
2063 pm_constant_id_t read_name;
2064
2073 pm_constant_id_t write_name;
2074
2083 pm_location_t operator_loc;
2084
2093 struct pm_node *value;
2094} pm_call_and_write_node_t;
2095
2129 typedef struct pm_call_node {
2131 pm_node_t base;
2132
2133
2148 struct pm_node *receiver;
2149
2161 pm_location_t call_operator_loc;
2162
2171 pm_constant_id_t name;
2172
2181 pm_location_t message_loc;
2182
2190 pm_location_t opening_loc;
2191
2200 struct pm_arguments_node *arguments;
2201
2210 pm_location_t closing_loc;
2211
2220 struct pm_node *block;
2221} pm_call_node_t;
2222
2241 typedef struct pm_call_operator_write_node {
2243 pm_node_t base;
2244
2245
2254 struct pm_node *receiver;
2255
2264 pm_location_t call_operator_loc;
2265
2274 pm_location_t message_loc;
2275
2284 pm_constant_id_t read_name;
2285
2294 pm_constant_id_t write_name;
2295
2304 pm_constant_id_t binary_operator;
2305
2314 pm_location_t binary_operator_loc;
2315
2324 struct pm_node *value;
2325} pm_call_operator_write_node_t;
2326
2345 typedef struct pm_call_or_write_node {
2347 pm_node_t base;
2348
2349
2358 struct pm_node *receiver;
2359
2368 pm_location_t call_operator_loc;
2369
2378 pm_location_t message_loc;
2379
2388 pm_constant_id_t read_name;
2389
2398 pm_constant_id_t write_name;
2399
2408 pm_location_t operator_loc;
2409
2418 struct pm_node *value;
2419} pm_call_or_write_node_t;
2420
2447 typedef struct pm_call_target_node {
2449 pm_node_t base;
2450
2451
2460 struct pm_node *receiver;
2461
2470 pm_location_t call_operator_loc;
2471
2480 pm_constant_id_t name;
2481
2490 pm_location_t message_loc;
2491} pm_call_target_node_t;
2492
2505 typedef struct pm_capture_pattern_node {
2507 pm_node_t base;
2508
2509
2518 struct pm_node *value;
2519
2528 struct pm_local_variable_target_node *target;
2529
2538 pm_location_t operator_loc;
2539} pm_capture_pattern_node_t;
2540
2555 typedef struct pm_case_match_node {
2557 pm_node_t base;
2558
2559
2568 struct pm_node *predicate;
2569
2578 struct pm_node_list conditions;
2579
2588 struct pm_else_node *else_clause;
2589
2598 pm_location_t case_keyword_loc;
2599
2608 pm_location_t end_keyword_loc;
2609} pm_case_match_node_t;
2610
2625 typedef struct pm_case_node {
2627 pm_node_t base;
2628
2629
2638 struct pm_node *predicate;
2639
2648 struct pm_node_list conditions;
2649
2658 struct pm_else_node *else_clause;
2659
2668 pm_location_t case_keyword_loc;
2669
2678 pm_location_t end_keyword_loc;
2679} pm_case_node_t;
2680
2693 typedef struct pm_class_node {
2695 pm_node_t base;
2696
2697
2701 pm_constant_id_list_t locals;
2702
2711 pm_location_t class_keyword_loc;
2712
2716 struct pm_node *constant_path;
2717
2726 pm_location_t inheritance_operator_loc;
2727
2736 struct pm_node *superclass;
2737
2747 struct pm_node *body;
2748
2757 pm_location_t end_keyword_loc;
2758
2766 pm_constant_id_t name;
2767} pm_class_node_t;
2768
2781 typedef struct pm_class_variable_and_write_node {
2783 pm_node_t base;
2784
2785
2794 pm_constant_id_t name;
2795
2804 pm_location_t name_loc;
2805
2814 pm_location_t operator_loc;
2815
2824 struct pm_node *value;
2825} pm_class_variable_and_write_node_t;
2826
2839 typedef struct pm_class_variable_operator_write_node {
2841 pm_node_t base;
2842
2843
2847 pm_constant_id_t name;
2848
2852 pm_location_t name_loc;
2853
2857 pm_location_t binary_operator_loc;
2858
2862 struct pm_node *value;
2863
2867 pm_constant_id_t binary_operator;
2868} pm_class_variable_operator_write_node_t;
2869
2882 typedef struct pm_class_variable_or_write_node {
2884 pm_node_t base;
2885
2886
2890 pm_constant_id_t name;
2891
2895 pm_location_t name_loc;
2896
2900 pm_location_t operator_loc;
2901
2905 struct pm_node *value;
2906} pm_class_variable_or_write_node_t;
2907
2920 typedef struct pm_class_variable_read_node {
2922 pm_node_t base;
2923
2924
2934 pm_constant_id_t name;
2935} pm_class_variable_read_node_t;
2936
2949 typedef struct pm_class_variable_target_node {
2951 pm_node_t base;
2952
2953
2957 pm_constant_id_t name;
2958} pm_class_variable_target_node_t;
2959
2972 typedef struct pm_class_variable_write_node {
2974 pm_node_t base;
2975
2976
2986 pm_constant_id_t name;
2987
2996 pm_location_t name_loc;
2997
3009 struct pm_node *value;
3010
3019 pm_location_t operator_loc;
3020} pm_class_variable_write_node_t;
3021
3034 typedef struct pm_constant_and_write_node {
3036 pm_node_t base;
3037
3038
3042 pm_constant_id_t name;
3043
3047 pm_location_t name_loc;
3048
3052 pm_location_t operator_loc;
3053
3057 struct pm_node *value;
3058} pm_constant_and_write_node_t;
3059
3072 typedef struct pm_constant_operator_write_node {
3074 pm_node_t base;
3075
3076
3080 pm_constant_id_t name;
3081
3085 pm_location_t name_loc;
3086
3090 pm_location_t binary_operator_loc;
3091
3095 struct pm_node *value;
3096
3100 pm_constant_id_t binary_operator;
3101} pm_constant_operator_write_node_t;
3102
3115 typedef struct pm_constant_or_write_node {
3117 pm_node_t base;
3118
3119
3123 pm_constant_id_t name;
3124
3128 pm_location_t name_loc;
3129
3133 pm_location_t operator_loc;
3134
3138 struct pm_node *value;
3139} pm_constant_or_write_node_t;
3140
3153 typedef struct pm_constant_path_and_write_node {
3155 pm_node_t base;
3156
3157
3161 struct pm_constant_path_node *target;
3162
3166 pm_location_t operator_loc;
3167
3171 struct pm_node *value;
3172} pm_constant_path_and_write_node_t;
3173
3186 typedef struct pm_constant_path_node {
3188 pm_node_t base;
3189
3190
3205 struct pm_node *parent;
3206
3212 pm_constant_id_t name;
3213
3225 pm_location_t delimiter_loc;
3226
3238 pm_location_t name_loc;
3239} pm_constant_path_node_t;
3240
3253 typedef struct pm_constant_path_operator_write_node {
3255 pm_node_t base;
3256
3257
3261 struct pm_constant_path_node *target;
3262
3266 pm_location_t binary_operator_loc;
3267
3271 struct pm_node *value;
3272
3276 pm_constant_id_t binary_operator;
3277} pm_constant_path_operator_write_node_t;
3278
3291 typedef struct pm_constant_path_or_write_node {
3293 pm_node_t base;
3294
3295
3299 struct pm_constant_path_node *target;
3300
3304 pm_location_t operator_loc;
3305
3309 struct pm_node *value;
3310} pm_constant_path_or_write_node_t;
3311
3324 typedef struct pm_constant_path_target_node {
3326 pm_node_t base;
3327
3328
3332 struct pm_node *parent;
3333
3337 pm_constant_id_t name;
3338
3342 pm_location_t delimiter_loc;
3343
3347 pm_location_t name_loc;
3348} pm_constant_path_target_node_t;
3349
3368 typedef struct pm_constant_path_write_node {
3370 pm_node_t base;
3371
3372
3384 struct pm_constant_path_node *target;
3385
3394 pm_location_t operator_loc;
3395
3404 struct pm_node *value;
3405} pm_constant_path_write_node_t;
3406
3419 typedef struct pm_constant_read_node {
3421 pm_node_t base;
3422
3423
3433 pm_constant_id_t name;
3434} pm_constant_read_node_t;
3435
3448 typedef struct pm_constant_target_node {
3450 pm_node_t base;
3451
3452
3456 pm_constant_id_t name;
3457} pm_constant_target_node_t;
3458
3471 typedef struct pm_constant_write_node {
3473 pm_node_t base;
3474
3475
3485 pm_constant_id_t name;
3486
3495 pm_location_t name_loc;
3496
3508 struct pm_node *value;
3509
3518 pm_location_t operator_loc;
3519} pm_constant_write_node_t;
3520
3534 typedef struct pm_def_node {
3536 pm_node_t base;
3537
3538
3542 pm_constant_id_t name;
3543
3547 pm_location_t name_loc;
3548
3552 struct pm_node *receiver;
3553
3557 struct pm_parameters_node *parameters;
3558
3562 struct pm_node *body;
3563
3567 pm_constant_id_list_t locals;
3568
3572 pm_location_t def_keyword_loc;
3573
3577 pm_location_t operator_loc;
3578
3582 pm_location_t lparen_loc;
3583
3587 pm_location_t rparen_loc;
3588
3592 pm_location_t equal_loc;
3593
3597 pm_location_t end_keyword_loc;
3598} pm_def_node_t;
3599
3612 typedef struct pm_defined_node {
3614 pm_node_t base;
3615
3616
3620 pm_location_t lparen_loc;
3621
3625 struct pm_node *value;
3626
3630 pm_location_t rparen_loc;
3631
3635 pm_location_t keyword_loc;
3636} pm_defined_node_t;
3637
3650 typedef struct pm_else_node {
3652 pm_node_t base;
3653
3654
3658 pm_location_t else_keyword_loc;
3659
3663 struct pm_statements_node *statements;
3664
3668 pm_location_t end_keyword_loc;
3669} pm_else_node_t;
3670
3683 typedef struct pm_embedded_statements_node {
3685 pm_node_t base;
3686
3687
3691 pm_location_t opening_loc;
3692
3696 struct pm_statements_node *statements;
3697
3701 pm_location_t closing_loc;
3702} pm_embedded_statements_node_t;
3703
3716 typedef struct pm_embedded_variable_node {
3718 pm_node_t base;
3719
3720
3724 pm_location_t operator_loc;
3725
3729 struct pm_node *variable;
3730} pm_embedded_variable_node_t;
3731
3748 typedef struct pm_ensure_node {
3750 pm_node_t base;
3751
3752
3756 pm_location_t ensure_keyword_loc;
3757
3761 struct pm_statements_node *statements;
3762
3766 pm_location_t end_keyword_loc;
3767} pm_ensure_node_t;
3768
3781 typedef struct pm_false_node {
3783 pm_node_t base;
3784
3785} pm_false_node_t;
3786
3808 typedef struct pm_find_pattern_node {
3810 pm_node_t base;
3811
3812
3821 struct pm_node *constant;
3822
3834 struct pm_splat_node *left;
3835
3847 struct pm_node_list requireds;
3848
3860 struct pm_node *right;
3861
3873 pm_location_t opening_loc;
3874
3886 pm_location_t closing_loc;
3887} pm_find_pattern_node_t;
3888
3904 typedef struct pm_flip_flop_node {
3906 pm_node_t base;
3907
3908
3912 struct pm_node *left;
3913
3917 struct pm_node *right;
3918
3922 pm_location_t operator_loc;
3923} pm_flip_flop_node_t;
3924
3937 typedef struct pm_float_node {
3939 pm_node_t base;
3940
3941
3947 double value;
3948} pm_float_node_t;
3949
3962 typedef struct pm_for_node {
3964 pm_node_t base;
3965
3966
3975 struct pm_node *index;
3976
3985 struct pm_node *collection;
3986
3997 struct pm_statements_node *statements;
3998
4007 pm_location_t for_keyword_loc;
4008
4017 pm_location_t in_keyword_loc;
4018
4027 pm_location_t do_keyword_loc;
4028
4037 pm_location_t end_keyword_loc;
4038} pm_for_node_t;
4039
4054 typedef struct pm_forwarding_arguments_node {
4056 pm_node_t base;
4057
4058} pm_forwarding_arguments_node_t;
4059
4073 typedef struct pm_forwarding_parameter_node {
4075 pm_node_t base;
4076
4077} pm_forwarding_parameter_node_t;
4078
4091 typedef struct pm_forwarding_super_node {
4093 pm_node_t base;
4094
4095
4099 struct pm_block_node *block;
4100} pm_forwarding_super_node_t;
4101
4114 typedef struct pm_global_variable_and_write_node {
4116 pm_node_t base;
4117
4118
4122 pm_constant_id_t name;
4123
4127 pm_location_t name_loc;
4128
4132 pm_location_t operator_loc;
4133
4137 struct pm_node *value;
4138} pm_global_variable_and_write_node_t;
4139
4152 typedef struct pm_global_variable_operator_write_node {
4154 pm_node_t base;
4155
4156
4160 pm_constant_id_t name;
4161
4165 pm_location_t name_loc;
4166
4170 pm_location_t binary_operator_loc;
4171
4175 struct pm_node *value;
4176
4180 pm_constant_id_t binary_operator;
4181} pm_global_variable_operator_write_node_t;
4182
4195 typedef struct pm_global_variable_or_write_node {
4197 pm_node_t base;
4198
4199
4203 pm_constant_id_t name;
4204
4208 pm_location_t name_loc;
4209
4213 pm_location_t operator_loc;
4214
4218 struct pm_node *value;
4219} pm_global_variable_or_write_node_t;
4220
4233 typedef struct pm_global_variable_read_node {
4235 pm_node_t base;
4236
4237
4247 pm_constant_id_t name;
4248} pm_global_variable_read_node_t;
4249
4262 typedef struct pm_global_variable_target_node {
4264 pm_node_t base;
4265
4266
4270 pm_constant_id_t name;
4271} pm_global_variable_target_node_t;
4272
4285 typedef struct pm_global_variable_write_node {
4287 pm_node_t base;
4288
4289
4299 pm_constant_id_t name;
4300
4309 pm_location_t name_loc;
4310
4322 struct pm_node *value;
4323
4332 pm_location_t operator_loc;
4333} pm_global_variable_write_node_t;
4334
4347 typedef struct pm_hash_node {
4349 pm_node_t base;
4350
4351
4360 pm_location_t opening_loc;
4361
4373 struct pm_node_list elements;
4374
4383 pm_location_t closing_loc;
4384} pm_hash_node_t;
4385
4407 typedef struct pm_hash_pattern_node {
4409 pm_node_t base;
4410
4411
4423 struct pm_node *constant;
4424
4433 struct pm_node_list elements;
4434
4449 struct pm_node *rest;
4450
4462 pm_location_t opening_loc;
4463
4475 pm_location_t closing_loc;
4476} pm_hash_pattern_node_t;
4477
4496 typedef struct pm_if_node {
4498 pm_node_t base;
4499
4500
4511 pm_location_t if_keyword_loc;
4512
4529 struct pm_node *predicate;
4530
4542 pm_location_t then_keyword_loc;
4543
4556 struct pm_statements_node *statements;
4557
4575 struct pm_node *subsequent;
4576
4587 pm_location_t end_keyword_loc;
4588} pm_if_node_t;
4589
4602 typedef struct pm_imaginary_node {
4604 pm_node_t base;
4605
4606
4610 struct pm_node *numeric;
4611} pm_imaginary_node_t;
4612
4631 typedef struct pm_implicit_node {
4633 pm_node_t base;
4634
4635
4639 struct pm_node *value;
4640} pm_implicit_node_t;
4641
4663 typedef struct pm_implicit_rest_node {
4665 pm_node_t base;
4666
4667} pm_implicit_rest_node_t;
4668
4681 typedef struct pm_in_node {
4683 pm_node_t base;
4684
4685
4689 struct pm_node *pattern;
4690
4694 struct pm_statements_node *statements;
4695
4699 pm_location_t in_loc;
4700
4704 pm_location_t then_loc;
4705} pm_in_node_t;
4706
4725 typedef struct pm_index_and_write_node {
4727 pm_node_t base;
4728
4729
4733 struct pm_node *receiver;
4734
4738 pm_location_t call_operator_loc;
4739
4743 pm_location_t opening_loc;
4744
4748 struct pm_arguments_node *arguments;
4749
4753 pm_location_t closing_loc;
4754
4758 struct pm_block_argument_node *block;
4759
4763 pm_location_t operator_loc;
4764
4768 struct pm_node *value;
4769} pm_index_and_write_node_t;
4770
4789 typedef struct pm_index_operator_write_node {
4791 pm_node_t base;
4792
4793
4797 struct pm_node *receiver;
4798
4802 pm_location_t call_operator_loc;
4803
4807 pm_location_t opening_loc;
4808
4812 struct pm_arguments_node *arguments;
4813
4817 pm_location_t closing_loc;
4818
4822 struct pm_block_argument_node *block;
4823
4827 pm_constant_id_t binary_operator;
4828
4832 pm_location_t binary_operator_loc;
4833
4837 struct pm_node *value;
4838} pm_index_operator_write_node_t;
4839
4858 typedef struct pm_index_or_write_node {
4860 pm_node_t base;
4861
4862
4866 struct pm_node *receiver;
4867
4871 pm_location_t call_operator_loc;
4872
4876 pm_location_t opening_loc;
4877
4881 struct pm_arguments_node *arguments;
4882
4886 pm_location_t closing_loc;
4887
4891 struct pm_block_argument_node *block;
4892
4896 pm_location_t operator_loc;
4897
4901 struct pm_node *value;
4902} pm_index_or_write_node_t;
4903
4930 typedef struct pm_index_target_node {
4932 pm_node_t base;
4933
4934
4938 struct pm_node *receiver;
4939
4943 pm_location_t opening_loc;
4944
4948 struct pm_arguments_node *arguments;
4949
4953 pm_location_t closing_loc;
4954
4958 struct pm_block_argument_node *block;
4959} pm_index_target_node_t;
4960
4973 typedef struct pm_instance_variable_and_write_node {
4975 pm_node_t base;
4976
4977
4981 pm_constant_id_t name;
4982
4986 pm_location_t name_loc;
4987
4991 pm_location_t operator_loc;
4992
4996 struct pm_node *value;
4997} pm_instance_variable_and_write_node_t;
4998
5011 typedef struct pm_instance_variable_operator_write_node {
5013 pm_node_t base;
5014
5015
5019 pm_constant_id_t name;
5020
5024 pm_location_t name_loc;
5025
5029 pm_location_t binary_operator_loc;
5030
5034 struct pm_node *value;
5035
5039 pm_constant_id_t binary_operator;
5040} pm_instance_variable_operator_write_node_t;
5041
5054 typedef struct pm_instance_variable_or_write_node {
5056 pm_node_t base;
5057
5058
5062 pm_constant_id_t name;
5063
5067 pm_location_t name_loc;
5068
5072 pm_location_t operator_loc;
5073
5077 struct pm_node *value;
5078} pm_instance_variable_or_write_node_t;
5079
5092 typedef struct pm_instance_variable_read_node {
5094 pm_node_t base;
5095
5096
5106 pm_constant_id_t name;
5107} pm_instance_variable_read_node_t;
5108
5121 typedef struct pm_instance_variable_target_node {
5123 pm_node_t base;
5124
5125
5129 pm_constant_id_t name;
5130} pm_instance_variable_target_node_t;
5131
5144 typedef struct pm_instance_variable_write_node {
5146 pm_node_t base;
5147
5148
5158 pm_constant_id_t name;
5159
5168 pm_location_t name_loc;
5169
5181 struct pm_node *value;
5182
5191 pm_location_t operator_loc;
5192} pm_instance_variable_write_node_t;
5193
5212 typedef struct pm_integer_node {
5214 pm_node_t base;
5215
5216
5222 pm_integer_t value;
5223} pm_integer_node_t;
5224
5250 typedef struct pm_interpolated_match_last_line_node {
5252 pm_node_t base;
5253
5254
5258 pm_location_t opening_loc;
5259
5263 struct pm_node_list parts;
5264
5268 pm_location_t closing_loc;
5269} pm_interpolated_match_last_line_node_t;
5270
5296 typedef struct pm_interpolated_regular_expression_node {
5298 pm_node_t base;
5299
5300
5304 pm_location_t opening_loc;
5305
5309 struct pm_node_list parts;
5310
5314 pm_location_t closing_loc;
5315} pm_interpolated_regular_expression_node_t;
5316
5333 typedef struct pm_interpolated_string_node {
5335 pm_node_t base;
5336
5337
5341 pm_location_t opening_loc;
5342
5346 struct pm_node_list parts;
5347
5351 pm_location_t closing_loc;
5352} pm_interpolated_string_node_t;
5353
5366 typedef struct pm_interpolated_symbol_node {
5368 pm_node_t base;
5369
5370
5374 pm_location_t opening_loc;
5375
5379 struct pm_node_list parts;
5380
5384 pm_location_t closing_loc;
5385} pm_interpolated_symbol_node_t;
5386
5399 typedef struct pm_interpolated_x_string_node {
5401 pm_node_t base;
5402
5403
5407 pm_location_t opening_loc;
5408
5412 struct pm_node_list parts;
5413
5417 pm_location_t closing_loc;
5418} pm_interpolated_x_string_node_t;
5419
5432 typedef struct pm_it_local_variable_read_node {
5434 pm_node_t base;
5435
5436} pm_it_local_variable_read_node_t;
5437
5450 typedef struct pm_it_parameters_node {
5452 pm_node_t base;
5453
5454} pm_it_parameters_node_t;
5455
5471 typedef struct pm_keyword_hash_node {
5473 pm_node_t base;
5474
5475
5479 struct pm_node_list elements;
5480} pm_keyword_hash_node_t;
5481
5498 typedef struct pm_keyword_rest_parameter_node {
5500 pm_node_t base;
5501
5502
5506 pm_constant_id_t name;
5507
5511 pm_location_t name_loc;
5512
5516 pm_location_t operator_loc;
5517} pm_keyword_rest_parameter_node_t;
5518
5531 typedef struct pm_lambda_node {
5533 pm_node_t base;
5534
5535
5539 pm_constant_id_list_t locals;
5540
5544 pm_location_t operator_loc;
5545
5549 pm_location_t opening_loc;
5550
5554 pm_location_t closing_loc;
5555
5559 struct pm_node *parameters;
5560
5564 struct pm_node *body;
5565} pm_lambda_node_t;
5566
5579 typedef struct pm_local_variable_and_write_node {
5581 pm_node_t base;
5582
5583
5587 pm_location_t name_loc;
5588
5592 pm_location_t operator_loc;
5593
5597 struct pm_node *value;
5598
5602 pm_constant_id_t name;
5603
5607 uint32_t depth;
5608} pm_local_variable_and_write_node_t;
5609
5622 typedef struct pm_local_variable_operator_write_node {
5624 pm_node_t base;
5625
5626
5630 pm_location_t name_loc;
5631
5635 pm_location_t binary_operator_loc;
5636
5640 struct pm_node *value;
5641
5645 pm_constant_id_t name;
5646
5650 pm_constant_id_t binary_operator;
5651
5655 uint32_t depth;
5656} pm_local_variable_operator_write_node_t;
5657
5670 typedef struct pm_local_variable_or_write_node {
5672 pm_node_t base;
5673
5674
5678 pm_location_t name_loc;
5679
5683 pm_location_t operator_loc;
5684
5688 struct pm_node *value;
5689
5693 pm_constant_id_t name;
5694
5698 uint32_t depth;
5699} pm_local_variable_or_write_node_t;
5700
5713 typedef struct pm_local_variable_read_node {
5715 pm_node_t base;
5716
5717
5731 pm_constant_id_t name;
5732
5744 uint32_t depth;
5745} pm_local_variable_read_node_t;
5746
5762 typedef struct pm_local_variable_target_node {
5764 pm_node_t base;
5765
5766
5770 pm_constant_id_t name;
5771
5775 uint32_t depth;
5776} pm_local_variable_target_node_t;
5777
5790 typedef struct pm_local_variable_write_node {
5792 pm_node_t base;
5793
5794
5804 pm_constant_id_t name;
5805
5817 uint32_t depth;
5818
5827 pm_location_t name_loc;
5828
5844 struct pm_node *value;
5845
5854 pm_location_t operator_loc;
5855} pm_local_variable_write_node_t;
5856
5882 typedef struct pm_match_last_line_node {
5884 pm_node_t base;
5885
5886
5890 pm_location_t opening_loc;
5891
5895 pm_location_t content_loc;
5896
5900 pm_location_t closing_loc;
5901
5905 pm_string_t unescaped;
5906} pm_match_last_line_node_t;
5907
5920 typedef struct pm_match_predicate_node {
5922 pm_node_t base;
5923
5924
5928 struct pm_node *value;
5929
5933 struct pm_node *pattern;
5934
5938 pm_location_t operator_loc;
5939} pm_match_predicate_node_t;
5940
5953 typedef struct pm_match_required_node {
5955 pm_node_t base;
5956
5957
5966 struct pm_node *value;
5967
6015 struct pm_node *pattern;
6016
6025 pm_location_t operator_loc;
6026} pm_match_required_node_t;
6027
6040 typedef struct pm_match_write_node {
6042 pm_node_t base;
6043
6044
6048 struct pm_call_node *call;
6049
6053 struct pm_node_list targets;
6054} pm_match_write_node_t;
6055
6065 typedef struct pm_missing_node {
6067 pm_node_t base;
6068
6069} pm_missing_node_t;
6070
6083 typedef struct pm_module_node {
6085 pm_node_t base;
6086
6087
6091 pm_constant_id_list_t locals;
6092
6096 pm_location_t module_keyword_loc;
6097
6101 struct pm_node *constant_path;
6102
6106 struct pm_node *body;
6107
6111 pm_location_t end_keyword_loc;
6112
6116 pm_constant_id_t name;
6117} pm_module_node_t;
6118
6136 typedef struct pm_multi_target_node {
6138 pm_node_t base;
6139
6140
6154 struct pm_node_list lefts;
6155
6174 struct pm_node *rest;
6175
6184 struct pm_node_list rights;
6185
6194 pm_location_t lparen_loc;
6195
6204 pm_location_t rparen_loc;
6205} pm_multi_target_node_t;
6206
6219 typedef struct pm_multi_write_node {
6221 pm_node_t base;
6222
6223
6237 struct pm_node_list lefts;
6238
6257 struct pm_node *rest;
6258
6267 struct pm_node_list rights;
6268
6277 pm_location_t lparen_loc;
6278
6287 pm_location_t rparen_loc;
6288
6297 pm_location_t operator_loc;
6298
6307 struct pm_node *value;
6308} pm_multi_write_node_t;
6309
6322 typedef struct pm_next_node {
6324 pm_node_t base;
6325
6326
6330 struct pm_arguments_node *arguments;
6331
6335 pm_location_t keyword_loc;
6336} pm_next_node_t;
6337
6350 typedef struct pm_nil_node {
6352 pm_node_t base;
6353
6354} pm_nil_node_t;
6355
6369 typedef struct pm_no_keywords_parameter_node {
6371 pm_node_t base;
6372
6373
6377 pm_location_t operator_loc;
6378
6382 pm_location_t keyword_loc;
6383} pm_no_keywords_parameter_node_t;
6384
6397 typedef struct pm_numbered_parameters_node {
6399 pm_node_t base;
6400
6401
6405 uint8_t maximum;
6406} pm_numbered_parameters_node_t;
6407
6420 typedef struct pm_numbered_reference_read_node {
6422 pm_node_t base;
6423
6424
6436 uint32_t number;
6437} pm_numbered_reference_read_node_t;
6438
6455 typedef struct pm_optional_keyword_parameter_node {
6457 pm_node_t base;
6458
6459
6463 pm_constant_id_t name;
6464
6468 pm_location_t name_loc;
6469
6473 struct pm_node *value;
6474} pm_optional_keyword_parameter_node_t;
6475
6492 typedef struct pm_optional_parameter_node {
6494 pm_node_t base;
6495
6496
6500 pm_constant_id_t name;
6501
6505 pm_location_t name_loc;
6506
6510 pm_location_t operator_loc;
6511
6515 struct pm_node *value;
6516} pm_optional_parameter_node_t;
6517
6530 typedef struct pm_or_node {
6532 pm_node_t base;
6533
6534
6546 struct pm_node *left;
6547
6559 struct pm_node *right;
6560
6569 pm_location_t operator_loc;
6570} pm_or_node_t;
6571
6585 typedef struct pm_parameters_node {
6587 pm_node_t base;
6588
6589
6593 struct pm_node_list requireds;
6594
6598 struct pm_node_list optionals;
6599
6603 struct pm_node *rest;
6604
6608 struct pm_node_list posts;
6609
6613 struct pm_node_list keywords;
6614
6618 struct pm_node *keyword_rest;
6619
6623 struct pm_block_parameter_node *block;
6624} pm_parameters_node_t;
6625
6641 typedef struct pm_parentheses_node {
6643 pm_node_t base;
6644
6645
6649 struct pm_node *body;
6650
6654 pm_location_t opening_loc;
6655
6659 pm_location_t closing_loc;
6660} pm_parentheses_node_t;
6661
6674 typedef struct pm_pinned_expression_node {
6676 pm_node_t base;
6677
6678
6687 struct pm_node *expression;
6688
6697 pm_location_t operator_loc;
6698
6707 pm_location_t lparen_loc;
6708
6717 pm_location_t rparen_loc;
6718} pm_pinned_expression_node_t;
6719
6732 typedef struct pm_pinned_variable_node {
6734 pm_node_t base;
6735
6736
6745 struct pm_node *variable;
6746
6755 pm_location_t operator_loc;
6756} pm_pinned_variable_node_t;
6757
6770 typedef struct pm_post_execution_node {
6772 pm_node_t base;
6773
6774
6778 struct pm_statements_node *statements;
6779
6783 pm_location_t keyword_loc;
6784
6788 pm_location_t opening_loc;
6789
6793 pm_location_t closing_loc;
6794} pm_post_execution_node_t;
6795
6808 typedef struct pm_pre_execution_node {
6810 pm_node_t base;
6811
6812
6816 struct pm_statements_node *statements;
6817
6821 pm_location_t keyword_loc;
6822
6826 pm_location_t opening_loc;
6827
6831 pm_location_t closing_loc;
6832} pm_pre_execution_node_t;
6833
6843 typedef struct pm_program_node {
6845 pm_node_t base;
6846
6847
6851 pm_constant_id_list_t locals;
6852
6856 struct pm_statements_node *statements;
6857} pm_program_node_t;
6858
6877 typedef struct pm_range_node {
6879 pm_node_t base;
6880
6881
6893 struct pm_node *left;
6894
6907 struct pm_node *right;
6908
6914 pm_location_t operator_loc;
6915} pm_range_node_t;
6916
6935 typedef struct pm_rational_node {
6937 pm_node_t base;
6938
6939
6947 pm_integer_t numerator;
6948
6956 pm_integer_t denominator;
6957} pm_rational_node_t;
6958
6971 typedef struct pm_redo_node {
6973 pm_node_t base;
6974
6975} pm_redo_node_t;
6976
7002 typedef struct pm_regular_expression_node {
7004 pm_node_t base;
7005
7006
7010 pm_location_t opening_loc;
7011
7015 pm_location_t content_loc;
7016
7020 pm_location_t closing_loc;
7021
7025 pm_string_t unescaped;
7026} pm_regular_expression_node_t;
7027
7044 typedef struct pm_required_keyword_parameter_node {
7046 pm_node_t base;
7047
7048
7052 pm_constant_id_t name;
7053
7057 pm_location_t name_loc;
7058} pm_required_keyword_parameter_node_t;
7059
7076 typedef struct pm_required_parameter_node {
7078 pm_node_t base;
7079
7080
7084 pm_constant_id_t name;
7085} pm_required_parameter_node_t;
7086
7099 typedef struct pm_rescue_modifier_node {
7101 pm_node_t base;
7102
7103
7107 struct pm_node *expression;
7108
7112 pm_location_t keyword_loc;
7113
7117 struct pm_node *rescue_expression;
7118} pm_rescue_modifier_node_t;
7119
7137 typedef struct pm_rescue_node {
7139 pm_node_t base;
7140
7141
7145 pm_location_t keyword_loc;
7146
7150 struct pm_node_list exceptions;
7151
7155 pm_location_t operator_loc;
7156
7160 struct pm_node *reference;
7161
7165 pm_location_t then_keyword_loc;
7166
7170 struct pm_statements_node *statements;
7171
7175 struct pm_rescue_node *subsequent;
7176} pm_rescue_node_t;
7177
7194 typedef struct pm_rest_parameter_node {
7196 pm_node_t base;
7197
7198
7202 pm_constant_id_t name;
7203
7207 pm_location_t name_loc;
7208
7212 pm_location_t operator_loc;
7213} pm_rest_parameter_node_t;
7214
7227 typedef struct pm_retry_node {
7229 pm_node_t base;
7230
7231} pm_retry_node_t;
7232
7245 typedef struct pm_return_node {
7247 pm_node_t base;
7248
7249
7253 pm_location_t keyword_loc;
7254
7258 struct pm_arguments_node *arguments;
7259} pm_return_node_t;
7260
7273 typedef struct pm_self_node {
7275 pm_node_t base;
7276
7277} pm_self_node_t;
7278
7297 typedef struct pm_shareable_constant_node {
7299 pm_node_t base;
7300
7301
7307 struct pm_node *write;
7308} pm_shareable_constant_node_t;
7309
7322 typedef struct pm_singleton_class_node {
7324 pm_node_t base;
7325
7326
7330 pm_constant_id_list_t locals;
7331
7335 pm_location_t class_keyword_loc;
7336
7340 pm_location_t operator_loc;
7341
7345 struct pm_node *expression;
7346
7350 struct pm_node *body;
7351
7355 pm_location_t end_keyword_loc;
7356} pm_singleton_class_node_t;
7357
7370 typedef struct pm_source_encoding_node {
7372 pm_node_t base;
7373
7374} pm_source_encoding_node_t;
7375
7394 typedef struct pm_source_file_node {
7396 pm_node_t base;
7397
7398
7404 pm_string_t filepath;
7405} pm_source_file_node_t;
7406
7419 typedef struct pm_source_line_node {
7421 pm_node_t base;
7422
7423} pm_source_line_node_t;
7424
7437 typedef struct pm_splat_node {
7439 pm_node_t base;
7440
7441
7445 pm_location_t operator_loc;
7446
7450 struct pm_node *expression;
7451} pm_splat_node_t;
7452
7465 typedef struct pm_statements_node {
7467 pm_node_t base;
7468
7469
7473 struct pm_node_list body;
7474} pm_statements_node_t;
7475
7500 typedef struct pm_string_node {
7502 pm_node_t base;
7503
7504
7508 pm_location_t opening_loc;
7509
7513 pm_location_t content_loc;
7514
7518 pm_location_t closing_loc;
7519
7523 pm_string_t unescaped;
7524} pm_string_node_t;
7525
7541 typedef struct pm_super_node {
7543 pm_node_t base;
7544
7545
7549 pm_location_t keyword_loc;
7550
7554 pm_location_t lparen_loc;
7555
7559 struct pm_arguments_node *arguments;
7560
7564 pm_location_t rparen_loc;
7565
7569 struct pm_node *block;
7570} pm_super_node_t;
7571
7592 typedef struct pm_symbol_node {
7594 pm_node_t base;
7595
7596
7600 pm_location_t opening_loc;
7601
7605 pm_location_t value_loc;
7606
7610 pm_location_t closing_loc;
7611
7615 pm_string_t unescaped;
7616} pm_symbol_node_t;
7617
7630 typedef struct pm_true_node {
7632 pm_node_t base;
7633
7634} pm_true_node_t;
7635
7648 typedef struct pm_undef_node {
7650 pm_node_t base;
7651
7652
7656 struct pm_node_list names;
7657
7661 pm_location_t keyword_loc;
7662} pm_undef_node_t;
7663
7679 typedef struct pm_unless_node {
7681 pm_node_t base;
7682
7683
7695 pm_location_t keyword_loc;
7696
7708 struct pm_node *predicate;
7709
7718 pm_location_t then_keyword_loc;
7719
7729 struct pm_statements_node *statements;
7730
7739 struct pm_else_node *else_clause;
7740
7749 pm_location_t end_keyword_loc;
7750} pm_unless_node_t;
7751
7770 typedef struct pm_until_node {
7772 pm_node_t base;
7773
7774
7778 pm_location_t keyword_loc;
7779
7783 pm_location_t do_keyword_loc;
7784
7788 pm_location_t closing_loc;
7789
7793 struct pm_node *predicate;
7794
7798 struct pm_statements_node *statements;
7799} pm_until_node_t;
7800
7815 typedef struct pm_when_node {
7817 pm_node_t base;
7818
7819
7823 pm_location_t keyword_loc;
7824
7828 struct pm_node_list conditions;
7829
7833 pm_location_t then_keyword_loc;
7834
7838 struct pm_statements_node *statements;
7839} pm_when_node_t;
7840
7859 typedef struct pm_while_node {
7861 pm_node_t base;
7862
7863
7867 pm_location_t keyword_loc;
7868
7872 pm_location_t do_keyword_loc;
7873
7877 pm_location_t closing_loc;
7878
7882 struct pm_node *predicate;
7883
7887 struct pm_statements_node *statements;
7888} pm_while_node_t;
7889
7906 typedef struct pm_x_string_node {
7908 pm_node_t base;
7909
7910
7914 pm_location_t opening_loc;
7915
7919 pm_location_t content_loc;
7920
7924 pm_location_t closing_loc;
7925
7929 pm_string_t unescaped;
7930} pm_x_string_node_t;
7931
7944 typedef struct pm_yield_node {
7946 pm_node_t base;
7947
7948
7952 pm_location_t keyword_loc;
7953
7957 pm_location_t lparen_loc;
7958
7962 struct pm_arguments_node *arguments;
7963
7967 pm_location_t rparen_loc;
7968} pm_yield_node_t;
7969
7973typedef enum pm_arguments_node_flags {
7975 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING = 4,
7976
7978 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS = 8,
7979
7981 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT = 16,
7982
7984 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT = 32,
7985
7987 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
7988
7989 PM_ARGUMENTS_NODE_FLAGS_LAST,
7990} pm_arguments_node_flags_t;
7991
7995typedef enum pm_array_node_flags {
7997 PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
7998
7999 PM_ARRAY_NODE_FLAGS_LAST,
8000} pm_array_node_flags_t;
8001
8005typedef enum pm_call_node_flags {
8007 PM_CALL_NODE_FLAGS_SAFE_NAVIGATION = 4,
8008
8010 PM_CALL_NODE_FLAGS_VARIABLE_CALL = 8,
8011
8013 PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 16,
8014
8016 PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
8017
8018 PM_CALL_NODE_FLAGS_LAST,
8019} pm_call_node_flags_t;
8020
8024typedef enum pm_encoding_flags {
8026 PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING = 4,
8027
8029 PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
8030
8031 PM_ENCODING_FLAGS_LAST,
8032} pm_encoding_flags_t;
8033
8037typedef enum pm_integer_base_flags {
8039 PM_INTEGER_BASE_FLAGS_BINARY = 4,
8040
8042 PM_INTEGER_BASE_FLAGS_DECIMAL = 8,
8043
8045 PM_INTEGER_BASE_FLAGS_OCTAL = 16,
8046
8048 PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
8049
8050 PM_INTEGER_BASE_FLAGS_LAST,
8051} pm_integer_base_flags_t;
8052
8056typedef enum pm_interpolated_string_node_flags {
8058 PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN = 4,
8059
8061 PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
8062
8063 PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
8064} pm_interpolated_string_node_flags_t;
8065
8069typedef enum pm_keyword_hash_node_flags {
8071 PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
8072
8073 PM_KEYWORD_HASH_NODE_FLAGS_LAST,
8074} pm_keyword_hash_node_flags_t;
8075
8079typedef enum pm_loop_flags {
8081 PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8082
8083 PM_LOOP_FLAGS_LAST,
8084} pm_loop_flags_t;
8085
8089typedef enum pm_parameter_flags {
8091 PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8092
8093 PM_PARAMETER_FLAGS_LAST,
8094} pm_parameter_flags_t;
8095
8099typedef enum pm_parentheses_node_flags {
8101 PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8102
8103 PM_PARENTHESES_NODE_FLAGS_LAST,
8104} pm_parentheses_node_flags_t;
8105
8109typedef enum pm_range_flags {
8111 PM_RANGE_FLAGS_EXCLUDE_END = 4,
8112
8113 PM_RANGE_FLAGS_LAST,
8114} pm_range_flags_t;
8115
8119typedef enum pm_regular_expression_flags {
8121 PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 4,
8122
8124 PM_REGULAR_EXPRESSION_FLAGS_EXTENDED = 8,
8125
8127 PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 16,
8128
8130 PM_REGULAR_EXPRESSION_FLAGS_ONCE = 32,
8131
8133 PM_REGULAR_EXPRESSION_FLAGS_EUC_JP = 64,
8134
8136 PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 128,
8137
8139 PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 256,
8140
8142 PM_REGULAR_EXPRESSION_FLAGS_UTF_8 = 512,
8143
8145 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING = 1024,
8146
8148 PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING = 2048,
8149
8151 PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8152
8153 PM_REGULAR_EXPRESSION_FLAGS_LAST,
8154} pm_regular_expression_flags_t;
8155
8159typedef enum pm_shareable_constant_node_flags {
8161 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL = 4,
8162
8164 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING = 8,
8165
8167 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8168
8169 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
8170} pm_shareable_constant_node_flags_t;
8171
8175typedef enum pm_string_flags {
8177 PM_STRING_FLAGS_FORCED_UTF8_ENCODING = 4,
8178
8180 PM_STRING_FLAGS_FORCED_BINARY_ENCODING = 8,
8181
8183 PM_STRING_FLAGS_FROZEN = 16,
8184
8186 PM_STRING_FLAGS_MUTABLE = 32,
8187
8188 PM_STRING_FLAGS_LAST,
8189} pm_string_flags_t;
8190
8194typedef enum pm_symbol_flags {
8196 PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING = 4,
8197
8199 PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING = 8,
8200
8202 PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
8203
8204 PM_SYMBOL_FLAGS_LAST,
8205} pm_symbol_flags_t;
8206
8213#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
8214
8215#endif
assert.h
pm_constant_pool.h
A data structure that stores a set of strings.
pm_constant_id_t
uint32_t pm_constant_id_t
A constant id is a unique identifier for a constant in the constant pool.
Definition pm_constant_pool.h:31
pm_integer.h
This module provides functions for working with arbitrary-sized integers.
pm_string.h
A generic string type that can have various ownership semantics.
defines.h
Macro definitions used throughout the prism library.
pm_alias_global_variable_node
AliasGlobalVariableNode.
Definition ast.h:1106
pm_alias_global_variable_node::old_name
struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1129
pm_alias_global_variable_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1108
pm_alias_global_variable_node::new_name
struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1119
pm_alias_global_variable_node::keyword_loc
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1139
pm_alias_method_node
AliasMethodNode.
Definition ast.h:1154
pm_alias_method_node::old_name
struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1189
pm_alias_method_node::new_name
struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1173
pm_alias_method_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1156
pm_alias_method_node::keyword_loc
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1199
pm_alternation_pattern_node
AlternationPatternNode.
Definition ast.h:1214
pm_alternation_pattern_node::operator_loc
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1247
pm_alternation_pattern_node::left
struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1227
pm_alternation_pattern_node::right
struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1237
pm_alternation_pattern_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1216
pm_and_node
AndNode.
Definition ast.h:1262
pm_and_node::left
struct pm_node * left
AndNode::left.
Definition ast.h:1278
pm_and_node::right
struct pm_node * right
AndNode::right.
Definition ast.h:1291
pm_and_node::operator_loc
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1301
pm_and_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1264
pm_arguments_node
ArgumentsNode.
Definition ast.h:1323
pm_arguments_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1325
pm_arguments_node::arguments
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1336
pm_array_node
ArrayNode.
Definition ast.h:1354
pm_array_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1356
pm_array_node::closing_loc
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1388
pm_array_node::elements
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1364
pm_array_node::opening_loc
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1376
pm_array_pattern_node
ArrayPatternNode.
Definition ast.h:1415
pm_array_pattern_node::requireds
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1444
pm_array_pattern_node::rest
struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1454
pm_array_pattern_node::constant
struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1434
pm_array_pattern_node::opening_loc
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1474
pm_array_pattern_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1417
pm_array_pattern_node::closing_loc
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1484
pm_array_pattern_node::posts
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1464
pm_assoc_node
AssocNode.
Definition ast.h:1499
pm_assoc_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1501
pm_assoc_node::value
struct pm_node * value
AssocNode::value.
Definition ast.h:1531
pm_assoc_node::key
struct pm_node * key
AssocNode::key.
Definition ast.h:1518
pm_assoc_node::operator_loc
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1541
pm_assoc_splat_node
AssocSplatNode.
Definition ast.h:1556
pm_assoc_splat_node::value
struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1569
pm_assoc_splat_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1558
pm_assoc_splat_node::operator_loc
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1579
pm_back_reference_read_node
BackReferenceReadNode.
Definition ast.h:1594
pm_back_reference_read_node::name
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1608
pm_back_reference_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1596
pm_begin_node
BeginNode.
Definition ast.h:1625
pm_begin_node::ensure_clause
struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1678
pm_begin_node::rescue_clause
struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1658
pm_begin_node::statements
struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1648
pm_begin_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1627
pm_begin_node::end_keyword_loc
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1688
pm_begin_node::begin_keyword_loc
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1638
pm_begin_node::else_clause
struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1668
pm_block_argument_node
BlockArgumentNode.
Definition ast.h:1703
pm_block_argument_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1705
pm_block_argument_node::expression
struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1716
pm_block_argument_node::operator_loc
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1726
pm_block_local_variable_node
BlockLocalVariableNode.
Definition ast.h:1744
pm_block_local_variable_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1746
pm_block_local_variable_node::name
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1757
pm_block_node
BlockNode.
Definition ast.h:1772
pm_block_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1774
pm_block_node::closing_loc
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1829
pm_block_node::parameters
struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1799
pm_block_node::opening_loc
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1819
pm_block_node::body
struct pm_node * body
BlockNode::body.
Definition ast.h:1809
pm_block_node::locals
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1785
pm_block_parameter_node
BlockParameterNode.
Definition ast.h:1848
pm_block_parameter_node::operator_loc
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1883
pm_block_parameter_node::name_loc
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1872
pm_block_parameter_node::name
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1862
pm_block_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1850
pm_block_parameters_node
BlockParametersNode.
Definition ast.h:1902
pm_block_parameters_node::parameters
struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1919
pm_block_parameters_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1904
pm_block_parameters_node::locals
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1933
pm_block_parameters_node::closing_loc
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1961
pm_block_parameters_node::opening_loc
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1947
pm_break_node
BreakNode.
Definition ast.h:1976
pm_break_node::arguments
struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:1989
pm_break_node::keyword_loc
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:1999
pm_break_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1978
pm_call_and_write_node
CallAndWriteNode.
Definition ast.h:2020
pm_call_and_write_node::operator_loc
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2083
pm_call_and_write_node::value
struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2093
pm_call_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2022
pm_call_and_write_node::call_operator_loc
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2043
pm_call_and_write_node::message_loc
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2053
pm_call_and_write_node::read_name
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2063
pm_call_and_write_node::write_name
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2073
pm_call_and_write_node::receiver
struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2033
pm_call_node
CallNode.
Definition ast.h:2129
pm_call_node::opening_loc
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2190
pm_call_node::closing_loc
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2210
pm_call_node::receiver
struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2148
pm_call_node::name
pm_constant_id_t name
CallNode::name.
Definition ast.h:2171
pm_call_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2131
pm_call_node::call_operator_loc
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2161
pm_call_node::message_loc
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2181
pm_call_node::arguments
struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2200
pm_call_node::block
struct pm_node * block
CallNode::block.
Definition ast.h:2220
pm_call_operator_write_node
CallOperatorWriteNode.
Definition ast.h:2241
pm_call_operator_write_node::read_name
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2284
pm_call_operator_write_node::binary_operator
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2304
pm_call_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2314
pm_call_operator_write_node::receiver
struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2254
pm_call_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2243
pm_call_operator_write_node::write_name
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2294
pm_call_operator_write_node::message_loc
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2274
pm_call_operator_write_node::value
struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2324
pm_call_operator_write_node::call_operator_loc
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2264
pm_call_or_write_node
CallOrWriteNode.
Definition ast.h:2345
pm_call_or_write_node::operator_loc
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2408
pm_call_or_write_node::call_operator_loc
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2368
pm_call_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2347
pm_call_or_write_node::receiver
struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2358
pm_call_or_write_node::value
struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2418
pm_call_or_write_node::write_name
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2398
pm_call_or_write_node::read_name
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2388
pm_call_or_write_node::message_loc
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2378
pm_call_target_node
CallTargetNode.
Definition ast.h:2447
pm_call_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2449
pm_call_target_node::name
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2480
pm_call_target_node::receiver
struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2460
pm_call_target_node::call_operator_loc
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2470
pm_call_target_node::message_loc
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2490
pm_capture_pattern_node
CapturePatternNode.
Definition ast.h:2505
pm_capture_pattern_node::target
struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2528
pm_capture_pattern_node::operator_loc
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2538
pm_capture_pattern_node::value
struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2518
pm_capture_pattern_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2507
pm_case_match_node
CaseMatchNode.
Definition ast.h:2555
pm_case_match_node::end_keyword_loc
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2608
pm_case_match_node::conditions
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2578
pm_case_match_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2557
pm_case_match_node::case_keyword_loc
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2598
pm_case_match_node::else_clause
struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2588
pm_case_match_node::predicate
struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2568
pm_case_node
CaseNode.
Definition ast.h:2625
pm_case_node::predicate
struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2638
pm_case_node::else_clause
struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2658
pm_case_node::conditions
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2648
pm_case_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2627
pm_case_node::case_keyword_loc
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2668
pm_case_node::end_keyword_loc
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2678
pm_class_node
ClassNode.
Definition ast.h:2693
pm_class_node::class_keyword_loc
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2711
pm_class_node::end_keyword_loc
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2757
pm_class_node::constant_path
struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2716
pm_class_node::locals
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2701
pm_class_node::inheritance_operator_loc
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2726
pm_class_node::name
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2766
pm_class_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2695
pm_class_node::body
struct pm_node * body
ClassNode::body.
Definition ast.h:2747
pm_class_node::superclass
struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2736
pm_class_variable_and_write_node
ClassVariableAndWriteNode.
Definition ast.h:2781
pm_class_variable_and_write_node::value
struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2824
pm_class_variable_and_write_node::name
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2794
pm_class_variable_and_write_node::operator_loc
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2814
pm_class_variable_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2783
pm_class_variable_and_write_node::name_loc
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2804
pm_class_variable_operator_write_node
ClassVariableOperatorWriteNode.
Definition ast.h:2839
pm_class_variable_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2841
pm_class_variable_operator_write_node::name
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2847
pm_class_variable_operator_write_node::name_loc
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2852
pm_class_variable_operator_write_node::binary_operator
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2867
pm_class_variable_operator_write_node::value
struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2862
pm_class_variable_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2857
pm_class_variable_or_write_node
ClassVariableOrWriteNode.
Definition ast.h:2882
pm_class_variable_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2884
pm_class_variable_or_write_node::name_loc
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2895
pm_class_variable_or_write_node::operator_loc
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2900
pm_class_variable_or_write_node::name
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2890
pm_class_variable_or_write_node::value
struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2905
pm_class_variable_read_node
ClassVariableReadNode.
Definition ast.h:2920
pm_class_variable_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2922
pm_class_variable_read_node::name
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2934
pm_class_variable_target_node
ClassVariableTargetNode.
Definition ast.h:2949
pm_class_variable_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2951
pm_class_variable_target_node::name
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2957
pm_class_variable_write_node
ClassVariableWriteNode.
Definition ast.h:2972
pm_class_variable_write_node::name_loc
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:2996
pm_class_variable_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2974
pm_class_variable_write_node::value
struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3009
pm_class_variable_write_node::operator_loc
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3019
pm_class_variable_write_node::name
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:2986
pm_constant_and_write_node
ConstantAndWriteNode.
Definition ast.h:3034
pm_constant_and_write_node::operator_loc
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3052
pm_constant_and_write_node::name_loc
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3047
pm_constant_and_write_node::name
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3042
pm_constant_and_write_node::value
struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3057
pm_constant_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3036
pm_constant_id_list_t
A list of constant IDs.
Definition pm_constant_pool.h:36
pm_constant_operator_write_node
ConstantOperatorWriteNode.
Definition ast.h:3072
pm_constant_operator_write_node::name
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3080
pm_constant_operator_write_node::name_loc
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3085
pm_constant_operator_write_node::binary_operator
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3100
pm_constant_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3090
pm_constant_operator_write_node::value
struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3095
pm_constant_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3074
pm_constant_or_write_node
ConstantOrWriteNode.
Definition ast.h:3115
pm_constant_or_write_node::operator_loc
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3133
pm_constant_or_write_node::name_loc
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3128
pm_constant_or_write_node::name
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3123
pm_constant_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3117
pm_constant_or_write_node::value
struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3138
pm_constant_path_and_write_node
ConstantPathAndWriteNode.
Definition ast.h:3153
pm_constant_path_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3155
pm_constant_path_and_write_node::target
struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3161
pm_constant_path_and_write_node::operator_loc
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3166
pm_constant_path_and_write_node::value
struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3171
pm_constant_path_node
ConstantPathNode.
Definition ast.h:3186
pm_constant_path_node::delimiter_loc
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3225
pm_constant_path_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3188
pm_constant_path_node::name_loc
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3238
pm_constant_path_node::name
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3212
pm_constant_path_node::parent
struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3205
pm_constant_path_operator_write_node
ConstantPathOperatorWriteNode.
Definition ast.h:3253
pm_constant_path_operator_write_node::target
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3261
pm_constant_path_operator_write_node::value
struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3271
pm_constant_path_operator_write_node::binary_operator
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3276
pm_constant_path_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3255
pm_constant_path_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3266
pm_constant_path_or_write_node
ConstantPathOrWriteNode.
Definition ast.h:3291
pm_constant_path_or_write_node::operator_loc
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3304
pm_constant_path_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3293
pm_constant_path_or_write_node::value
struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3309
pm_constant_path_or_write_node::target
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3299
pm_constant_path_target_node
ConstantPathTargetNode.
Definition ast.h:3324
pm_constant_path_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3326
pm_constant_path_target_node::parent
struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3332
pm_constant_path_target_node::delimiter_loc
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3342
pm_constant_path_target_node::name
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3337
pm_constant_path_target_node::name_loc
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3347
pm_constant_path_write_node
ConstantPathWriteNode.
Definition ast.h:3368
pm_constant_path_write_node::target
struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3384
pm_constant_path_write_node::operator_loc
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3394
pm_constant_path_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3370
pm_constant_path_write_node::value
struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3404
pm_constant_read_node
ConstantReadNode.
Definition ast.h:3419
pm_constant_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3421
pm_constant_read_node::name
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3433
pm_constant_target_node
ConstantTargetNode.
Definition ast.h:3448
pm_constant_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3450
pm_constant_target_node::name
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3456
pm_constant_write_node
ConstantWriteNode.
Definition ast.h:3471
pm_constant_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3473
pm_constant_write_node::value
struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3508
pm_constant_write_node::name
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3485
pm_constant_write_node::name_loc
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3495
pm_constant_write_node::operator_loc
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3518
pm_def_node
DefNode.
Definition ast.h:3534
pm_def_node::parameters
struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3557
pm_def_node::end_keyword_loc
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3597
pm_def_node::name
pm_constant_id_t name
DefNode::name.
Definition ast.h:3542
pm_def_node::name_loc
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3547
pm_def_node::rparen_loc
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3587
pm_def_node::body
struct pm_node * body
DefNode::body.
Definition ast.h:3562
pm_def_node::equal_loc
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3592
pm_def_node::def_keyword_loc
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3572
pm_def_node::receiver
struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3552
pm_def_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3536
pm_def_node::lparen_loc
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3582
pm_def_node::operator_loc
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3577
pm_def_node::locals
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3567
pm_defined_node
DefinedNode.
Definition ast.h:3612
pm_defined_node::lparen_loc
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3620
pm_defined_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3614
pm_defined_node::rparen_loc
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3630
pm_defined_node::keyword_loc
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3635
pm_defined_node::value
struct pm_node * value
DefinedNode::value.
Definition ast.h:3625
pm_else_node
ElseNode.
Definition ast.h:3650
pm_else_node::statements
struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3663
pm_else_node::else_keyword_loc
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3658
pm_else_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3652
pm_else_node::end_keyword_loc
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3668
pm_embedded_statements_node
EmbeddedStatementsNode.
Definition ast.h:3683
pm_embedded_statements_node::closing_loc
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3701
pm_embedded_statements_node::statements
struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3696
pm_embedded_statements_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3685
pm_embedded_statements_node::opening_loc
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3691
pm_embedded_variable_node
EmbeddedVariableNode.
Definition ast.h:3716
pm_embedded_variable_node::variable
struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3729
pm_embedded_variable_node::operator_loc
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3724
pm_embedded_variable_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3718
pm_ensure_node
EnsureNode.
Definition ast.h:3748
pm_ensure_node::statements
struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3761
pm_ensure_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3750
pm_ensure_node::ensure_keyword_loc
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3756
pm_ensure_node::end_keyword_loc
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3766
pm_false_node
FalseNode.
Definition ast.h:3781
pm_false_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3783
pm_find_pattern_node
FindPatternNode.
Definition ast.h:3808
pm_find_pattern_node::constant
struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3821
pm_find_pattern_node::right
struct pm_node * right
FindPatternNode::right.
Definition ast.h:3860
pm_find_pattern_node::opening_loc
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3873
pm_find_pattern_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3810
pm_find_pattern_node::requireds
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3847
pm_find_pattern_node::left
struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3834
pm_find_pattern_node::closing_loc
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3886
pm_flip_flop_node
FlipFlopNode.
Definition ast.h:3904
pm_flip_flop_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3906
pm_flip_flop_node::operator_loc
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3922
pm_flip_flop_node::left
struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3912
pm_flip_flop_node::right
struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3917
pm_float_node
FloatNode.
Definition ast.h:3937
pm_float_node::value
double value
FloatNode::value.
Definition ast.h:3947
pm_float_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3939
pm_for_node
ForNode.
Definition ast.h:3962
pm_for_node::statements
struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:3997
pm_for_node::index
struct pm_node * index
ForNode::index.
Definition ast.h:3975
pm_for_node::collection
struct pm_node * collection
ForNode::collection.
Definition ast.h:3985
pm_for_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3964
pm_for_node::end_keyword_loc
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4037
pm_for_node::for_keyword_loc
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4007
pm_for_node::do_keyword_loc
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4027
pm_for_node::in_keyword_loc
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4017
pm_forwarding_arguments_node
ForwardingArgumentsNode.
Definition ast.h:4054
pm_forwarding_arguments_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4056
pm_forwarding_parameter_node
ForwardingParameterNode.
Definition ast.h:4073
pm_forwarding_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4075
pm_forwarding_super_node
ForwardingSuperNode.
Definition ast.h:4091
pm_forwarding_super_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4093
pm_forwarding_super_node::block
struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4099
pm_global_variable_and_write_node
GlobalVariableAndWriteNode.
Definition ast.h:4114
pm_global_variable_and_write_node::operator_loc
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4132
pm_global_variable_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4116
pm_global_variable_and_write_node::name_loc
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4127
pm_global_variable_and_write_node::value
struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4137
pm_global_variable_and_write_node::name
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4122
pm_global_variable_operator_write_node
GlobalVariableOperatorWriteNode.
Definition ast.h:4152
pm_global_variable_operator_write_node::name
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4160
pm_global_variable_operator_write_node::binary_operator
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4180
pm_global_variable_operator_write_node::value
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4175
pm_global_variable_operator_write_node::name_loc
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4165
pm_global_variable_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4154
pm_global_variable_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4170
pm_global_variable_or_write_node
GlobalVariableOrWriteNode.
Definition ast.h:4195
pm_global_variable_or_write_node::name
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4203
pm_global_variable_or_write_node::name_loc
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4208
pm_global_variable_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4197
pm_global_variable_or_write_node::operator_loc
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4213
pm_global_variable_or_write_node::value
struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4218
pm_global_variable_read_node
GlobalVariableReadNode.
Definition ast.h:4233
pm_global_variable_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4235
pm_global_variable_read_node::name
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4247
pm_global_variable_target_node
GlobalVariableTargetNode.
Definition ast.h:4262
pm_global_variable_target_node::name
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4270
pm_global_variable_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4264
pm_global_variable_write_node
GlobalVariableWriteNode.
Definition ast.h:4285
pm_global_variable_write_node::value
struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4322
pm_global_variable_write_node::name_loc
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4309
pm_global_variable_write_node::operator_loc
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4332
pm_global_variable_write_node::name
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4299
pm_global_variable_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4287
pm_hash_node
HashNode.
Definition ast.h:4347
pm_hash_node::elements
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4373
pm_hash_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4349
pm_hash_node::closing_loc
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4383
pm_hash_node::opening_loc
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4360
pm_hash_pattern_node
HashPatternNode.
Definition ast.h:4407
pm_hash_pattern_node::elements
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4433
pm_hash_pattern_node::opening_loc
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4462
pm_hash_pattern_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4409
pm_hash_pattern_node::rest
struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4449
pm_hash_pattern_node::closing_loc
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4475
pm_hash_pattern_node::constant
struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4423
pm_if_node
IfNode.
Definition ast.h:4496
pm_if_node::predicate
struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4529
pm_if_node::end_keyword_loc
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4587
pm_if_node::if_keyword_loc
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4511
pm_if_node::statements
struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4556
pm_if_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4498
pm_if_node::subsequent
struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4575
pm_if_node::then_keyword_loc
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4542
pm_imaginary_node
ImaginaryNode.
Definition ast.h:4602
pm_imaginary_node::numeric
struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4610
pm_imaginary_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4604
pm_implicit_node
ImplicitNode.
Definition ast.h:4631
pm_implicit_node::value
struct pm_node * value
ImplicitNode::value.
Definition ast.h:4639
pm_implicit_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4633
pm_implicit_rest_node
ImplicitRestNode.
Definition ast.h:4663
pm_implicit_rest_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4665
pm_in_node
InNode.
Definition ast.h:4681
pm_in_node::statements
struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4694
pm_in_node::pattern
struct pm_node * pattern
InNode::pattern.
Definition ast.h:4689
pm_in_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4683
pm_in_node::then_loc
pm_location_t then_loc
InNode::then_loc.
Definition ast.h:4704
pm_in_node::in_loc
pm_location_t in_loc
InNode::in_loc.
Definition ast.h:4699
pm_index_and_write_node
IndexAndWriteNode.
Definition ast.h:4725
pm_index_and_write_node::arguments
struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4748
pm_index_and_write_node::receiver
struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4733
pm_index_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4727
pm_index_and_write_node::block
struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4758
pm_index_and_write_node::value
struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4768
pm_index_and_write_node::operator_loc
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4763
pm_index_and_write_node::closing_loc
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4753
pm_index_and_write_node::opening_loc
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4743
pm_index_and_write_node::call_operator_loc
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4738
pm_index_operator_write_node
IndexOperatorWriteNode.
Definition ast.h:4789
pm_index_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4791
pm_index_operator_write_node::block
struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4822
pm_index_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4832
pm_index_operator_write_node::value
struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4837
pm_index_operator_write_node::opening_loc
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4807
pm_index_operator_write_node::call_operator_loc
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4802
pm_index_operator_write_node::closing_loc
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4817
pm_index_operator_write_node::arguments
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4812
pm_index_operator_write_node::binary_operator
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4827
pm_index_operator_write_node::receiver
struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4797
pm_index_or_write_node
IndexOrWriteNode.
Definition ast.h:4858
pm_index_or_write_node::closing_loc
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4886
pm_index_or_write_node::call_operator_loc
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4871
pm_index_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4860
pm_index_or_write_node::block
struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4891
pm_index_or_write_node::operator_loc
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4896
pm_index_or_write_node::receiver
struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4866
pm_index_or_write_node::opening_loc
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4876
pm_index_or_write_node::value
struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4901
pm_index_or_write_node::arguments
struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4881
pm_index_target_node
IndexTargetNode.
Definition ast.h:4930
pm_index_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4932
pm_index_target_node::receiver
struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4938
pm_index_target_node::closing_loc
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4953
pm_index_target_node::arguments
struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4948
pm_index_target_node::opening_loc
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4943
pm_index_target_node::block
struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4958
pm_instance_variable_and_write_node
InstanceVariableAndWriteNode.
Definition ast.h:4973
pm_instance_variable_and_write_node::operator_loc
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:4991
pm_instance_variable_and_write_node::name_loc
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:4986
pm_instance_variable_and_write_node::value
struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:4996
pm_instance_variable_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4975
pm_instance_variable_and_write_node::name
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:4981
pm_instance_variable_operator_write_node
InstanceVariableOperatorWriteNode.
Definition ast.h:5011
pm_instance_variable_operator_write_node::value
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5034
pm_instance_variable_operator_write_node::binary_operator
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5039
pm_instance_variable_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5029
pm_instance_variable_operator_write_node::name
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5019
pm_instance_variable_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5013
pm_instance_variable_operator_write_node::name_loc
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5024
pm_instance_variable_or_write_node
InstanceVariableOrWriteNode.
Definition ast.h:5054
pm_instance_variable_or_write_node::operator_loc
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5072
pm_instance_variable_or_write_node::value
struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5077
pm_instance_variable_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5056
pm_instance_variable_or_write_node::name_loc
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5067
pm_instance_variable_or_write_node::name
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5062
pm_instance_variable_read_node
InstanceVariableReadNode.
Definition ast.h:5092
pm_instance_variable_read_node::name
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5106
pm_instance_variable_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5094
pm_instance_variable_target_node
InstanceVariableTargetNode.
Definition ast.h:5121
pm_instance_variable_target_node::name
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5129
pm_instance_variable_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5123
pm_instance_variable_write_node
InstanceVariableWriteNode.
Definition ast.h:5144
pm_instance_variable_write_node::operator_loc
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5191
pm_instance_variable_write_node::name
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5158
pm_instance_variable_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5146
pm_instance_variable_write_node::value
struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5181
pm_instance_variable_write_node::name_loc
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5168
pm_integer_node
IntegerNode.
Definition ast.h:5212
pm_integer_node::value
pm_integer_t value
IntegerNode::value.
Definition ast.h:5222
pm_integer_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5214
pm_integer_t
A structure represents an arbitrary-sized integer.
Definition pm_integer.h:20
pm_interpolated_match_last_line_node
InterpolatedMatchLastLineNode.
Definition ast.h:5250
pm_interpolated_match_last_line_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5252
pm_interpolated_match_last_line_node::closing_loc
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5268
pm_interpolated_match_last_line_node::parts
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5263
pm_interpolated_match_last_line_node::opening_loc
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5258
pm_interpolated_regular_expression_node
InterpolatedRegularExpressionNode.
Definition ast.h:5296
pm_interpolated_regular_expression_node::opening_loc
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5304
pm_interpolated_regular_expression_node::parts
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5309
pm_interpolated_regular_expression_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5298
pm_interpolated_regular_expression_node::closing_loc
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5314
pm_interpolated_string_node
InterpolatedStringNode.
Definition ast.h:5333
pm_interpolated_string_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5335
pm_interpolated_string_node::closing_loc
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5351
pm_interpolated_string_node::opening_loc
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5341
pm_interpolated_string_node::parts
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5346
pm_interpolated_symbol_node
InterpolatedSymbolNode.
Definition ast.h:5366
pm_interpolated_symbol_node::parts
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5379
pm_interpolated_symbol_node::closing_loc
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5384
pm_interpolated_symbol_node::opening_loc
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5374
pm_interpolated_symbol_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5368
pm_interpolated_x_string_node
InterpolatedXStringNode.
Definition ast.h:5399
pm_interpolated_x_string_node::opening_loc
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5407
pm_interpolated_x_string_node::closing_loc
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5417
pm_interpolated_x_string_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5401
pm_interpolated_x_string_node::parts
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5412
pm_it_local_variable_read_node
ItLocalVariableReadNode.
Definition ast.h:5432
pm_it_local_variable_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5434
pm_it_parameters_node
ItParametersNode.
Definition ast.h:5450
pm_it_parameters_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5452
pm_keyword_hash_node
KeywordHashNode.
Definition ast.h:5471
pm_keyword_hash_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5473
pm_keyword_hash_node::elements
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5479
pm_keyword_rest_parameter_node
KeywordRestParameterNode.
Definition ast.h:5498
pm_keyword_rest_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5500
pm_keyword_rest_parameter_node::name
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5506
pm_keyword_rest_parameter_node::operator_loc
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5516
pm_keyword_rest_parameter_node::name_loc
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5511
pm_lambda_node
LambdaNode.
Definition ast.h:5531
pm_lambda_node::closing_loc
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5554
pm_lambda_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5533
pm_lambda_node::body
struct pm_node * body
LambdaNode::body.
Definition ast.h:5564
pm_lambda_node::opening_loc
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5549
pm_lambda_node::parameters
struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5559
pm_lambda_node::operator_loc
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5544
pm_lambda_node::locals
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5539
pm_local_variable_and_write_node
LocalVariableAndWriteNode.
Definition ast.h:5579
pm_local_variable_and_write_node::name
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5602
pm_local_variable_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5581
pm_local_variable_and_write_node::depth
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5607
pm_local_variable_and_write_node::operator_loc
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5592
pm_local_variable_and_write_node::value
struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5597
pm_local_variable_and_write_node::name_loc
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5587
pm_local_variable_operator_write_node
LocalVariableOperatorWriteNode.
Definition ast.h:5622
pm_local_variable_operator_write_node::depth
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5655
pm_local_variable_operator_write_node::binary_operator
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5650
pm_local_variable_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5624
pm_local_variable_operator_write_node::value
struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5640
pm_local_variable_operator_write_node::name_loc
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5630
pm_local_variable_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5635
pm_local_variable_operator_write_node::name
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5645
pm_local_variable_or_write_node
LocalVariableOrWriteNode.
Definition ast.h:5670
pm_local_variable_or_write_node::depth
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5698
pm_local_variable_or_write_node::operator_loc
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5683
pm_local_variable_or_write_node::value
struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5688
pm_local_variable_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5672
pm_local_variable_or_write_node::name
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5693
pm_local_variable_or_write_node::name_loc
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5678
pm_local_variable_read_node
LocalVariableReadNode.
Definition ast.h:5713
pm_local_variable_read_node::depth
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5744
pm_local_variable_read_node::name
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5731
pm_local_variable_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5715
pm_local_variable_target_node
LocalVariableTargetNode.
Definition ast.h:5762
pm_local_variable_target_node::depth
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5775
pm_local_variable_target_node::name
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5770
pm_local_variable_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5764
pm_local_variable_write_node
LocalVariableWriteNode.
Definition ast.h:5790
pm_local_variable_write_node::operator_loc
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5854
pm_local_variable_write_node::name_loc
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5827
pm_local_variable_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5792
pm_local_variable_write_node::value
struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5844
pm_local_variable_write_node::depth
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5817
pm_local_variable_write_node::name
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5804
pm_location_t
This represents a range of bytes in the source string to which a node or token corresponds.
Definition ast.h:544
pm_location_t::start
const uint8_t * start
A pointer to the start location of the range in the source.
Definition ast.h:546
pm_location_t::end
const uint8_t * end
A pointer to the end location of the range in the source.
Definition ast.h:549
pm_match_last_line_node
MatchLastLineNode.
Definition ast.h:5882
pm_match_last_line_node::content_loc
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5895
pm_match_last_line_node::opening_loc
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5890
pm_match_last_line_node::closing_loc
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5900
pm_match_last_line_node::unescaped
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5905
pm_match_last_line_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5884
pm_match_predicate_node
MatchPredicateNode.
Definition ast.h:5920
pm_match_predicate_node::operator_loc
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition ast.h:5938
pm_match_predicate_node::pattern
struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5933
pm_match_predicate_node::value
struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5928
pm_match_predicate_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5922
pm_match_required_node
MatchRequiredNode.
Definition ast.h:5953
pm_match_required_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5955
pm_match_required_node::operator_loc
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6025
pm_match_required_node::value
struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5966
pm_match_required_node::pattern
struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:6015
pm_match_write_node
MatchWriteNode.
Definition ast.h:6040
pm_match_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6042
pm_match_write_node::targets
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6053
pm_match_write_node::call
struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6048
pm_missing_node
MissingNode.
Definition ast.h:6065
pm_missing_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6067
pm_module_node
ModuleNode.
Definition ast.h:6083
pm_module_node::end_keyword_loc
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6111
pm_module_node::constant_path
struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6101
pm_module_node::body
struct pm_node * body
ModuleNode::body.
Definition ast.h:6106
pm_module_node::locals
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6091
pm_module_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6085
pm_module_node::module_keyword_loc
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6096
pm_module_node::name
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6116
pm_multi_target_node
MultiTargetNode.
Definition ast.h:6136
pm_multi_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6138
pm_multi_target_node::lparen_loc
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6194
pm_multi_target_node::lefts
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6154
pm_multi_target_node::rest
struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6174
pm_multi_target_node::rparen_loc
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6204
pm_multi_target_node::rights
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6184
pm_multi_write_node
MultiWriteNode.
Definition ast.h:6219
pm_multi_write_node::rparen_loc
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6287
pm_multi_write_node::value
struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6307
pm_multi_write_node::rest
struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6257
pm_multi_write_node::rights
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6267
pm_multi_write_node::operator_loc
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6297
pm_multi_write_node::lparen_loc
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6277
pm_multi_write_node::lefts
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6237
pm_multi_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6221
pm_next_node
NextNode.
Definition ast.h:6322
pm_next_node::arguments
struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6330
pm_next_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6324
pm_next_node::keyword_loc
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6335
pm_nil_node
NilNode.
Definition ast.h:6350
pm_nil_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6352
pm_no_keywords_parameter_node
NoKeywordsParameterNode.
Definition ast.h:6369
pm_no_keywords_parameter_node::keyword_loc
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6382
pm_no_keywords_parameter_node::operator_loc
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6377
pm_no_keywords_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6371
pm_node_list
A list of nodes in the source, most often used for lists of children.
Definition ast.h:557
pm_node_list::size
size_t size
The number of nodes in the list.
Definition ast.h:559
pm_node_list::nodes
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:565
pm_node_list::capacity
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:562
pm_node
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1068
pm_node::type
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1073
pm_node::node_id
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1085
pm_node::flags
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1079
pm_node::location
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1091
pm_numbered_parameters_node
NumberedParametersNode.
Definition ast.h:6397
pm_numbered_parameters_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6399
pm_numbered_parameters_node::maximum
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6405
pm_numbered_reference_read_node
NumberedReferenceReadNode.
Definition ast.h:6420
pm_numbered_reference_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6422
pm_numbered_reference_read_node::number
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6436
pm_optional_keyword_parameter_node
OptionalKeywordParameterNode.
Definition ast.h:6455
pm_optional_keyword_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6457
pm_optional_keyword_parameter_node::name
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6463
pm_optional_keyword_parameter_node::value
struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6473
pm_optional_keyword_parameter_node::name_loc
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6468
pm_optional_parameter_node
OptionalParameterNode.
Definition ast.h:6492
pm_optional_parameter_node::name_loc
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6505
pm_optional_parameter_node::value
struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6515
pm_optional_parameter_node::name
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6500
pm_optional_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6494
pm_optional_parameter_node::operator_loc
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6510
pm_or_node
OrNode.
Definition ast.h:6530
pm_or_node::left
struct pm_node * left
OrNode::left.
Definition ast.h:6546
pm_or_node::right
struct pm_node * right
OrNode::right.
Definition ast.h:6559
pm_or_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6532
pm_or_node::operator_loc
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6569
pm_parameters_node
ParametersNode.
Definition ast.h:6585
pm_parameters_node::rest
struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6603
pm_parameters_node::requireds
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6593
pm_parameters_node::block
struct pm_block_parameter_node * block
ParametersNode::block.
Definition ast.h:6623
pm_parameters_node::optionals
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6598
pm_parameters_node::posts
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6608
pm_parameters_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6587
pm_parameters_node::keyword_rest
struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6618
pm_parameters_node::keywords
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6613
pm_parentheses_node
ParenthesesNode.
Definition ast.h:6641
pm_parentheses_node::body
struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6649
pm_parentheses_node::closing_loc
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6659
pm_parentheses_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6643
pm_parentheses_node::opening_loc
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6654
pm_pinned_expression_node
PinnedExpressionNode.
Definition ast.h:6674
pm_pinned_expression_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6676
pm_pinned_expression_node::rparen_loc
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6717
pm_pinned_expression_node::expression
struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6687
pm_pinned_expression_node::lparen_loc
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6707
pm_pinned_expression_node::operator_loc
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6697
pm_pinned_variable_node
PinnedVariableNode.
Definition ast.h:6732
pm_pinned_variable_node::variable
struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6745
pm_pinned_variable_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6734
pm_pinned_variable_node::operator_loc
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6755
pm_post_execution_node
PostExecutionNode.
Definition ast.h:6770
pm_post_execution_node::closing_loc
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6793
pm_post_execution_node::statements
struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6778
pm_post_execution_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6772
pm_post_execution_node::opening_loc
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6788
pm_post_execution_node::keyword_loc
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6783
pm_pre_execution_node
PreExecutionNode.
Definition ast.h:6808
pm_pre_execution_node::statements
struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6816
pm_pre_execution_node::closing_loc
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6831
pm_pre_execution_node::opening_loc
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6826
pm_pre_execution_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6810
pm_pre_execution_node::keyword_loc
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6821
pm_program_node
ProgramNode.
Definition ast.h:6843
pm_program_node::statements
struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6856
pm_program_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6845
pm_program_node::locals
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6851
pm_range_node
RangeNode.
Definition ast.h:6877
pm_range_node::right
struct pm_node * right
RangeNode::right.
Definition ast.h:6907
pm_range_node::operator_loc
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6914
pm_range_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6879
pm_range_node::left
struct pm_node * left
RangeNode::left.
Definition ast.h:6893
pm_rational_node
RationalNode.
Definition ast.h:6935
pm_rational_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6937
pm_rational_node::denominator
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6956
pm_rational_node::numerator
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6947
pm_redo_node
RedoNode.
Definition ast.h:6971
pm_redo_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6973
pm_regular_expression_node
RegularExpressionNode.
Definition ast.h:7002
pm_regular_expression_node::closing_loc
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:7020
pm_regular_expression_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7004
pm_regular_expression_node::unescaped
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:7025
pm_regular_expression_node::opening_loc
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:7010
pm_regular_expression_node::content_loc
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:7015
pm_required_keyword_parameter_node
RequiredKeywordParameterNode.
Definition ast.h:7044
pm_required_keyword_parameter_node::name_loc
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7057
pm_required_keyword_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7046
pm_required_keyword_parameter_node::name
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7052
pm_required_parameter_node
RequiredParameterNode.
Definition ast.h:7076
pm_required_parameter_node::name
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7084
pm_required_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7078
pm_rescue_modifier_node
RescueModifierNode.
Definition ast.h:7099
pm_rescue_modifier_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7101
pm_rescue_modifier_node::rescue_expression
struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7117
pm_rescue_modifier_node::keyword_loc
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7112
pm_rescue_modifier_node::expression
struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7107
pm_rescue_node
RescueNode.
Definition ast.h:7137
pm_rescue_node::keyword_loc
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7145
pm_rescue_node::subsequent
struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7175
pm_rescue_node::then_keyword_loc
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7165
pm_rescue_node::operator_loc
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7155
pm_rescue_node::reference
struct pm_node * reference
RescueNode::reference.
Definition ast.h:7160
pm_rescue_node::exceptions
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7150
pm_rescue_node::statements
struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7170
pm_rescue_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7139
pm_rest_parameter_node
RestParameterNode.
Definition ast.h:7194
pm_rest_parameter_node::name
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7202
pm_rest_parameter_node::name_loc
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7207
pm_rest_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7196
pm_rest_parameter_node::operator_loc
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7212
pm_retry_node
RetryNode.
Definition ast.h:7227
pm_retry_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7229
pm_return_node
ReturnNode.
Definition ast.h:7245
pm_return_node::keyword_loc
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7253
pm_return_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7247
pm_return_node::arguments
struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7258
pm_self_node
SelfNode.
Definition ast.h:7273
pm_self_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7275
pm_shareable_constant_node
ShareableConstantNode.
Definition ast.h:7297
pm_shareable_constant_node::write
struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7307
pm_shareable_constant_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7299
pm_singleton_class_node
SingletonClassNode.
Definition ast.h:7322
pm_singleton_class_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7324
pm_singleton_class_node::locals
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7330
pm_singleton_class_node::operator_loc
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7340
pm_singleton_class_node::expression
struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7345
pm_singleton_class_node::end_keyword_loc
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7355
pm_singleton_class_node::class_keyword_loc
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7335
pm_singleton_class_node::body
struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7350
pm_source_encoding_node
SourceEncodingNode.
Definition ast.h:7370
pm_source_encoding_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7372
pm_source_file_node
SourceFileNode.
Definition ast.h:7394
pm_source_file_node::filepath
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7404
pm_source_file_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7396
pm_source_line_node
SourceLineNode.
Definition ast.h:7419
pm_source_line_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7421
pm_splat_node
SplatNode.
Definition ast.h:7437
pm_splat_node::expression
struct pm_node * expression
SplatNode::expression.
Definition ast.h:7450
pm_splat_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7439
pm_splat_node::operator_loc
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7445
pm_statements_node
StatementsNode.
Definition ast.h:7465
pm_statements_node::body
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7473
pm_statements_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7467
pm_string_node
StringNode.
Definition ast.h:7500
pm_string_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7502
pm_string_node::unescaped
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7523
pm_string_node::content_loc
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7513
pm_string_node::closing_loc
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7518
pm_string_node::opening_loc
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7508
pm_string_t
A generic string type that can have various ownership semantics.
Definition pm_string.h:33
pm_super_node
SuperNode.
Definition ast.h:7541
pm_super_node::arguments
struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7559
pm_super_node::lparen_loc
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7554
pm_super_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7543
pm_super_node::keyword_loc
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7549
pm_super_node::rparen_loc
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7564
pm_super_node::block
struct pm_node * block
SuperNode::block.
Definition ast.h:7569
pm_symbol_node
SymbolNode.
Definition ast.h:7592
pm_symbol_node::opening_loc
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7600
pm_symbol_node::value_loc
pm_location_t value_loc
SymbolNode::value_loc.
Definition ast.h:7605
pm_symbol_node::closing_loc
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7610
pm_symbol_node::unescaped
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7615
pm_symbol_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7594
pm_token_t
This struct represents a token in the Ruby source.
Definition ast.h:529
pm_token_t::end
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:537
pm_token_t::start
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:534
pm_token_t::type
pm_token_type_t type
The type of the token.
Definition ast.h:531
pm_true_node
TrueNode.
Definition ast.h:7630
pm_true_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7632
pm_undef_node
UndefNode.
Definition ast.h:7648
pm_undef_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7650
pm_undef_node::keyword_loc
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7661
pm_undef_node::names
struct pm_node_list names
UndefNode::names.
Definition ast.h:7656
pm_unless_node
UnlessNode.
Definition ast.h:7679
pm_unless_node::keyword_loc
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition ast.h:7695
pm_unless_node::then_keyword_loc
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7718
pm_unless_node::end_keyword_loc
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7749
pm_unless_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7681
pm_unless_node::statements
struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7729
pm_unless_node::predicate
struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7708
pm_unless_node::else_clause
struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7739
pm_until_node
UntilNode.
Definition ast.h:7770
pm_until_node::statements
struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7798
pm_until_node::closing_loc
pm_location_t closing_loc
UntilNode::closing_loc.
Definition ast.h:7788
pm_until_node::predicate
struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7793
pm_until_node::keyword_loc
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition ast.h:7778
pm_until_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7772
pm_until_node::do_keyword_loc
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7783
pm_when_node
WhenNode.
Definition ast.h:7815
pm_when_node::statements
struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7838
pm_when_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7817
pm_when_node::then_keyword_loc
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7833
pm_when_node::keyword_loc
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition ast.h:7823
pm_when_node::conditions
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7828
pm_while_node
WhileNode.
Definition ast.h:7859
pm_while_node::closing_loc
pm_location_t closing_loc
WhileNode::closing_loc.
Definition ast.h:7877
pm_while_node::keyword_loc
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition ast.h:7867
pm_while_node::statements
struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7887
pm_while_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7861
pm_while_node::do_keyword_loc
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7872
pm_while_node::predicate
struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7882
pm_x_string_node
XStringNode.
Definition ast.h:7906
pm_x_string_node::closing_loc
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7924
pm_x_string_node::opening_loc
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7914
pm_x_string_node::content_loc
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7919
pm_x_string_node::unescaped
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7929
pm_x_string_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7908
pm_yield_node
YieldNode.
Definition ast.h:7944
pm_yield_node::keyword_loc
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7952
pm_yield_node::lparen_loc
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7957
pm_yield_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7946
pm_yield_node::rparen_loc
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7967
pm_yield_node::arguments
struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7962