Ruby: prism/ast.h Source File

Ruby 4.0.6p0 (2026-07-14 revision 03b6d3f8898a28604fe6cb00eae3226b821168f4)

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_PIPE,
76
78 PM_TOKEN_SEMICOLON,
79
81 PM_TOKEN_AMPERSAND,
82
84 PM_TOKEN_AMPERSAND_AMPERSAND,
85
87 PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL,
88
90 PM_TOKEN_AMPERSAND_DOT,
91
93 PM_TOKEN_AMPERSAND_EQUAL,
94
96 PM_TOKEN_BACKTICK,
97
99 PM_TOKEN_BACK_REFERENCE,
100
102 PM_TOKEN_BANG,
103
105 PM_TOKEN_BANG_EQUAL,
106
108 PM_TOKEN_BANG_TILDE,
109
111 PM_TOKEN_BRACE_LEFT,
112
114 PM_TOKEN_BRACKET_LEFT,
115
117 PM_TOKEN_BRACKET_LEFT_ARRAY,
118
120 PM_TOKEN_BRACKET_LEFT_RIGHT,
121
123 PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL,
124
126 PM_TOKEN_BRACKET_RIGHT,
127
129 PM_TOKEN_CARET,
130
132 PM_TOKEN_CARET_EQUAL,
133
135 PM_TOKEN_CHARACTER_LITERAL,
136
138 PM_TOKEN_CLASS_VARIABLE,
139
141 PM_TOKEN_COLON,
142
144 PM_TOKEN_COLON_COLON,
145
147 PM_TOKEN_COMMENT,
148
150 PM_TOKEN_CONSTANT,
151
153 PM_TOKEN_DOT,
154
156 PM_TOKEN_DOT_DOT,
157
159 PM_TOKEN_DOT_DOT_DOT,
160
162 PM_TOKEN_EMBDOC_BEGIN,
163
165 PM_TOKEN_EMBDOC_END,
166
168 PM_TOKEN_EMBDOC_LINE,
169
171 PM_TOKEN_EMBEXPR_BEGIN,
172
174 PM_TOKEN_EMBVAR,
175
177 PM_TOKEN_EQUAL,
178
180 PM_TOKEN_EQUAL_EQUAL,
181
183 PM_TOKEN_EQUAL_EQUAL_EQUAL,
184
186 PM_TOKEN_EQUAL_GREATER,
187
189 PM_TOKEN_EQUAL_TILDE,
190
192 PM_TOKEN_FLOAT,
193
195 PM_TOKEN_FLOAT_IMAGINARY,
196
198 PM_TOKEN_FLOAT_RATIONAL,
199
201 PM_TOKEN_FLOAT_RATIONAL_IMAGINARY,
202
204 PM_TOKEN_GLOBAL_VARIABLE,
205
207 PM_TOKEN_GREATER,
208
210 PM_TOKEN_GREATER_EQUAL,
211
213 PM_TOKEN_GREATER_GREATER,
214
216 PM_TOKEN_GREATER_GREATER_EQUAL,
217
219 PM_TOKEN_HEREDOC_END,
220
222 PM_TOKEN_HEREDOC_START,
223
225 PM_TOKEN_IDENTIFIER,
226
228 PM_TOKEN_IGNORED_NEWLINE,
229
231 PM_TOKEN_INSTANCE_VARIABLE,
232
234 PM_TOKEN_INTEGER,
235
237 PM_TOKEN_INTEGER_IMAGINARY,
238
240 PM_TOKEN_INTEGER_RATIONAL,
241
243 PM_TOKEN_INTEGER_RATIONAL_IMAGINARY,
244
246 PM_TOKEN_KEYWORD_ALIAS,
247
249 PM_TOKEN_KEYWORD_AND,
250
252 PM_TOKEN_KEYWORD_BEGIN,
253
255 PM_TOKEN_KEYWORD_BEGIN_UPCASE,
256
258 PM_TOKEN_KEYWORD_BREAK,
259
261 PM_TOKEN_KEYWORD_CASE,
262
264 PM_TOKEN_KEYWORD_CLASS,
265
267 PM_TOKEN_KEYWORD_DEF,
268
270 PM_TOKEN_KEYWORD_DEFINED,
271
273 PM_TOKEN_KEYWORD_DO_LOOP,
274
276 PM_TOKEN_KEYWORD_END_UPCASE,
277
279 PM_TOKEN_KEYWORD_FALSE,
280
282 PM_TOKEN_KEYWORD_FOR,
283
285 PM_TOKEN_KEYWORD_IF,
286
288 PM_TOKEN_KEYWORD_IF_MODIFIER,
289
291 PM_TOKEN_KEYWORD_MODULE,
292
294 PM_TOKEN_KEYWORD_NEXT,
295
297 PM_TOKEN_KEYWORD_NIL,
298
300 PM_TOKEN_KEYWORD_NOT,
301
303 PM_TOKEN_KEYWORD_OR,
304
306 PM_TOKEN_KEYWORD_REDO,
307
309 PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
310
312 PM_TOKEN_KEYWORD_RETRY,
313
315 PM_TOKEN_KEYWORD_RETURN,
316
318 PM_TOKEN_KEYWORD_SELF,
319
321 PM_TOKEN_KEYWORD_SUPER,
322
324 PM_TOKEN_KEYWORD_TRUE,
325
327 PM_TOKEN_KEYWORD_UNDEF,
328
330 PM_TOKEN_KEYWORD_UNLESS,
331
333 PM_TOKEN_KEYWORD_UNLESS_MODIFIER,
334
336 PM_TOKEN_KEYWORD_UNTIL,
337
339 PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
340
342 PM_TOKEN_KEYWORD_WHILE,
343
345 PM_TOKEN_KEYWORD_WHILE_MODIFIER,
346
348 PM_TOKEN_KEYWORD_YIELD,
349
351 PM_TOKEN_KEYWORD___ENCODING__,
352
354 PM_TOKEN_KEYWORD___FILE__,
355
357 PM_TOKEN_KEYWORD___LINE__,
358
360 PM_TOKEN_LABEL,
361
363 PM_TOKEN_LABEL_END,
364
366 PM_TOKEN_LAMBDA_BEGIN,
367
369 PM_TOKEN_LESS,
370
372 PM_TOKEN_LESS_EQUAL,
373
375 PM_TOKEN_LESS_EQUAL_GREATER,
376
378 PM_TOKEN_LESS_LESS,
379
381 PM_TOKEN_LESS_LESS_EQUAL,
382
384 PM_TOKEN_METHOD_NAME,
385
387 PM_TOKEN_MINUS,
388
390 PM_TOKEN_MINUS_EQUAL,
391
393 PM_TOKEN_MINUS_GREATER,
394
396 PM_TOKEN_NUMBERED_REFERENCE,
397
399 PM_TOKEN_PARENTHESIS_LEFT,
400
402 PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
403
405 PM_TOKEN_PERCENT,
406
408 PM_TOKEN_PERCENT_EQUAL,
409
411 PM_TOKEN_PERCENT_LOWER_I,
412
414 PM_TOKEN_PERCENT_LOWER_W,
415
417 PM_TOKEN_PERCENT_LOWER_X,
418
420 PM_TOKEN_PERCENT_UPPER_I,
421
423 PM_TOKEN_PERCENT_UPPER_W,
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 typedef struct pm_node {
1057 pm_node_type_t type;
1058
1063 pm_node_flags_t flags;
1064
1069 uint32_t node_id;
1070
1075 pm_location_t location;
1076} pm_node_t;
1077
1081#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1082
1087#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1088
1092#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1093
1097#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1098
1102#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1103
1116 typedef struct pm_alias_global_variable_node {
1118 pm_node_t base;
1119
1120
1129 struct pm_node *new_name;
1130
1139 struct pm_node *old_name;
1140
1149 pm_location_t keyword_loc;
1150} pm_alias_global_variable_node_t;
1151
1164 typedef struct pm_alias_method_node {
1166 pm_node_t base;
1167
1168
1183 struct pm_node *new_name;
1184
1199 struct pm_node *old_name;
1200
1209 pm_location_t keyword_loc;
1210} pm_alias_method_node_t;
1211
1224 typedef struct pm_alternation_pattern_node {
1226 pm_node_t base;
1227
1228
1237 struct pm_node *left;
1238
1247 struct pm_node *right;
1248
1257 pm_location_t operator_loc;
1258} pm_alternation_pattern_node_t;
1259
1272 typedef struct pm_and_node {
1274 pm_node_t base;
1275
1276
1288 struct pm_node *left;
1289
1301 struct pm_node *right;
1302
1311 pm_location_t operator_loc;
1312} pm_and_node_t;
1313
1333 typedef struct pm_arguments_node {
1335 pm_node_t base;
1336
1337
1346 struct pm_node_list arguments;
1347} pm_arguments_node_t;
1348
1364 typedef struct pm_array_node {
1366 pm_node_t base;
1367
1368
1374 struct pm_node_list elements;
1375
1386 pm_location_t opening_loc;
1387
1398 pm_location_t closing_loc;
1399} pm_array_node_t;
1400
1425 typedef struct pm_array_pattern_node {
1427 pm_node_t base;
1428
1429
1444 struct pm_node *constant;
1445
1454 struct pm_node_list requireds;
1455
1464 struct pm_node *rest;
1465
1474 struct pm_node_list posts;
1475
1484 pm_location_t opening_loc;
1485
1494 pm_location_t closing_loc;
1495} pm_array_pattern_node_t;
1496
1509 typedef struct pm_assoc_node {
1511 pm_node_t base;
1512
1513
1528 struct pm_node *key;
1529
1541 struct pm_node *value;
1542
1551 pm_location_t operator_loc;
1552} pm_assoc_node_t;
1553
1566 typedef struct pm_assoc_splat_node {
1568 pm_node_t base;
1569
1570
1579 struct pm_node *value;
1580
1589 pm_location_t operator_loc;
1590} pm_assoc_splat_node_t;
1591
1604 typedef struct pm_back_reference_read_node {
1606 pm_node_t base;
1607
1608
1618 pm_constant_id_t name;
1619} pm_back_reference_read_node_t;
1620
1635 typedef struct pm_begin_node {
1637 pm_node_t base;
1638
1639
1648 pm_location_t begin_keyword_loc;
1649
1658 struct pm_statements_node *statements;
1659
1668 struct pm_rescue_node *rescue_clause;
1669
1678 struct pm_else_node *else_clause;
1679
1688 struct pm_ensure_node *ensure_clause;
1689
1698 pm_location_t end_keyword_loc;
1699} pm_begin_node_t;
1700
1713 typedef struct pm_block_argument_node {
1715 pm_node_t base;
1716
1717
1726 struct pm_node *expression;
1727
1736 pm_location_t operator_loc;
1737} pm_block_argument_node_t;
1738
1754 typedef struct pm_block_local_variable_node {
1756 pm_node_t base;
1757
1758
1767 pm_constant_id_t name;
1768} pm_block_local_variable_node_t;
1769
1782 typedef struct pm_block_node {
1784 pm_node_t base;
1785
1786
1795 pm_constant_id_list_t locals;
1796
1809 struct pm_node *parameters;
1810
1819 struct pm_node *body;
1820
1829 pm_location_t opening_loc;
1830
1839 pm_location_t closing_loc;
1840} pm_block_node_t;
1841
1858 typedef struct pm_block_parameter_node {
1860 pm_node_t base;
1861
1862
1872 pm_constant_id_t name;
1873
1882 pm_location_t name_loc;
1883
1893 pm_location_t operator_loc;
1894} pm_block_parameter_node_t;
1895
1912 typedef struct pm_block_parameters_node {
1914 pm_node_t base;
1915
1916
1929 struct pm_parameters_node *parameters;
1930
1943 struct pm_node_list locals;
1944
1957 pm_location_t opening_loc;
1958
1971 pm_location_t closing_loc;
1972} pm_block_parameters_node_t;
1973
1986 typedef struct pm_break_node {
1988 pm_node_t base;
1989
1990
1999 struct pm_arguments_node *arguments;
2000
2009 pm_location_t keyword_loc;
2010} pm_break_node_t;
2011
2030 typedef struct pm_call_and_write_node {
2032 pm_node_t base;
2033
2034
2043 struct pm_node *receiver;
2044
2053 pm_location_t call_operator_loc;
2054
2063 pm_location_t message_loc;
2064
2073 pm_constant_id_t read_name;
2074
2083 pm_constant_id_t write_name;
2084
2093 pm_location_t operator_loc;
2094
2103 struct pm_node *value;
2104} pm_call_and_write_node_t;
2105
2139 typedef struct pm_call_node {
2141 pm_node_t base;
2142
2143
2158 struct pm_node *receiver;
2159
2171 pm_location_t call_operator_loc;
2172
2181 pm_constant_id_t name;
2182
2191 pm_location_t message_loc;
2192
2200 pm_location_t opening_loc;
2201
2210 struct pm_arguments_node *arguments;
2211
2220 pm_location_t closing_loc;
2221
2233 pm_location_t equal_loc;
2234
2243 struct pm_node *block;
2244} pm_call_node_t;
2245
2264 typedef struct pm_call_operator_write_node {
2266 pm_node_t base;
2267
2268
2277 struct pm_node *receiver;
2278
2287 pm_location_t call_operator_loc;
2288
2297 pm_location_t message_loc;
2298
2307 pm_constant_id_t read_name;
2308
2317 pm_constant_id_t write_name;
2318
2327 pm_constant_id_t binary_operator;
2328
2337 pm_location_t binary_operator_loc;
2338
2347 struct pm_node *value;
2348} pm_call_operator_write_node_t;
2349
2368 typedef struct pm_call_or_write_node {
2370 pm_node_t base;
2371
2372
2381 struct pm_node *receiver;
2382
2391 pm_location_t call_operator_loc;
2392
2401 pm_location_t message_loc;
2402
2411 pm_constant_id_t read_name;
2412
2421 pm_constant_id_t write_name;
2422
2431 pm_location_t operator_loc;
2432
2441 struct pm_node *value;
2442} pm_call_or_write_node_t;
2443
2470 typedef struct pm_call_target_node {
2472 pm_node_t base;
2473
2474
2483 struct pm_node *receiver;
2484
2493 pm_location_t call_operator_loc;
2494
2503 pm_constant_id_t name;
2504
2513 pm_location_t message_loc;
2514} pm_call_target_node_t;
2515
2528 typedef struct pm_capture_pattern_node {
2530 pm_node_t base;
2531
2532
2541 struct pm_node *value;
2542
2551 struct pm_local_variable_target_node *target;
2552
2561 pm_location_t operator_loc;
2562} pm_capture_pattern_node_t;
2563
2578 typedef struct pm_case_match_node {
2580 pm_node_t base;
2581
2582
2591 struct pm_node *predicate;
2592
2601 struct pm_node_list conditions;
2602
2611 struct pm_else_node *else_clause;
2612
2621 pm_location_t case_keyword_loc;
2622
2631 pm_location_t end_keyword_loc;
2632} pm_case_match_node_t;
2633
2648 typedef struct pm_case_node {
2650 pm_node_t base;
2651
2652
2661 struct pm_node *predicate;
2662
2671 struct pm_node_list conditions;
2672
2681 struct pm_else_node *else_clause;
2682
2691 pm_location_t case_keyword_loc;
2692
2701 pm_location_t end_keyword_loc;
2702} pm_case_node_t;
2703
2716 typedef struct pm_class_node {
2718 pm_node_t base;
2719
2720
2724 pm_constant_id_list_t locals;
2725
2734 pm_location_t class_keyword_loc;
2735
2739 struct pm_node *constant_path;
2740
2749 pm_location_t inheritance_operator_loc;
2750
2759 struct pm_node *superclass;
2760
2770 struct pm_node *body;
2771
2780 pm_location_t end_keyword_loc;
2781
2789 pm_constant_id_t name;
2790} pm_class_node_t;
2791
2804 typedef struct pm_class_variable_and_write_node {
2806 pm_node_t base;
2807
2808
2817 pm_constant_id_t name;
2818
2827 pm_location_t name_loc;
2828
2837 pm_location_t operator_loc;
2838
2847 struct pm_node *value;
2848} pm_class_variable_and_write_node_t;
2849
2862 typedef struct pm_class_variable_operator_write_node {
2864 pm_node_t base;
2865
2866
2870 pm_constant_id_t name;
2871
2875 pm_location_t name_loc;
2876
2880 pm_location_t binary_operator_loc;
2881
2885 struct pm_node *value;
2886
2890 pm_constant_id_t binary_operator;
2891} pm_class_variable_operator_write_node_t;
2892
2905 typedef struct pm_class_variable_or_write_node {
2907 pm_node_t base;
2908
2909
2913 pm_constant_id_t name;
2914
2918 pm_location_t name_loc;
2919
2923 pm_location_t operator_loc;
2924
2928 struct pm_node *value;
2929} pm_class_variable_or_write_node_t;
2930
2943 typedef struct pm_class_variable_read_node {
2945 pm_node_t base;
2946
2947
2957 pm_constant_id_t name;
2958} pm_class_variable_read_node_t;
2959
2972 typedef struct pm_class_variable_target_node {
2974 pm_node_t base;
2975
2976
2980 pm_constant_id_t name;
2981} pm_class_variable_target_node_t;
2982
2995 typedef struct pm_class_variable_write_node {
2997 pm_node_t base;
2998
2999
3009 pm_constant_id_t name;
3010
3019 pm_location_t name_loc;
3020
3032 struct pm_node *value;
3033
3042 pm_location_t operator_loc;
3043} pm_class_variable_write_node_t;
3044
3057 typedef struct pm_constant_and_write_node {
3059 pm_node_t base;
3060
3061
3065 pm_constant_id_t name;
3066
3070 pm_location_t name_loc;
3071
3075 pm_location_t operator_loc;
3076
3080 struct pm_node *value;
3081} pm_constant_and_write_node_t;
3082
3095 typedef struct pm_constant_operator_write_node {
3097 pm_node_t base;
3098
3099
3103 pm_constant_id_t name;
3104
3108 pm_location_t name_loc;
3109
3113 pm_location_t binary_operator_loc;
3114
3118 struct pm_node *value;
3119
3123 pm_constant_id_t binary_operator;
3124} pm_constant_operator_write_node_t;
3125
3138 typedef struct pm_constant_or_write_node {
3140 pm_node_t base;
3141
3142
3146 pm_constant_id_t name;
3147
3151 pm_location_t name_loc;
3152
3156 pm_location_t operator_loc;
3157
3161 struct pm_node *value;
3162} pm_constant_or_write_node_t;
3163
3176 typedef struct pm_constant_path_and_write_node {
3178 pm_node_t base;
3179
3180
3184 struct pm_constant_path_node *target;
3185
3189 pm_location_t operator_loc;
3190
3194 struct pm_node *value;
3195} pm_constant_path_and_write_node_t;
3196
3209 typedef struct pm_constant_path_node {
3211 pm_node_t base;
3212
3213
3228 struct pm_node *parent;
3229
3235 pm_constant_id_t name;
3236
3248 pm_location_t delimiter_loc;
3249
3261 pm_location_t name_loc;
3262} pm_constant_path_node_t;
3263
3276 typedef struct pm_constant_path_operator_write_node {
3278 pm_node_t base;
3279
3280
3284 struct pm_constant_path_node *target;
3285
3289 pm_location_t binary_operator_loc;
3290
3294 struct pm_node *value;
3295
3299 pm_constant_id_t binary_operator;
3300} pm_constant_path_operator_write_node_t;
3301
3314 typedef struct pm_constant_path_or_write_node {
3316 pm_node_t base;
3317
3318
3322 struct pm_constant_path_node *target;
3323
3327 pm_location_t operator_loc;
3328
3332 struct pm_node *value;
3333} pm_constant_path_or_write_node_t;
3334
3347 typedef struct pm_constant_path_target_node {
3349 pm_node_t base;
3350
3351
3355 struct pm_node *parent;
3356
3360 pm_constant_id_t name;
3361
3365 pm_location_t delimiter_loc;
3366
3370 pm_location_t name_loc;
3371} pm_constant_path_target_node_t;
3372
3391 typedef struct pm_constant_path_write_node {
3393 pm_node_t base;
3394
3395
3407 struct pm_constant_path_node *target;
3408
3417 pm_location_t operator_loc;
3418
3427 struct pm_node *value;
3428} pm_constant_path_write_node_t;
3429
3442 typedef struct pm_constant_read_node {
3444 pm_node_t base;
3445
3446
3456 pm_constant_id_t name;
3457} pm_constant_read_node_t;
3458
3471 typedef struct pm_constant_target_node {
3473 pm_node_t base;
3474
3475
3479 pm_constant_id_t name;
3480} pm_constant_target_node_t;
3481
3494 typedef struct pm_constant_write_node {
3496 pm_node_t base;
3497
3498
3508 pm_constant_id_t name;
3509
3518 pm_location_t name_loc;
3519
3531 struct pm_node *value;
3532
3541 pm_location_t operator_loc;
3542} pm_constant_write_node_t;
3543
3557 typedef struct pm_def_node {
3559 pm_node_t base;
3560
3561
3565 pm_constant_id_t name;
3566
3570 pm_location_t name_loc;
3571
3575 struct pm_node *receiver;
3576
3580 struct pm_parameters_node *parameters;
3581
3585 struct pm_node *body;
3586
3590 pm_constant_id_list_t locals;
3591
3595 pm_location_t def_keyword_loc;
3596
3600 pm_location_t operator_loc;
3601
3605 pm_location_t lparen_loc;
3606
3610 pm_location_t rparen_loc;
3611
3615 pm_location_t equal_loc;
3616
3620 pm_location_t end_keyword_loc;
3621} pm_def_node_t;
3622
3635 typedef struct pm_defined_node {
3637 pm_node_t base;
3638
3639
3643 pm_location_t lparen_loc;
3644
3648 struct pm_node *value;
3649
3653 pm_location_t rparen_loc;
3654
3658 pm_location_t keyword_loc;
3659} pm_defined_node_t;
3660
3673 typedef struct pm_else_node {
3675 pm_node_t base;
3676
3677
3681 pm_location_t else_keyword_loc;
3682
3686 struct pm_statements_node *statements;
3687
3691 pm_location_t end_keyword_loc;
3692} pm_else_node_t;
3693
3706 typedef struct pm_embedded_statements_node {
3708 pm_node_t base;
3709
3710
3714 pm_location_t opening_loc;
3715
3719 struct pm_statements_node *statements;
3720
3724 pm_location_t closing_loc;
3725} pm_embedded_statements_node_t;
3726
3739 typedef struct pm_embedded_variable_node {
3741 pm_node_t base;
3742
3743
3747 pm_location_t operator_loc;
3748
3752 struct pm_node *variable;
3753} pm_embedded_variable_node_t;
3754
3771 typedef struct pm_ensure_node {
3773 pm_node_t base;
3774
3775
3779 pm_location_t ensure_keyword_loc;
3780
3784 struct pm_statements_node *statements;
3785
3789 pm_location_t end_keyword_loc;
3790} pm_ensure_node_t;
3791
3804 typedef struct pm_false_node {
3806 pm_node_t base;
3807
3808} pm_false_node_t;
3809
3831 typedef struct pm_find_pattern_node {
3833 pm_node_t base;
3834
3835
3844 struct pm_node *constant;
3845
3857 struct pm_splat_node *left;
3858
3870 struct pm_node_list requireds;
3871
3883 struct pm_node *right;
3884
3896 pm_location_t opening_loc;
3897
3909 pm_location_t closing_loc;
3910} pm_find_pattern_node_t;
3911
3927 typedef struct pm_flip_flop_node {
3929 pm_node_t base;
3930
3931
3935 struct pm_node *left;
3936
3940 struct pm_node *right;
3941
3945 pm_location_t operator_loc;
3946} pm_flip_flop_node_t;
3947
3960 typedef struct pm_float_node {
3962 pm_node_t base;
3963
3964
3970 double value;
3971} pm_float_node_t;
3972
3985 typedef struct pm_for_node {
3987 pm_node_t base;
3988
3989
3998 struct pm_node *index;
3999
4008 struct pm_node *collection;
4009
4020 struct pm_statements_node *statements;
4021
4030 pm_location_t for_keyword_loc;
4031
4040 pm_location_t in_keyword_loc;
4041
4050 pm_location_t do_keyword_loc;
4051
4060 pm_location_t end_keyword_loc;
4061} pm_for_node_t;
4062
4077 typedef struct pm_forwarding_arguments_node {
4079 pm_node_t base;
4080
4081} pm_forwarding_arguments_node_t;
4082
4096 typedef struct pm_forwarding_parameter_node {
4098 pm_node_t base;
4099
4100} pm_forwarding_parameter_node_t;
4101
4119 typedef struct pm_forwarding_super_node {
4121 pm_node_t base;
4122
4123
4129 struct pm_block_node *block;
4130} pm_forwarding_super_node_t;
4131
4144 typedef struct pm_global_variable_and_write_node {
4146 pm_node_t base;
4147
4148
4152 pm_constant_id_t name;
4153
4157 pm_location_t name_loc;
4158
4162 pm_location_t operator_loc;
4163
4167 struct pm_node *value;
4168} pm_global_variable_and_write_node_t;
4169
4182 typedef struct pm_global_variable_operator_write_node {
4184 pm_node_t base;
4185
4186
4190 pm_constant_id_t name;
4191
4195 pm_location_t name_loc;
4196
4200 pm_location_t binary_operator_loc;
4201
4205 struct pm_node *value;
4206
4210 pm_constant_id_t binary_operator;
4211} pm_global_variable_operator_write_node_t;
4212
4225 typedef struct pm_global_variable_or_write_node {
4227 pm_node_t base;
4228
4229
4233 pm_constant_id_t name;
4234
4238 pm_location_t name_loc;
4239
4243 pm_location_t operator_loc;
4244
4248 struct pm_node *value;
4249} pm_global_variable_or_write_node_t;
4250
4263 typedef struct pm_global_variable_read_node {
4265 pm_node_t base;
4266
4267
4277 pm_constant_id_t name;
4278} pm_global_variable_read_node_t;
4279
4292 typedef struct pm_global_variable_target_node {
4294 pm_node_t base;
4295
4296
4300 pm_constant_id_t name;
4301} pm_global_variable_target_node_t;
4302
4315 typedef struct pm_global_variable_write_node {
4317 pm_node_t base;
4318
4319
4329 pm_constant_id_t name;
4330
4339 pm_location_t name_loc;
4340
4352 struct pm_node *value;
4353
4362 pm_location_t operator_loc;
4363} pm_global_variable_write_node_t;
4364
4377 typedef struct pm_hash_node {
4379 pm_node_t base;
4380
4381
4390 pm_location_t opening_loc;
4391
4403 struct pm_node_list elements;
4404
4413 pm_location_t closing_loc;
4414} pm_hash_node_t;
4415
4437 typedef struct pm_hash_pattern_node {
4439 pm_node_t base;
4440
4441
4453 struct pm_node *constant;
4454
4463 struct pm_node_list elements;
4464
4479 struct pm_node *rest;
4480
4492 pm_location_t opening_loc;
4493
4505 pm_location_t closing_loc;
4506} pm_hash_pattern_node_t;
4507
4526 typedef struct pm_if_node {
4528 pm_node_t base;
4529
4530
4541 pm_location_t if_keyword_loc;
4542
4559 struct pm_node *predicate;
4560
4572 pm_location_t then_keyword_loc;
4573
4586 struct pm_statements_node *statements;
4587
4605 struct pm_node *subsequent;
4606
4617 pm_location_t end_keyword_loc;
4618} pm_if_node_t;
4619
4632 typedef struct pm_imaginary_node {
4634 pm_node_t base;
4635
4636
4640 struct pm_node *numeric;
4641} pm_imaginary_node_t;
4642
4661 typedef struct pm_implicit_node {
4663 pm_node_t base;
4664
4665
4669 struct pm_node *value;
4670} pm_implicit_node_t;
4671
4693 typedef struct pm_implicit_rest_node {
4695 pm_node_t base;
4696
4697} pm_implicit_rest_node_t;
4698
4711 typedef struct pm_in_node {
4713 pm_node_t base;
4714
4715
4719 struct pm_node *pattern;
4720
4724 struct pm_statements_node *statements;
4725
4729 pm_location_t in_loc;
4730
4734 pm_location_t then_loc;
4735} pm_in_node_t;
4736
4755 typedef struct pm_index_and_write_node {
4757 pm_node_t base;
4758
4759
4763 struct pm_node *receiver;
4764
4768 pm_location_t call_operator_loc;
4769
4773 pm_location_t opening_loc;
4774
4778 struct pm_arguments_node *arguments;
4779
4783 pm_location_t closing_loc;
4784
4788 struct pm_block_argument_node *block;
4789
4793 pm_location_t operator_loc;
4794
4798 struct pm_node *value;
4799} pm_index_and_write_node_t;
4800
4819 typedef struct pm_index_operator_write_node {
4821 pm_node_t base;
4822
4823
4827 struct pm_node *receiver;
4828
4832 pm_location_t call_operator_loc;
4833
4837 pm_location_t opening_loc;
4838
4842 struct pm_arguments_node *arguments;
4843
4847 pm_location_t closing_loc;
4848
4852 struct pm_block_argument_node *block;
4853
4857 pm_constant_id_t binary_operator;
4858
4862 pm_location_t binary_operator_loc;
4863
4867 struct pm_node *value;
4868} pm_index_operator_write_node_t;
4869
4888 typedef struct pm_index_or_write_node {
4890 pm_node_t base;
4891
4892
4896 struct pm_node *receiver;
4897
4901 pm_location_t call_operator_loc;
4902
4906 pm_location_t opening_loc;
4907
4911 struct pm_arguments_node *arguments;
4912
4916 pm_location_t closing_loc;
4917
4921 struct pm_block_argument_node *block;
4922
4926 pm_location_t operator_loc;
4927
4931 struct pm_node *value;
4932} pm_index_or_write_node_t;
4933
4960 typedef struct pm_index_target_node {
4962 pm_node_t base;
4963
4964
4968 struct pm_node *receiver;
4969
4973 pm_location_t opening_loc;
4974
4978 struct pm_arguments_node *arguments;
4979
4983 pm_location_t closing_loc;
4984
4988 struct pm_block_argument_node *block;
4989} pm_index_target_node_t;
4990
5003 typedef struct pm_instance_variable_and_write_node {
5005 pm_node_t base;
5006
5007
5011 pm_constant_id_t name;
5012
5016 pm_location_t name_loc;
5017
5021 pm_location_t operator_loc;
5022
5026 struct pm_node *value;
5027} pm_instance_variable_and_write_node_t;
5028
5041 typedef struct pm_instance_variable_operator_write_node {
5043 pm_node_t base;
5044
5045
5049 pm_constant_id_t name;
5050
5054 pm_location_t name_loc;
5055
5059 pm_location_t binary_operator_loc;
5060
5064 struct pm_node *value;
5065
5069 pm_constant_id_t binary_operator;
5070} pm_instance_variable_operator_write_node_t;
5071
5084 typedef struct pm_instance_variable_or_write_node {
5086 pm_node_t base;
5087
5088
5092 pm_constant_id_t name;
5093
5097 pm_location_t name_loc;
5098
5102 pm_location_t operator_loc;
5103
5107 struct pm_node *value;
5108} pm_instance_variable_or_write_node_t;
5109
5122 typedef struct pm_instance_variable_read_node {
5124 pm_node_t base;
5125
5126
5136 pm_constant_id_t name;
5137} pm_instance_variable_read_node_t;
5138
5151 typedef struct pm_instance_variable_target_node {
5153 pm_node_t base;
5154
5155
5159 pm_constant_id_t name;
5160} pm_instance_variable_target_node_t;
5161
5174 typedef struct pm_instance_variable_write_node {
5176 pm_node_t base;
5177
5178
5188 pm_constant_id_t name;
5189
5198 pm_location_t name_loc;
5199
5211 struct pm_node *value;
5212
5221 pm_location_t operator_loc;
5222} pm_instance_variable_write_node_t;
5223
5242 typedef struct pm_integer_node {
5244 pm_node_t base;
5245
5246
5252 pm_integer_t value;
5253} pm_integer_node_t;
5254
5280 typedef struct pm_interpolated_match_last_line_node {
5282 pm_node_t base;
5283
5284
5288 pm_location_t opening_loc;
5289
5293 struct pm_node_list parts;
5294
5298 pm_location_t closing_loc;
5299} pm_interpolated_match_last_line_node_t;
5300
5326 typedef struct pm_interpolated_regular_expression_node {
5328 pm_node_t base;
5329
5330
5334 pm_location_t opening_loc;
5335
5339 struct pm_node_list parts;
5340
5344 pm_location_t closing_loc;
5345} pm_interpolated_regular_expression_node_t;
5346
5363 typedef struct pm_interpolated_string_node {
5365 pm_node_t base;
5366
5367
5371 pm_location_t opening_loc;
5372
5376 struct pm_node_list parts;
5377
5381 pm_location_t closing_loc;
5382} pm_interpolated_string_node_t;
5383
5396 typedef struct pm_interpolated_symbol_node {
5398 pm_node_t base;
5399
5400
5404 pm_location_t opening_loc;
5405
5409 struct pm_node_list parts;
5410
5414 pm_location_t closing_loc;
5415} pm_interpolated_symbol_node_t;
5416
5429 typedef struct pm_interpolated_x_string_node {
5431 pm_node_t base;
5432
5433
5437 pm_location_t opening_loc;
5438
5442 struct pm_node_list parts;
5443
5447 pm_location_t closing_loc;
5448} pm_interpolated_x_string_node_t;
5449
5462 typedef struct pm_it_local_variable_read_node {
5464 pm_node_t base;
5465
5466} pm_it_local_variable_read_node_t;
5467
5480 typedef struct pm_it_parameters_node {
5482 pm_node_t base;
5483
5484} pm_it_parameters_node_t;
5485
5501 typedef struct pm_keyword_hash_node {
5503 pm_node_t base;
5504
5505
5509 struct pm_node_list elements;
5510} pm_keyword_hash_node_t;
5511
5528 typedef struct pm_keyword_rest_parameter_node {
5530 pm_node_t base;
5531
5532
5536 pm_constant_id_t name;
5537
5541 pm_location_t name_loc;
5542
5546 pm_location_t operator_loc;
5547} pm_keyword_rest_parameter_node_t;
5548
5561 typedef struct pm_lambda_node {
5563 pm_node_t base;
5564
5565
5569 pm_constant_id_list_t locals;
5570
5574 pm_location_t operator_loc;
5575
5579 pm_location_t opening_loc;
5580
5584 pm_location_t closing_loc;
5585
5589 struct pm_node *parameters;
5590
5594 struct pm_node *body;
5595} pm_lambda_node_t;
5596
5609 typedef struct pm_local_variable_and_write_node {
5611 pm_node_t base;
5612
5613
5617 pm_location_t name_loc;
5618
5622 pm_location_t operator_loc;
5623
5627 struct pm_node *value;
5628
5632 pm_constant_id_t name;
5633
5637 uint32_t depth;
5638} pm_local_variable_and_write_node_t;
5639
5652 typedef struct pm_local_variable_operator_write_node {
5654 pm_node_t base;
5655
5656
5660 pm_location_t name_loc;
5661
5665 pm_location_t binary_operator_loc;
5666
5670 struct pm_node *value;
5671
5675 pm_constant_id_t name;
5676
5680 pm_constant_id_t binary_operator;
5681
5685 uint32_t depth;
5686} pm_local_variable_operator_write_node_t;
5687
5700 typedef struct pm_local_variable_or_write_node {
5702 pm_node_t base;
5703
5704
5708 pm_location_t name_loc;
5709
5713 pm_location_t operator_loc;
5714
5718 struct pm_node *value;
5719
5723 pm_constant_id_t name;
5724
5728 uint32_t depth;
5729} pm_local_variable_or_write_node_t;
5730
5743 typedef struct pm_local_variable_read_node {
5745 pm_node_t base;
5746
5747
5761 pm_constant_id_t name;
5762
5774 uint32_t depth;
5775} pm_local_variable_read_node_t;
5776
5792 typedef struct pm_local_variable_target_node {
5794 pm_node_t base;
5795
5796
5800 pm_constant_id_t name;
5801
5805 uint32_t depth;
5806} pm_local_variable_target_node_t;
5807
5820 typedef struct pm_local_variable_write_node {
5822 pm_node_t base;
5823
5824
5834 pm_constant_id_t name;
5835
5847 uint32_t depth;
5848
5857 pm_location_t name_loc;
5858
5874 struct pm_node *value;
5875
5884 pm_location_t operator_loc;
5885} pm_local_variable_write_node_t;
5886
5912 typedef struct pm_match_last_line_node {
5914 pm_node_t base;
5915
5916
5920 pm_location_t opening_loc;
5921
5925 pm_location_t content_loc;
5926
5930 pm_location_t closing_loc;
5931
5935 pm_string_t unescaped;
5936} pm_match_last_line_node_t;
5937
5950 typedef struct pm_match_predicate_node {
5952 pm_node_t base;
5953
5954
5958 struct pm_node *value;
5959
5963 struct pm_node *pattern;
5964
5968 pm_location_t operator_loc;
5969} pm_match_predicate_node_t;
5970
5983 typedef struct pm_match_required_node {
5985 pm_node_t base;
5986
5987
5996 struct pm_node *value;
5997
6045 struct pm_node *pattern;
6046
6055 pm_location_t operator_loc;
6056} pm_match_required_node_t;
6057
6070 typedef struct pm_match_write_node {
6072 pm_node_t base;
6073
6074
6078 struct pm_call_node *call;
6079
6083 struct pm_node_list targets;
6084} pm_match_write_node_t;
6085
6095 typedef struct pm_missing_node {
6097 pm_node_t base;
6098
6099} pm_missing_node_t;
6100
6113 typedef struct pm_module_node {
6115 pm_node_t base;
6116
6117
6121 pm_constant_id_list_t locals;
6122
6126 pm_location_t module_keyword_loc;
6127
6131 struct pm_node *constant_path;
6132
6136 struct pm_node *body;
6137
6141 pm_location_t end_keyword_loc;
6142
6146 pm_constant_id_t name;
6147} pm_module_node_t;
6148
6166 typedef struct pm_multi_target_node {
6168 pm_node_t base;
6169
6170
6184 struct pm_node_list lefts;
6185
6204 struct pm_node *rest;
6205
6214 struct pm_node_list rights;
6215
6224 pm_location_t lparen_loc;
6225
6234 pm_location_t rparen_loc;
6235} pm_multi_target_node_t;
6236
6249 typedef struct pm_multi_write_node {
6251 pm_node_t base;
6252
6253
6267 struct pm_node_list lefts;
6268
6287 struct pm_node *rest;
6288
6297 struct pm_node_list rights;
6298
6307 pm_location_t lparen_loc;
6308
6317 pm_location_t rparen_loc;
6318
6327 pm_location_t operator_loc;
6328
6337 struct pm_node *value;
6338} pm_multi_write_node_t;
6339
6352 typedef struct pm_next_node {
6354 pm_node_t base;
6355
6356
6360 struct pm_arguments_node *arguments;
6361
6365 pm_location_t keyword_loc;
6366} pm_next_node_t;
6367
6380 typedef struct pm_nil_node {
6382 pm_node_t base;
6383
6384} pm_nil_node_t;
6385
6399 typedef struct pm_no_keywords_parameter_node {
6401 pm_node_t base;
6402
6403
6407 pm_location_t operator_loc;
6408
6412 pm_location_t keyword_loc;
6413} pm_no_keywords_parameter_node_t;
6414
6427 typedef struct pm_numbered_parameters_node {
6429 pm_node_t base;
6430
6431
6435 uint8_t maximum;
6436} pm_numbered_parameters_node_t;
6437
6450 typedef struct pm_numbered_reference_read_node {
6452 pm_node_t base;
6453
6454
6466 uint32_t number;
6467} pm_numbered_reference_read_node_t;
6468
6485 typedef struct pm_optional_keyword_parameter_node {
6487 pm_node_t base;
6488
6489
6493 pm_constant_id_t name;
6494
6498 pm_location_t name_loc;
6499
6503 struct pm_node *value;
6504} pm_optional_keyword_parameter_node_t;
6505
6522 typedef struct pm_optional_parameter_node {
6524 pm_node_t base;
6525
6526
6530 pm_constant_id_t name;
6531
6535 pm_location_t name_loc;
6536
6540 pm_location_t operator_loc;
6541
6545 struct pm_node *value;
6546} pm_optional_parameter_node_t;
6547
6560 typedef struct pm_or_node {
6562 pm_node_t base;
6563
6564
6576 struct pm_node *left;
6577
6589 struct pm_node *right;
6590
6599 pm_location_t operator_loc;
6600} pm_or_node_t;
6601
6615 typedef struct pm_parameters_node {
6617 pm_node_t base;
6618
6619
6623 struct pm_node_list requireds;
6624
6628 struct pm_node_list optionals;
6629
6633 struct pm_node *rest;
6634
6638 struct pm_node_list posts;
6639
6643 struct pm_node_list keywords;
6644
6648 struct pm_node *keyword_rest;
6649
6653 struct pm_block_parameter_node *block;
6654} pm_parameters_node_t;
6655
6671 typedef struct pm_parentheses_node {
6673 pm_node_t base;
6674
6675
6679 struct pm_node *body;
6680
6684 pm_location_t opening_loc;
6685
6689 pm_location_t closing_loc;
6690} pm_parentheses_node_t;
6691
6704 typedef struct pm_pinned_expression_node {
6706 pm_node_t base;
6707
6708
6717 struct pm_node *expression;
6718
6727 pm_location_t operator_loc;
6728
6737 pm_location_t lparen_loc;
6738
6747 pm_location_t rparen_loc;
6748} pm_pinned_expression_node_t;
6749
6762 typedef struct pm_pinned_variable_node {
6764 pm_node_t base;
6765
6766
6775 struct pm_node *variable;
6776
6785 pm_location_t operator_loc;
6786} pm_pinned_variable_node_t;
6787
6800 typedef struct pm_post_execution_node {
6802 pm_node_t base;
6803
6804
6808 struct pm_statements_node *statements;
6809
6813 pm_location_t keyword_loc;
6814
6818 pm_location_t opening_loc;
6819
6823 pm_location_t closing_loc;
6824} pm_post_execution_node_t;
6825
6838 typedef struct pm_pre_execution_node {
6840 pm_node_t base;
6841
6842
6846 struct pm_statements_node *statements;
6847
6851 pm_location_t keyword_loc;
6852
6856 pm_location_t opening_loc;
6857
6861 pm_location_t closing_loc;
6862} pm_pre_execution_node_t;
6863
6873 typedef struct pm_program_node {
6875 pm_node_t base;
6876
6877
6881 pm_constant_id_list_t locals;
6882
6886 struct pm_statements_node *statements;
6887} pm_program_node_t;
6888
6907 typedef struct pm_range_node {
6909 pm_node_t base;
6910
6911
6923 struct pm_node *left;
6924
6937 struct pm_node *right;
6938
6944 pm_location_t operator_loc;
6945} pm_range_node_t;
6946
6965 typedef struct pm_rational_node {
6967 pm_node_t base;
6968
6969
6977 pm_integer_t numerator;
6978
6986 pm_integer_t denominator;
6987} pm_rational_node_t;
6988
7001 typedef struct pm_redo_node {
7003 pm_node_t base;
7004
7005} pm_redo_node_t;
7006
7032 typedef struct pm_regular_expression_node {
7034 pm_node_t base;
7035
7036
7040 pm_location_t opening_loc;
7041
7045 pm_location_t content_loc;
7046
7050 pm_location_t closing_loc;
7051
7055 pm_string_t unescaped;
7056} pm_regular_expression_node_t;
7057
7074 typedef struct pm_required_keyword_parameter_node {
7076 pm_node_t base;
7077
7078
7082 pm_constant_id_t name;
7083
7087 pm_location_t name_loc;
7088} pm_required_keyword_parameter_node_t;
7089
7106 typedef struct pm_required_parameter_node {
7108 pm_node_t base;
7109
7110
7114 pm_constant_id_t name;
7115} pm_required_parameter_node_t;
7116
7129 typedef struct pm_rescue_modifier_node {
7131 pm_node_t base;
7132
7133
7137 struct pm_node *expression;
7138
7142 pm_location_t keyword_loc;
7143
7147 struct pm_node *rescue_expression;
7148} pm_rescue_modifier_node_t;
7149
7167 typedef struct pm_rescue_node {
7169 pm_node_t base;
7170
7171
7175 pm_location_t keyword_loc;
7176
7180 struct pm_node_list exceptions;
7181
7185 pm_location_t operator_loc;
7186
7190 struct pm_node *reference;
7191
7195 pm_location_t then_keyword_loc;
7196
7200 struct pm_statements_node *statements;
7201
7205 struct pm_rescue_node *subsequent;
7206} pm_rescue_node_t;
7207
7224 typedef struct pm_rest_parameter_node {
7226 pm_node_t base;
7227
7228
7232 pm_constant_id_t name;
7233
7237 pm_location_t name_loc;
7238
7242 pm_location_t operator_loc;
7243} pm_rest_parameter_node_t;
7244
7257 typedef struct pm_retry_node {
7259 pm_node_t base;
7260
7261} pm_retry_node_t;
7262
7275 typedef struct pm_return_node {
7277 pm_node_t base;
7278
7279
7283 pm_location_t keyword_loc;
7284
7288 struct pm_arguments_node *arguments;
7289} pm_return_node_t;
7290
7303 typedef struct pm_self_node {
7305 pm_node_t base;
7306
7307} pm_self_node_t;
7308
7327 typedef struct pm_shareable_constant_node {
7329 pm_node_t base;
7330
7331
7337 struct pm_node *write;
7338} pm_shareable_constant_node_t;
7339
7352 typedef struct pm_singleton_class_node {
7354 pm_node_t base;
7355
7356
7360 pm_constant_id_list_t locals;
7361
7365 pm_location_t class_keyword_loc;
7366
7370 pm_location_t operator_loc;
7371
7375 struct pm_node *expression;
7376
7380 struct pm_node *body;
7381
7385 pm_location_t end_keyword_loc;
7386} pm_singleton_class_node_t;
7387
7400 typedef struct pm_source_encoding_node {
7402 pm_node_t base;
7403
7404} pm_source_encoding_node_t;
7405
7424 typedef struct pm_source_file_node {
7426 pm_node_t base;
7427
7428
7434 pm_string_t filepath;
7435} pm_source_file_node_t;
7436
7449 typedef struct pm_source_line_node {
7451 pm_node_t base;
7452
7453} pm_source_line_node_t;
7454
7467 typedef struct pm_splat_node {
7469 pm_node_t base;
7470
7471
7475 pm_location_t operator_loc;
7476
7480 struct pm_node *expression;
7481} pm_splat_node_t;
7482
7495 typedef struct pm_statements_node {
7497 pm_node_t base;
7498
7499
7503 struct pm_node_list body;
7504} pm_statements_node_t;
7505
7530 typedef struct pm_string_node {
7532 pm_node_t base;
7533
7534
7538 pm_location_t opening_loc;
7539
7543 pm_location_t content_loc;
7544
7548 pm_location_t closing_loc;
7549
7553 pm_string_t unescaped;
7554} pm_string_node_t;
7555
7573 typedef struct pm_super_node {
7575 pm_node_t base;
7576
7577
7581 pm_location_t keyword_loc;
7582
7586 pm_location_t lparen_loc;
7587
7593 struct pm_arguments_node *arguments;
7594
7598 pm_location_t rparen_loc;
7599
7603 struct pm_node *block;
7604} pm_super_node_t;
7605
7626 typedef struct pm_symbol_node {
7628 pm_node_t base;
7629
7630
7634 pm_location_t opening_loc;
7635
7639 pm_location_t value_loc;
7640
7644 pm_location_t closing_loc;
7645
7649 pm_string_t unescaped;
7650} pm_symbol_node_t;
7651
7664 typedef struct pm_true_node {
7666 pm_node_t base;
7667
7668} pm_true_node_t;
7669
7682 typedef struct pm_undef_node {
7684 pm_node_t base;
7685
7686
7690 struct pm_node_list names;
7691
7695 pm_location_t keyword_loc;
7696} pm_undef_node_t;
7697
7713 typedef struct pm_unless_node {
7715 pm_node_t base;
7716
7717
7729 pm_location_t keyword_loc;
7730
7742 struct pm_node *predicate;
7743
7752 pm_location_t then_keyword_loc;
7753
7763 struct pm_statements_node *statements;
7764
7773 struct pm_else_node *else_clause;
7774
7783 pm_location_t end_keyword_loc;
7784} pm_unless_node_t;
7785
7804 typedef struct pm_until_node {
7806 pm_node_t base;
7807
7808
7812 pm_location_t keyword_loc;
7813
7817 pm_location_t do_keyword_loc;
7818
7822 pm_location_t closing_loc;
7823
7827 struct pm_node *predicate;
7828
7832 struct pm_statements_node *statements;
7833} pm_until_node_t;
7834
7849 typedef struct pm_when_node {
7851 pm_node_t base;
7852
7853
7857 pm_location_t keyword_loc;
7858
7862 struct pm_node_list conditions;
7863
7867 pm_location_t then_keyword_loc;
7868
7872 struct pm_statements_node *statements;
7873} pm_when_node_t;
7874
7893 typedef struct pm_while_node {
7895 pm_node_t base;
7896
7897
7901 pm_location_t keyword_loc;
7902
7906 pm_location_t do_keyword_loc;
7907
7911 pm_location_t closing_loc;
7912
7916 struct pm_node *predicate;
7917
7921 struct pm_statements_node *statements;
7922} pm_while_node_t;
7923
7940 typedef struct pm_x_string_node {
7942 pm_node_t base;
7943
7944
7948 pm_location_t opening_loc;
7949
7953 pm_location_t content_loc;
7954
7958 pm_location_t closing_loc;
7959
7963 pm_string_t unescaped;
7964} pm_x_string_node_t;
7965
7978 typedef struct pm_yield_node {
7980 pm_node_t base;
7981
7982
7986 pm_location_t keyword_loc;
7987
7991 pm_location_t lparen_loc;
7992
7996 struct pm_arguments_node *arguments;
7997
8001 pm_location_t rparen_loc;
8002} pm_yield_node_t;
8003
8007typedef enum pm_arguments_node_flags {
8009 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING = 4,
8010
8012 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS = 8,
8013
8015 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT = 16,
8016
8018 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT = 32,
8019
8021 PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
8022
8023 PM_ARGUMENTS_NODE_FLAGS_LAST,
8024} pm_arguments_node_flags_t;
8025
8029typedef enum pm_array_node_flags {
8031 PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
8032
8033 PM_ARRAY_NODE_FLAGS_LAST,
8034} pm_array_node_flags_t;
8035
8039typedef enum pm_call_node_flags {
8041 PM_CALL_NODE_FLAGS_SAFE_NAVIGATION = 4,
8042
8044 PM_CALL_NODE_FLAGS_VARIABLE_CALL = 8,
8045
8047 PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE = 16,
8048
8050 PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
8051
8052 PM_CALL_NODE_FLAGS_LAST,
8053} pm_call_node_flags_t;
8054
8058typedef enum pm_encoding_flags {
8060 PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING = 4,
8061
8063 PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
8064
8065 PM_ENCODING_FLAGS_LAST,
8066} pm_encoding_flags_t;
8067
8071typedef enum pm_integer_base_flags {
8073 PM_INTEGER_BASE_FLAGS_BINARY = 4,
8074
8076 PM_INTEGER_BASE_FLAGS_DECIMAL = 8,
8077
8079 PM_INTEGER_BASE_FLAGS_OCTAL = 16,
8080
8082 PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
8083
8084 PM_INTEGER_BASE_FLAGS_LAST,
8085} pm_integer_base_flags_t;
8086
8090typedef enum pm_interpolated_string_node_flags {
8092 PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN = 4,
8093
8095 PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
8096
8097 PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
8098} pm_interpolated_string_node_flags_t;
8099
8103typedef enum pm_keyword_hash_node_flags {
8105 PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
8106
8107 PM_KEYWORD_HASH_NODE_FLAGS_LAST,
8108} pm_keyword_hash_node_flags_t;
8109
8113typedef enum pm_loop_flags {
8115 PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8116
8117 PM_LOOP_FLAGS_LAST,
8118} pm_loop_flags_t;
8119
8123typedef enum pm_parameter_flags {
8125 PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8126
8127 PM_PARAMETER_FLAGS_LAST,
8128} pm_parameter_flags_t;
8129
8133typedef enum pm_parentheses_node_flags {
8135 PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8136
8137 PM_PARENTHESES_NODE_FLAGS_LAST,
8138} pm_parentheses_node_flags_t;
8139
8143typedef enum pm_range_flags {
8145 PM_RANGE_FLAGS_EXCLUDE_END = 4,
8146
8147 PM_RANGE_FLAGS_LAST,
8148} pm_range_flags_t;
8149
8153typedef enum pm_regular_expression_flags {
8155 PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE = 4,
8156
8158 PM_REGULAR_EXPRESSION_FLAGS_EXTENDED = 8,
8159
8161 PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE = 16,
8162
8164 PM_REGULAR_EXPRESSION_FLAGS_ONCE = 32,
8165
8167 PM_REGULAR_EXPRESSION_FLAGS_EUC_JP = 64,
8168
8170 PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT = 128,
8171
8173 PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J = 256,
8174
8176 PM_REGULAR_EXPRESSION_FLAGS_UTF_8 = 512,
8177
8179 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING = 1024,
8180
8182 PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING = 2048,
8183
8185 PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8186
8187 PM_REGULAR_EXPRESSION_FLAGS_LAST,
8188} pm_regular_expression_flags_t;
8189
8193typedef enum pm_shareable_constant_node_flags {
8195 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL = 4,
8196
8198 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING = 8,
8199
8201 PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8202
8203 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
8204} pm_shareable_constant_node_flags_t;
8205
8209typedef enum pm_string_flags {
8211 PM_STRING_FLAGS_FORCED_UTF8_ENCODING = 4,
8212
8214 PM_STRING_FLAGS_FORCED_BINARY_ENCODING = 8,
8215
8217 PM_STRING_FLAGS_FROZEN = 16,
8218
8220 PM_STRING_FLAGS_MUTABLE = 32,
8221
8222 PM_STRING_FLAGS_LAST,
8223} pm_string_flags_t;
8224
8228typedef enum pm_symbol_flags {
8230 PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING = 4,
8231
8233 PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING = 8,
8234
8236 PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
8237
8238 PM_SYMBOL_FLAGS_LAST,
8239} pm_symbol_flags_t;
8240
8247#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
8248
8249#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:1116
pm_alias_global_variable_node::old_name
struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1139
pm_alias_global_variable_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1118
pm_alias_global_variable_node::new_name
struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1129
pm_alias_global_variable_node::keyword_loc
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1149
pm_alias_method_node
AliasMethodNode.
Definition ast.h:1164
pm_alias_method_node::old_name
struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1199
pm_alias_method_node::new_name
struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1183
pm_alias_method_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1166
pm_alias_method_node::keyword_loc
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1209
pm_alternation_pattern_node
AlternationPatternNode.
Definition ast.h:1224
pm_alternation_pattern_node::operator_loc
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1257
pm_alternation_pattern_node::left
struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1237
pm_alternation_pattern_node::right
struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1247
pm_alternation_pattern_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1226
pm_and_node
AndNode.
Definition ast.h:1272
pm_and_node::left
struct pm_node * left
AndNode::left.
Definition ast.h:1288
pm_and_node::right
struct pm_node * right
AndNode::right.
Definition ast.h:1301
pm_and_node::operator_loc
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1311
pm_and_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1274
pm_arguments_node
ArgumentsNode.
Definition ast.h:1333
pm_arguments_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1335
pm_arguments_node::arguments
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1346
pm_array_node
ArrayNode.
Definition ast.h:1364
pm_array_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1366
pm_array_node::closing_loc
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1398
pm_array_node::elements
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1374
pm_array_node::opening_loc
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1386
pm_array_pattern_node
ArrayPatternNode.
Definition ast.h:1425
pm_array_pattern_node::requireds
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1454
pm_array_pattern_node::rest
struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1464
pm_array_pattern_node::constant
struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1444
pm_array_pattern_node::opening_loc
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1484
pm_array_pattern_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1427
pm_array_pattern_node::closing_loc
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1494
pm_array_pattern_node::posts
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1474
pm_assoc_node
AssocNode.
Definition ast.h:1509
pm_assoc_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1511
pm_assoc_node::value
struct pm_node * value
AssocNode::value.
Definition ast.h:1541
pm_assoc_node::key
struct pm_node * key
AssocNode::key.
Definition ast.h:1528
pm_assoc_node::operator_loc
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1551
pm_assoc_splat_node
AssocSplatNode.
Definition ast.h:1566
pm_assoc_splat_node::value
struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1579
pm_assoc_splat_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1568
pm_assoc_splat_node::operator_loc
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1589
pm_back_reference_read_node
BackReferenceReadNode.
Definition ast.h:1604
pm_back_reference_read_node::name
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1618
pm_back_reference_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1606
pm_begin_node
BeginNode.
Definition ast.h:1635
pm_begin_node::ensure_clause
struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1688
pm_begin_node::rescue_clause
struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1668
pm_begin_node::statements
struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1658
pm_begin_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1637
pm_begin_node::end_keyword_loc
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1698
pm_begin_node::begin_keyword_loc
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1648
pm_begin_node::else_clause
struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1678
pm_block_argument_node
BlockArgumentNode.
Definition ast.h:1713
pm_block_argument_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1715
pm_block_argument_node::expression
struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1726
pm_block_argument_node::operator_loc
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1736
pm_block_local_variable_node
BlockLocalVariableNode.
Definition ast.h:1754
pm_block_local_variable_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1756
pm_block_local_variable_node::name
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1767
pm_block_node
BlockNode.
Definition ast.h:1782
pm_block_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1784
pm_block_node::closing_loc
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1839
pm_block_node::parameters
struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1809
pm_block_node::opening_loc
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1829
pm_block_node::body
struct pm_node * body
BlockNode::body.
Definition ast.h:1819
pm_block_node::locals
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1795
pm_block_parameter_node
BlockParameterNode.
Definition ast.h:1858
pm_block_parameter_node::operator_loc
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1893
pm_block_parameter_node::name_loc
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1882
pm_block_parameter_node::name
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1872
pm_block_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1860
pm_block_parameters_node
BlockParametersNode.
Definition ast.h:1912
pm_block_parameters_node::parameters
struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1929
pm_block_parameters_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1914
pm_block_parameters_node::locals
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1943
pm_block_parameters_node::closing_loc
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1971
pm_block_parameters_node::opening_loc
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1957
pm_break_node
BreakNode.
Definition ast.h:1986
pm_break_node::arguments
struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:1999
pm_break_node::keyword_loc
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2009
pm_break_node::base
pm_node_t base
The embedded base node.
Definition ast.h:1988
pm_call_and_write_node
CallAndWriteNode.
Definition ast.h:2030
pm_call_and_write_node::operator_loc
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2093
pm_call_and_write_node::value
struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2103
pm_call_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2032
pm_call_and_write_node::call_operator_loc
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2053
pm_call_and_write_node::message_loc
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2063
pm_call_and_write_node::read_name
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2073
pm_call_and_write_node::write_name
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2083
pm_call_and_write_node::receiver
struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2043
pm_call_node
CallNode.
Definition ast.h:2139
pm_call_node::opening_loc
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2200
pm_call_node::closing_loc
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2220
pm_call_node::receiver
struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2158
pm_call_node::name
pm_constant_id_t name
CallNode::name.
Definition ast.h:2181
pm_call_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2141
pm_call_node::equal_loc
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2233
pm_call_node::call_operator_loc
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2171
pm_call_node::message_loc
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2191
pm_call_node::arguments
struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2210
pm_call_node::block
struct pm_node * block
CallNode::block.
Definition ast.h:2243
pm_call_operator_write_node
CallOperatorWriteNode.
Definition ast.h:2264
pm_call_operator_write_node::read_name
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2307
pm_call_operator_write_node::binary_operator
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2327
pm_call_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2337
pm_call_operator_write_node::receiver
struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2277
pm_call_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2266
pm_call_operator_write_node::write_name
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2317
pm_call_operator_write_node::message_loc
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2297
pm_call_operator_write_node::value
struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2347
pm_call_operator_write_node::call_operator_loc
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2287
pm_call_or_write_node
CallOrWriteNode.
Definition ast.h:2368
pm_call_or_write_node::operator_loc
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2431
pm_call_or_write_node::call_operator_loc
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2391
pm_call_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2370
pm_call_or_write_node::receiver
struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2381
pm_call_or_write_node::value
struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2441
pm_call_or_write_node::write_name
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2421
pm_call_or_write_node::read_name
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2411
pm_call_or_write_node::message_loc
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2401
pm_call_target_node
CallTargetNode.
Definition ast.h:2470
pm_call_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2472
pm_call_target_node::name
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2503
pm_call_target_node::receiver
struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2483
pm_call_target_node::call_operator_loc
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2493
pm_call_target_node::message_loc
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2513
pm_capture_pattern_node
CapturePatternNode.
Definition ast.h:2528
pm_capture_pattern_node::target
struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2551
pm_capture_pattern_node::operator_loc
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2561
pm_capture_pattern_node::value
struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2541
pm_capture_pattern_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2530
pm_case_match_node
CaseMatchNode.
Definition ast.h:2578
pm_case_match_node::end_keyword_loc
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2631
pm_case_match_node::conditions
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2601
pm_case_match_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2580
pm_case_match_node::case_keyword_loc
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2621
pm_case_match_node::else_clause
struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2611
pm_case_match_node::predicate
struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2591
pm_case_node
CaseNode.
Definition ast.h:2648
pm_case_node::predicate
struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2661
pm_case_node::else_clause
struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2681
pm_case_node::conditions
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2671
pm_case_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2650
pm_case_node::case_keyword_loc
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2691
pm_case_node::end_keyword_loc
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2701
pm_class_node
ClassNode.
Definition ast.h:2716
pm_class_node::class_keyword_loc
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2734
pm_class_node::end_keyword_loc
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2780
pm_class_node::constant_path
struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2739
pm_class_node::locals
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2724
pm_class_node::inheritance_operator_loc
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2749
pm_class_node::name
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2789
pm_class_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2718
pm_class_node::body
struct pm_node * body
ClassNode::body.
Definition ast.h:2770
pm_class_node::superclass
struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2759
pm_class_variable_and_write_node
ClassVariableAndWriteNode.
Definition ast.h:2804
pm_class_variable_and_write_node::value
struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2847
pm_class_variable_and_write_node::name
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2817
pm_class_variable_and_write_node::operator_loc
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2837
pm_class_variable_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2806
pm_class_variable_and_write_node::name_loc
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2827
pm_class_variable_operator_write_node
ClassVariableOperatorWriteNode.
Definition ast.h:2862
pm_class_variable_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2864
pm_class_variable_operator_write_node::name
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2870
pm_class_variable_operator_write_node::name_loc
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2875
pm_class_variable_operator_write_node::binary_operator
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2890
pm_class_variable_operator_write_node::value
struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2885
pm_class_variable_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2880
pm_class_variable_or_write_node
ClassVariableOrWriteNode.
Definition ast.h:2905
pm_class_variable_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2907
pm_class_variable_or_write_node::name_loc
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2918
pm_class_variable_or_write_node::operator_loc
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2923
pm_class_variable_or_write_node::name
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2913
pm_class_variable_or_write_node::value
struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2928
pm_class_variable_read_node
ClassVariableReadNode.
Definition ast.h:2943
pm_class_variable_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2945
pm_class_variable_read_node::name
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2957
pm_class_variable_target_node
ClassVariableTargetNode.
Definition ast.h:2972
pm_class_variable_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2974
pm_class_variable_target_node::name
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2980
pm_class_variable_write_node
ClassVariableWriteNode.
Definition ast.h:2995
pm_class_variable_write_node::name_loc
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:3019
pm_class_variable_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:2997
pm_class_variable_write_node::value
struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3032
pm_class_variable_write_node::operator_loc
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3042
pm_class_variable_write_node::name
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:3009
pm_constant_and_write_node
ConstantAndWriteNode.
Definition ast.h:3057
pm_constant_and_write_node::operator_loc
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3075
pm_constant_and_write_node::name_loc
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3070
pm_constant_and_write_node::name
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3065
pm_constant_and_write_node::value
struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3080
pm_constant_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3059
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:3095
pm_constant_operator_write_node::name
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3103
pm_constant_operator_write_node::name_loc
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3108
pm_constant_operator_write_node::binary_operator
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3123
pm_constant_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3113
pm_constant_operator_write_node::value
struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3118
pm_constant_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3097
pm_constant_or_write_node
ConstantOrWriteNode.
Definition ast.h:3138
pm_constant_or_write_node::operator_loc
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3156
pm_constant_or_write_node::name_loc
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3151
pm_constant_or_write_node::name
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3146
pm_constant_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3140
pm_constant_or_write_node::value
struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3161
pm_constant_path_and_write_node
ConstantPathAndWriteNode.
Definition ast.h:3176
pm_constant_path_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3178
pm_constant_path_and_write_node::target
struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3184
pm_constant_path_and_write_node::operator_loc
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3189
pm_constant_path_and_write_node::value
struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3194
pm_constant_path_node
ConstantPathNode.
Definition ast.h:3209
pm_constant_path_node::delimiter_loc
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3248
pm_constant_path_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3211
pm_constant_path_node::name_loc
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3261
pm_constant_path_node::name
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3235
pm_constant_path_node::parent
struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3228
pm_constant_path_operator_write_node
ConstantPathOperatorWriteNode.
Definition ast.h:3276
pm_constant_path_operator_write_node::target
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3284
pm_constant_path_operator_write_node::value
struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3294
pm_constant_path_operator_write_node::binary_operator
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3299
pm_constant_path_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3278
pm_constant_path_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3289
pm_constant_path_or_write_node
ConstantPathOrWriteNode.
Definition ast.h:3314
pm_constant_path_or_write_node::operator_loc
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3327
pm_constant_path_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3316
pm_constant_path_or_write_node::value
struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3332
pm_constant_path_or_write_node::target
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3322
pm_constant_path_target_node
ConstantPathTargetNode.
Definition ast.h:3347
pm_constant_path_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3349
pm_constant_path_target_node::parent
struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3355
pm_constant_path_target_node::delimiter_loc
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3365
pm_constant_path_target_node::name
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3360
pm_constant_path_target_node::name_loc
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3370
pm_constant_path_write_node
ConstantPathWriteNode.
Definition ast.h:3391
pm_constant_path_write_node::target
struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3407
pm_constant_path_write_node::operator_loc
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3417
pm_constant_path_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3393
pm_constant_path_write_node::value
struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3427
pm_constant_read_node
ConstantReadNode.
Definition ast.h:3442
pm_constant_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3444
pm_constant_read_node::name
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3456
pm_constant_target_node
ConstantTargetNode.
Definition ast.h:3471
pm_constant_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3473
pm_constant_target_node::name
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3479
pm_constant_write_node
ConstantWriteNode.
Definition ast.h:3494
pm_constant_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3496
pm_constant_write_node::value
struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3531
pm_constant_write_node::name
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3508
pm_constant_write_node::name_loc
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3518
pm_constant_write_node::operator_loc
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3541
pm_def_node
DefNode.
Definition ast.h:3557
pm_def_node::parameters
struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3580
pm_def_node::end_keyword_loc
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3620
pm_def_node::name
pm_constant_id_t name
DefNode::name.
Definition ast.h:3565
pm_def_node::name_loc
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3570
pm_def_node::rparen_loc
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3610
pm_def_node::body
struct pm_node * body
DefNode::body.
Definition ast.h:3585
pm_def_node::equal_loc
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3615
pm_def_node::def_keyword_loc
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3595
pm_def_node::receiver
struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3575
pm_def_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3559
pm_def_node::lparen_loc
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3605
pm_def_node::operator_loc
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3600
pm_def_node::locals
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3590
pm_defined_node
DefinedNode.
Definition ast.h:3635
pm_defined_node::lparen_loc
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3643
pm_defined_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3637
pm_defined_node::rparen_loc
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3653
pm_defined_node::keyword_loc
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3658
pm_defined_node::value
struct pm_node * value
DefinedNode::value.
Definition ast.h:3648
pm_else_node
ElseNode.
Definition ast.h:3673
pm_else_node::statements
struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3686
pm_else_node::else_keyword_loc
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3681
pm_else_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3675
pm_else_node::end_keyword_loc
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3691
pm_embedded_statements_node
EmbeddedStatementsNode.
Definition ast.h:3706
pm_embedded_statements_node::closing_loc
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3724
pm_embedded_statements_node::statements
struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3719
pm_embedded_statements_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3708
pm_embedded_statements_node::opening_loc
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3714
pm_embedded_variable_node
EmbeddedVariableNode.
Definition ast.h:3739
pm_embedded_variable_node::variable
struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3752
pm_embedded_variable_node::operator_loc
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3747
pm_embedded_variable_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3741
pm_ensure_node
EnsureNode.
Definition ast.h:3771
pm_ensure_node::statements
struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3784
pm_ensure_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3773
pm_ensure_node::ensure_keyword_loc
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3779
pm_ensure_node::end_keyword_loc
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3789
pm_false_node
FalseNode.
Definition ast.h:3804
pm_false_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3806
pm_find_pattern_node
FindPatternNode.
Definition ast.h:3831
pm_find_pattern_node::constant
struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3844
pm_find_pattern_node::right
struct pm_node * right
FindPatternNode::right.
Definition ast.h:3883
pm_find_pattern_node::opening_loc
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3896
pm_find_pattern_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3833
pm_find_pattern_node::requireds
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3870
pm_find_pattern_node::left
struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3857
pm_find_pattern_node::closing_loc
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3909
pm_flip_flop_node
FlipFlopNode.
Definition ast.h:3927
pm_flip_flop_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3929
pm_flip_flop_node::operator_loc
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3945
pm_flip_flop_node::left
struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3935
pm_flip_flop_node::right
struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3940
pm_float_node
FloatNode.
Definition ast.h:3960
pm_float_node::value
double value
FloatNode::value.
Definition ast.h:3970
pm_float_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3962
pm_for_node
ForNode.
Definition ast.h:3985
pm_for_node::statements
struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:4020
pm_for_node::index
struct pm_node * index
ForNode::index.
Definition ast.h:3998
pm_for_node::collection
struct pm_node * collection
ForNode::collection.
Definition ast.h:4008
pm_for_node::base
pm_node_t base
The embedded base node.
Definition ast.h:3987
pm_for_node::end_keyword_loc
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4060
pm_for_node::for_keyword_loc
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4030
pm_for_node::do_keyword_loc
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4050
pm_for_node::in_keyword_loc
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4040
pm_forwarding_arguments_node
ForwardingArgumentsNode.
Definition ast.h:4077
pm_forwarding_arguments_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4079
pm_forwarding_parameter_node
ForwardingParameterNode.
Definition ast.h:4096
pm_forwarding_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4098
pm_forwarding_super_node
ForwardingSuperNode.
Definition ast.h:4119
pm_forwarding_super_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4121
pm_forwarding_super_node::block
struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4129
pm_global_variable_and_write_node
GlobalVariableAndWriteNode.
Definition ast.h:4144
pm_global_variable_and_write_node::operator_loc
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4162
pm_global_variable_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4146
pm_global_variable_and_write_node::name_loc
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4157
pm_global_variable_and_write_node::value
struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4167
pm_global_variable_and_write_node::name
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4152
pm_global_variable_operator_write_node
GlobalVariableOperatorWriteNode.
Definition ast.h:4182
pm_global_variable_operator_write_node::name
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4190
pm_global_variable_operator_write_node::binary_operator
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4210
pm_global_variable_operator_write_node::value
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4205
pm_global_variable_operator_write_node::name_loc
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4195
pm_global_variable_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4184
pm_global_variable_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4200
pm_global_variable_or_write_node
GlobalVariableOrWriteNode.
Definition ast.h:4225
pm_global_variable_or_write_node::name
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4233
pm_global_variable_or_write_node::name_loc
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4238
pm_global_variable_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4227
pm_global_variable_or_write_node::operator_loc
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4243
pm_global_variable_or_write_node::value
struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4248
pm_global_variable_read_node
GlobalVariableReadNode.
Definition ast.h:4263
pm_global_variable_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4265
pm_global_variable_read_node::name
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4277
pm_global_variable_target_node
GlobalVariableTargetNode.
Definition ast.h:4292
pm_global_variable_target_node::name
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4300
pm_global_variable_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4294
pm_global_variable_write_node
GlobalVariableWriteNode.
Definition ast.h:4315
pm_global_variable_write_node::value
struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4352
pm_global_variable_write_node::name_loc
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4339
pm_global_variable_write_node::operator_loc
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4362
pm_global_variable_write_node::name
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4329
pm_global_variable_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4317
pm_hash_node
HashNode.
Definition ast.h:4377
pm_hash_node::elements
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4403
pm_hash_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4379
pm_hash_node::closing_loc
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4413
pm_hash_node::opening_loc
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4390
pm_hash_pattern_node
HashPatternNode.
Definition ast.h:4437
pm_hash_pattern_node::elements
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4463
pm_hash_pattern_node::opening_loc
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4492
pm_hash_pattern_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4439
pm_hash_pattern_node::rest
struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4479
pm_hash_pattern_node::closing_loc
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4505
pm_hash_pattern_node::constant
struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4453
pm_if_node
IfNode.
Definition ast.h:4526
pm_if_node::predicate
struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4559
pm_if_node::end_keyword_loc
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4617
pm_if_node::if_keyword_loc
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4541
pm_if_node::statements
struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4586
pm_if_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4528
pm_if_node::subsequent
struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4605
pm_if_node::then_keyword_loc
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4572
pm_imaginary_node
ImaginaryNode.
Definition ast.h:4632
pm_imaginary_node::numeric
struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4640
pm_imaginary_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4634
pm_implicit_node
ImplicitNode.
Definition ast.h:4661
pm_implicit_node::value
struct pm_node * value
ImplicitNode::value.
Definition ast.h:4669
pm_implicit_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4663
pm_implicit_rest_node
ImplicitRestNode.
Definition ast.h:4693
pm_implicit_rest_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4695
pm_in_node
InNode.
Definition ast.h:4711
pm_in_node::statements
struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4724
pm_in_node::pattern
struct pm_node * pattern
InNode::pattern.
Definition ast.h:4719
pm_in_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4713
pm_in_node::then_loc
pm_location_t then_loc
InNode::then_loc.
Definition ast.h:4734
pm_in_node::in_loc
pm_location_t in_loc
InNode::in_loc.
Definition ast.h:4729
pm_index_and_write_node
IndexAndWriteNode.
Definition ast.h:4755
pm_index_and_write_node::arguments
struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4778
pm_index_and_write_node::receiver
struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4763
pm_index_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4757
pm_index_and_write_node::block
struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4788
pm_index_and_write_node::value
struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4798
pm_index_and_write_node::operator_loc
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4793
pm_index_and_write_node::closing_loc
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4783
pm_index_and_write_node::opening_loc
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4773
pm_index_and_write_node::call_operator_loc
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4768
pm_index_operator_write_node
IndexOperatorWriteNode.
Definition ast.h:4819
pm_index_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4821
pm_index_operator_write_node::block
struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4852
pm_index_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4862
pm_index_operator_write_node::value
struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4867
pm_index_operator_write_node::opening_loc
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4837
pm_index_operator_write_node::call_operator_loc
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4832
pm_index_operator_write_node::closing_loc
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4847
pm_index_operator_write_node::arguments
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4842
pm_index_operator_write_node::binary_operator
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4857
pm_index_operator_write_node::receiver
struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4827
pm_index_or_write_node
IndexOrWriteNode.
Definition ast.h:4888
pm_index_or_write_node::closing_loc
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4916
pm_index_or_write_node::call_operator_loc
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4901
pm_index_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4890
pm_index_or_write_node::block
struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4921
pm_index_or_write_node::operator_loc
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4926
pm_index_or_write_node::receiver
struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4896
pm_index_or_write_node::opening_loc
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4906
pm_index_or_write_node::value
struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4931
pm_index_or_write_node::arguments
struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4911
pm_index_target_node
IndexTargetNode.
Definition ast.h:4960
pm_index_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:4962
pm_index_target_node::receiver
struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4968
pm_index_target_node::closing_loc
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4983
pm_index_target_node::arguments
struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4978
pm_index_target_node::opening_loc
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4973
pm_index_target_node::block
struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4988
pm_instance_variable_and_write_node
InstanceVariableAndWriteNode.
Definition ast.h:5003
pm_instance_variable_and_write_node::operator_loc
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:5021
pm_instance_variable_and_write_node::name_loc
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:5016
pm_instance_variable_and_write_node::value
struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:5026
pm_instance_variable_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5005
pm_instance_variable_and_write_node::name
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:5011
pm_instance_variable_operator_write_node
InstanceVariableOperatorWriteNode.
Definition ast.h:5041
pm_instance_variable_operator_write_node::value
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5064
pm_instance_variable_operator_write_node::binary_operator
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5069
pm_instance_variable_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5059
pm_instance_variable_operator_write_node::name
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5049
pm_instance_variable_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5043
pm_instance_variable_operator_write_node::name_loc
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5054
pm_instance_variable_or_write_node
InstanceVariableOrWriteNode.
Definition ast.h:5084
pm_instance_variable_or_write_node::operator_loc
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5102
pm_instance_variable_or_write_node::value
struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5107
pm_instance_variable_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5086
pm_instance_variable_or_write_node::name_loc
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5097
pm_instance_variable_or_write_node::name
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5092
pm_instance_variable_read_node
InstanceVariableReadNode.
Definition ast.h:5122
pm_instance_variable_read_node::name
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5136
pm_instance_variable_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5124
pm_instance_variable_target_node
InstanceVariableTargetNode.
Definition ast.h:5151
pm_instance_variable_target_node::name
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5159
pm_instance_variable_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5153
pm_instance_variable_write_node
InstanceVariableWriteNode.
Definition ast.h:5174
pm_instance_variable_write_node::operator_loc
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5221
pm_instance_variable_write_node::name
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5188
pm_instance_variable_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5176
pm_instance_variable_write_node::value
struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5211
pm_instance_variable_write_node::name_loc
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5198
pm_integer_node
IntegerNode.
Definition ast.h:5242
pm_integer_node::value
pm_integer_t value
IntegerNode::value.
Definition ast.h:5252
pm_integer_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5244
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:5280
pm_interpolated_match_last_line_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5282
pm_interpolated_match_last_line_node::closing_loc
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5298
pm_interpolated_match_last_line_node::parts
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5293
pm_interpolated_match_last_line_node::opening_loc
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5288
pm_interpolated_regular_expression_node
InterpolatedRegularExpressionNode.
Definition ast.h:5326
pm_interpolated_regular_expression_node::opening_loc
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5334
pm_interpolated_regular_expression_node::parts
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5339
pm_interpolated_regular_expression_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5328
pm_interpolated_regular_expression_node::closing_loc
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5344
pm_interpolated_string_node
InterpolatedStringNode.
Definition ast.h:5363
pm_interpolated_string_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5365
pm_interpolated_string_node::closing_loc
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5381
pm_interpolated_string_node::opening_loc
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5371
pm_interpolated_string_node::parts
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5376
pm_interpolated_symbol_node
InterpolatedSymbolNode.
Definition ast.h:5396
pm_interpolated_symbol_node::parts
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5409
pm_interpolated_symbol_node::closing_loc
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5414
pm_interpolated_symbol_node::opening_loc
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5404
pm_interpolated_symbol_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5398
pm_interpolated_x_string_node
InterpolatedXStringNode.
Definition ast.h:5429
pm_interpolated_x_string_node::opening_loc
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5437
pm_interpolated_x_string_node::closing_loc
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5447
pm_interpolated_x_string_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5431
pm_interpolated_x_string_node::parts
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5442
pm_it_local_variable_read_node
ItLocalVariableReadNode.
Definition ast.h:5462
pm_it_local_variable_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5464
pm_it_parameters_node
ItParametersNode.
Definition ast.h:5480
pm_it_parameters_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5482
pm_keyword_hash_node
KeywordHashNode.
Definition ast.h:5501
pm_keyword_hash_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5503
pm_keyword_hash_node::elements
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5509
pm_keyword_rest_parameter_node
KeywordRestParameterNode.
Definition ast.h:5528
pm_keyword_rest_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5530
pm_keyword_rest_parameter_node::name
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5536
pm_keyword_rest_parameter_node::operator_loc
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5546
pm_keyword_rest_parameter_node::name_loc
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5541
pm_lambda_node
LambdaNode.
Definition ast.h:5561
pm_lambda_node::closing_loc
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5584
pm_lambda_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5563
pm_lambda_node::body
struct pm_node * body
LambdaNode::body.
Definition ast.h:5594
pm_lambda_node::opening_loc
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5579
pm_lambda_node::parameters
struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5589
pm_lambda_node::operator_loc
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5574
pm_lambda_node::locals
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5569
pm_local_variable_and_write_node
LocalVariableAndWriteNode.
Definition ast.h:5609
pm_local_variable_and_write_node::name
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5632
pm_local_variable_and_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5611
pm_local_variable_and_write_node::depth
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5637
pm_local_variable_and_write_node::operator_loc
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5622
pm_local_variable_and_write_node::value
struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5627
pm_local_variable_and_write_node::name_loc
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5617
pm_local_variable_operator_write_node
LocalVariableOperatorWriteNode.
Definition ast.h:5652
pm_local_variable_operator_write_node::depth
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5685
pm_local_variable_operator_write_node::binary_operator
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5680
pm_local_variable_operator_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5654
pm_local_variable_operator_write_node::value
struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5670
pm_local_variable_operator_write_node::name_loc
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5660
pm_local_variable_operator_write_node::binary_operator_loc
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5665
pm_local_variable_operator_write_node::name
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5675
pm_local_variable_or_write_node
LocalVariableOrWriteNode.
Definition ast.h:5700
pm_local_variable_or_write_node::depth
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5728
pm_local_variable_or_write_node::operator_loc
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5713
pm_local_variable_or_write_node::value
struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5718
pm_local_variable_or_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5702
pm_local_variable_or_write_node::name
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5723
pm_local_variable_or_write_node::name_loc
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5708
pm_local_variable_read_node
LocalVariableReadNode.
Definition ast.h:5743
pm_local_variable_read_node::depth
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5774
pm_local_variable_read_node::name
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5761
pm_local_variable_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5745
pm_local_variable_target_node
LocalVariableTargetNode.
Definition ast.h:5792
pm_local_variable_target_node::depth
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5805
pm_local_variable_target_node::name
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5800
pm_local_variable_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5794
pm_local_variable_write_node
LocalVariableWriteNode.
Definition ast.h:5820
pm_local_variable_write_node::operator_loc
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5884
pm_local_variable_write_node::name_loc
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5857
pm_local_variable_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5822
pm_local_variable_write_node::value
struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5874
pm_local_variable_write_node::depth
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5847
pm_local_variable_write_node::name
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5834
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:5912
pm_match_last_line_node::content_loc
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5925
pm_match_last_line_node::opening_loc
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5920
pm_match_last_line_node::closing_loc
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5930
pm_match_last_line_node::unescaped
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5935
pm_match_last_line_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5914
pm_match_predicate_node
MatchPredicateNode.
Definition ast.h:5950
pm_match_predicate_node::operator_loc
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition ast.h:5968
pm_match_predicate_node::pattern
struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5963
pm_match_predicate_node::value
struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5958
pm_match_predicate_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5952
pm_match_required_node
MatchRequiredNode.
Definition ast.h:5983
pm_match_required_node::base
pm_node_t base
The embedded base node.
Definition ast.h:5985
pm_match_required_node::operator_loc
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6055
pm_match_required_node::value
struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5996
pm_match_required_node::pattern
struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:6045
pm_match_write_node
MatchWriteNode.
Definition ast.h:6070
pm_match_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6072
pm_match_write_node::targets
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6083
pm_match_write_node::call
struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6078
pm_missing_node
MissingNode.
Definition ast.h:6095
pm_missing_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6097
pm_module_node
ModuleNode.
Definition ast.h:6113
pm_module_node::end_keyword_loc
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6141
pm_module_node::constant_path
struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6131
pm_module_node::body
struct pm_node * body
ModuleNode::body.
Definition ast.h:6136
pm_module_node::locals
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6121
pm_module_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6115
pm_module_node::module_keyword_loc
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6126
pm_module_node::name
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6146
pm_multi_target_node
MultiTargetNode.
Definition ast.h:6166
pm_multi_target_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6168
pm_multi_target_node::lparen_loc
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6224
pm_multi_target_node::lefts
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6184
pm_multi_target_node::rest
struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6204
pm_multi_target_node::rparen_loc
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6234
pm_multi_target_node::rights
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6214
pm_multi_write_node
MultiWriteNode.
Definition ast.h:6249
pm_multi_write_node::rparen_loc
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6317
pm_multi_write_node::value
struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6337
pm_multi_write_node::rest
struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6287
pm_multi_write_node::rights
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6297
pm_multi_write_node::operator_loc
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6327
pm_multi_write_node::lparen_loc
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6307
pm_multi_write_node::lefts
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6267
pm_multi_write_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6251
pm_next_node
NextNode.
Definition ast.h:6352
pm_next_node::arguments
struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6360
pm_next_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6354
pm_next_node::keyword_loc
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6365
pm_nil_node
NilNode.
Definition ast.h:6380
pm_nil_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6382
pm_no_keywords_parameter_node
NoKeywordsParameterNode.
Definition ast.h:6399
pm_no_keywords_parameter_node::keyword_loc
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6412
pm_no_keywords_parameter_node::operator_loc
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6407
pm_no_keywords_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6401
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:1052
pm_node::type
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1057
pm_node::node_id
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1069
pm_node::flags
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1063
pm_node::location
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1075
pm_numbered_parameters_node
NumberedParametersNode.
Definition ast.h:6427
pm_numbered_parameters_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6429
pm_numbered_parameters_node::maximum
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6435
pm_numbered_reference_read_node
NumberedReferenceReadNode.
Definition ast.h:6450
pm_numbered_reference_read_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6452
pm_numbered_reference_read_node::number
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6466
pm_optional_keyword_parameter_node
OptionalKeywordParameterNode.
Definition ast.h:6485
pm_optional_keyword_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6487
pm_optional_keyword_parameter_node::name
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6493
pm_optional_keyword_parameter_node::value
struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6503
pm_optional_keyword_parameter_node::name_loc
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6498
pm_optional_parameter_node
OptionalParameterNode.
Definition ast.h:6522
pm_optional_parameter_node::name_loc
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6535
pm_optional_parameter_node::value
struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6545
pm_optional_parameter_node::name
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6530
pm_optional_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6524
pm_optional_parameter_node::operator_loc
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6540
pm_or_node
OrNode.
Definition ast.h:6560
pm_or_node::left
struct pm_node * left
OrNode::left.
Definition ast.h:6576
pm_or_node::right
struct pm_node * right
OrNode::right.
Definition ast.h:6589
pm_or_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6562
pm_or_node::operator_loc
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6599
pm_parameters_node
ParametersNode.
Definition ast.h:6615
pm_parameters_node::rest
struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6633
pm_parameters_node::requireds
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6623
pm_parameters_node::block
struct pm_block_parameter_node * block
ParametersNode::block.
Definition ast.h:6653
pm_parameters_node::optionals
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6628
pm_parameters_node::posts
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6638
pm_parameters_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6617
pm_parameters_node::keyword_rest
struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6648
pm_parameters_node::keywords
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6643
pm_parentheses_node
ParenthesesNode.
Definition ast.h:6671
pm_parentheses_node::body
struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6679
pm_parentheses_node::closing_loc
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6689
pm_parentheses_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6673
pm_parentheses_node::opening_loc
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6684
pm_pinned_expression_node
PinnedExpressionNode.
Definition ast.h:6704
pm_pinned_expression_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6706
pm_pinned_expression_node::rparen_loc
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6747
pm_pinned_expression_node::expression
struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6717
pm_pinned_expression_node::lparen_loc
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6737
pm_pinned_expression_node::operator_loc
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6727
pm_pinned_variable_node
PinnedVariableNode.
Definition ast.h:6762
pm_pinned_variable_node::variable
struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6775
pm_pinned_variable_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6764
pm_pinned_variable_node::operator_loc
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6785
pm_post_execution_node
PostExecutionNode.
Definition ast.h:6800
pm_post_execution_node::closing_loc
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6823
pm_post_execution_node::statements
struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6808
pm_post_execution_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6802
pm_post_execution_node::opening_loc
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6818
pm_post_execution_node::keyword_loc
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6813
pm_pre_execution_node
PreExecutionNode.
Definition ast.h:6838
pm_pre_execution_node::statements
struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6846
pm_pre_execution_node::closing_loc
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6861
pm_pre_execution_node::opening_loc
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6856
pm_pre_execution_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6840
pm_pre_execution_node::keyword_loc
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6851
pm_program_node
ProgramNode.
Definition ast.h:6873
pm_program_node::statements
struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6886
pm_program_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6875
pm_program_node::locals
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6881
pm_range_node
RangeNode.
Definition ast.h:6907
pm_range_node::right
struct pm_node * right
RangeNode::right.
Definition ast.h:6937
pm_range_node::operator_loc
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6944
pm_range_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6909
pm_range_node::left
struct pm_node * left
RangeNode::left.
Definition ast.h:6923
pm_rational_node
RationalNode.
Definition ast.h:6965
pm_rational_node::base
pm_node_t base
The embedded base node.
Definition ast.h:6967
pm_rational_node::denominator
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6986
pm_rational_node::numerator
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6977
pm_redo_node
RedoNode.
Definition ast.h:7001
pm_redo_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7003
pm_regular_expression_node
RegularExpressionNode.
Definition ast.h:7032
pm_regular_expression_node::closing_loc
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:7050
pm_regular_expression_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7034
pm_regular_expression_node::unescaped
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:7055
pm_regular_expression_node::opening_loc
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:7040
pm_regular_expression_node::content_loc
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:7045
pm_required_keyword_parameter_node
RequiredKeywordParameterNode.
Definition ast.h:7074
pm_required_keyword_parameter_node::name_loc
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7087
pm_required_keyword_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7076
pm_required_keyword_parameter_node::name
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7082
pm_required_parameter_node
RequiredParameterNode.
Definition ast.h:7106
pm_required_parameter_node::name
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7114
pm_required_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7108
pm_rescue_modifier_node
RescueModifierNode.
Definition ast.h:7129
pm_rescue_modifier_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7131
pm_rescue_modifier_node::rescue_expression
struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7147
pm_rescue_modifier_node::keyword_loc
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7142
pm_rescue_modifier_node::expression
struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7137
pm_rescue_node
RescueNode.
Definition ast.h:7167
pm_rescue_node::keyword_loc
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7175
pm_rescue_node::subsequent
struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7205
pm_rescue_node::then_keyword_loc
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7195
pm_rescue_node::operator_loc
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7185
pm_rescue_node::reference
struct pm_node * reference
RescueNode::reference.
Definition ast.h:7190
pm_rescue_node::exceptions
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7180
pm_rescue_node::statements
struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7200
pm_rescue_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7169
pm_rest_parameter_node
RestParameterNode.
Definition ast.h:7224
pm_rest_parameter_node::name
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7232
pm_rest_parameter_node::name_loc
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7237
pm_rest_parameter_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7226
pm_rest_parameter_node::operator_loc
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7242
pm_retry_node
RetryNode.
Definition ast.h:7257
pm_retry_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7259
pm_return_node
ReturnNode.
Definition ast.h:7275
pm_return_node::keyword_loc
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7283
pm_return_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7277
pm_return_node::arguments
struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7288
pm_self_node
SelfNode.
Definition ast.h:7303
pm_self_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7305
pm_shareable_constant_node
ShareableConstantNode.
Definition ast.h:7327
pm_shareable_constant_node::write
struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7337
pm_shareable_constant_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7329
pm_singleton_class_node
SingletonClassNode.
Definition ast.h:7352
pm_singleton_class_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7354
pm_singleton_class_node::locals
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7360
pm_singleton_class_node::operator_loc
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7370
pm_singleton_class_node::expression
struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7375
pm_singleton_class_node::end_keyword_loc
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7385
pm_singleton_class_node::class_keyword_loc
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7365
pm_singleton_class_node::body
struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7380
pm_source_encoding_node
SourceEncodingNode.
Definition ast.h:7400
pm_source_encoding_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7402
pm_source_file_node
SourceFileNode.
Definition ast.h:7424
pm_source_file_node::filepath
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7434
pm_source_file_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7426
pm_source_line_node
SourceLineNode.
Definition ast.h:7449
pm_source_line_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7451
pm_splat_node
SplatNode.
Definition ast.h:7467
pm_splat_node::expression
struct pm_node * expression
SplatNode::expression.
Definition ast.h:7480
pm_splat_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7469
pm_splat_node::operator_loc
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7475
pm_statements_node
StatementsNode.
Definition ast.h:7495
pm_statements_node::body
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7503
pm_statements_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7497
pm_string_node
StringNode.
Definition ast.h:7530
pm_string_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7532
pm_string_node::unescaped
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7553
pm_string_node::content_loc
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7543
pm_string_node::closing_loc
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7548
pm_string_node::opening_loc
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7538
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:7573
pm_super_node::arguments
struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7593
pm_super_node::lparen_loc
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7586
pm_super_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7575
pm_super_node::keyword_loc
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7581
pm_super_node::rparen_loc
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7598
pm_super_node::block
struct pm_node * block
SuperNode::block.
Definition ast.h:7603
pm_symbol_node
SymbolNode.
Definition ast.h:7626
pm_symbol_node::opening_loc
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7634
pm_symbol_node::value_loc
pm_location_t value_loc
SymbolNode::value_loc.
Definition ast.h:7639
pm_symbol_node::closing_loc
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7644
pm_symbol_node::unescaped
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7649
pm_symbol_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7628
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:7664
pm_true_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7666
pm_undef_node
UndefNode.
Definition ast.h:7682
pm_undef_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7684
pm_undef_node::keyword_loc
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7695
pm_undef_node::names
struct pm_node_list names
UndefNode::names.
Definition ast.h:7690
pm_unless_node
UnlessNode.
Definition ast.h:7713
pm_unless_node::keyword_loc
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition ast.h:7729
pm_unless_node::then_keyword_loc
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7752
pm_unless_node::end_keyword_loc
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7783
pm_unless_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7715
pm_unless_node::statements
struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7763
pm_unless_node::predicate
struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7742
pm_unless_node::else_clause
struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7773
pm_until_node
UntilNode.
Definition ast.h:7804
pm_until_node::statements
struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7832
pm_until_node::closing_loc
pm_location_t closing_loc
UntilNode::closing_loc.
Definition ast.h:7822
pm_until_node::predicate
struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7827
pm_until_node::keyword_loc
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition ast.h:7812
pm_until_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7806
pm_until_node::do_keyword_loc
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7817
pm_when_node
WhenNode.
Definition ast.h:7849
pm_when_node::statements
struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7872
pm_when_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7851
pm_when_node::then_keyword_loc
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7867
pm_when_node::keyword_loc
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition ast.h:7857
pm_when_node::conditions
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7862
pm_while_node
WhileNode.
Definition ast.h:7893
pm_while_node::closing_loc
pm_location_t closing_loc
WhileNode::closing_loc.
Definition ast.h:7911
pm_while_node::keyword_loc
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition ast.h:7901
pm_while_node::statements
struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7921
pm_while_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7895
pm_while_node::do_keyword_loc
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7906
pm_while_node::predicate
struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7916
pm_x_string_node
XStringNode.
Definition ast.h:7940
pm_x_string_node::closing_loc
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7958
pm_x_string_node::opening_loc
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7948
pm_x_string_node::content_loc
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7953
pm_x_string_node::unescaped
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7963
pm_x_string_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7942
pm_yield_node
YieldNode.
Definition ast.h:7978
pm_yield_node::keyword_loc
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7986
pm_yield_node::lparen_loc
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7991
pm_yield_node::base
pm_node_t base
The embedded base node.
Definition ast.h:7980
pm_yield_node::rparen_loc
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:8001
pm_yield_node::arguments
struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7996