Ruby  3.4.0dev (2024-11-05 revision 348a53415339076afc4a02fcd09f3ae36e9c4c61)
ast.h
Go to the documentation of this file.
1 /*----------------------------------------------------------------------------*/
2 /* This file is generated by the templates/template.rb script and should not */
3 /* be modified manually. See */
4 /* templates/include/prism/ast.h.erb */
5 /* if you are looking to modify the */
6 /* template */
7 /*----------------------------------------------------------------------------*/
8 
14 #ifndef PRISM_AST_H
15 #define PRISM_AST_H
16 
17 #include "prism/defines.h"
19 #include "prism/util/pm_integer.h"
20 #include "prism/util/pm_string.h"
21 
22 #include <assert.h>
23 #include <stddef.h>
24 #include <stdint.h>
25 
29 typedef enum pm_token_type {
32 
35 
38 
41 
44 
47 
50 
53 
56 
59 
62 
65 
68 
71 
74 
77 
80 
83 
86 
89 
92 
95 
98 
101 
104 
107 
110 
113 
116 
119 
122 
125 
128 
131 
134 
137 
140 
143 
146 
149 
152 
155 
158 
161 
164 
167 
170 
173 
176 
179 
182 
185 
188 
191 
194 
197 
200 
203 
206 
209 
212 
215 
218 
221 
224 
227 
230 
233 
236 
239 
242 
245 
248 
251 
254 
257 
260 
263 
266 
269 
272 
275 
278 
281 
284 
287 
290 
293 
296 
299 
302 
305 
308 
311 
314 
317 
320 
323 
326 
329 
332 
335 
338 
341 
344 
347 
350 
353 
356 
359 
362 
365 
368 
371 
374 
377 
380 
383 
386 
389 
392 
395 
398 
401 
404 
407 
410 
413 
416 
419 
422 
425 
428 
431 
434 
437 
440 
443 
446 
449 
452 
455 
458 
461 
464 
467 
470 
473 
476 
479 
482 
485 
488 
491 
494 
497 
500 
503 
506 
509 
512 
515 
518 
521 
525 
530 typedef struct {
533 
535  const uint8_t *start;
536 
538  const uint8_t *end;
539 } pm_token_t;
540 
545 typedef struct {
547  const uint8_t *start;
548 
550  const uint8_t *end;
551 } pm_location_t;
552 
553 struct pm_node;
554 
558 typedef struct pm_node_list {
560  size_t size;
561 
563  size_t capacity;
564 
566  struct pm_node **nodes;
568 
575 
578 
581 
584 
587 
590 
593 
596 
599 
602 
605 
608 
611 
614 
617 
620 
623 
626 
629 
632 
635 
638 
641 
644 
647 
650 
653 
656 
659 
662 
665 
668 
671 
674 
677 
680 
683 
686 
689 
692 
695 
698 
701 
704 
707 
710 
713 
716 
719 
722 
725 
728 
731 
734 
737 
740 
743 
746 
749 
752 
755 
758 
761 
764 
767 
770 
773 
776 
779 
782 
785 
788 
791 
794 
797 
800 
803 
806 
809 
812 
815 
818 
821 
824 
827 
830 
833 
836 
839 
842 
845 
848 
851 
854 
857 
860 
863 
866 
869 
872 
875 
878 
881 
884 
887 
890 
893 
895  PM_NIL_NODE = 108,
896 
899 
902 
905 
908 
911 
913  PM_OR_NODE = 114,
914 
917 
920 
923 
926 
929 
932 
935 
938 
941 
944 
947 
950 
953 
956 
959 
962 
965 
968 
971 
974 
977 
980 
983 
986 
989 
992 
995 
998 
1001 
1004 
1007 
1010 
1013 
1016 
1019 
1022 
1025 
1028 };
1029 
1034 typedef uint16_t pm_node_type_t;
1035 
1040 typedef uint16_t pm_node_flags_t;
1041 
1047 static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1048 
1053 #define PM_NODE_TYPE(node) ((enum pm_node_type) (node)->type)
1054 
1058 #define PM_NODE_TYPE_P(node, type) (PM_NODE_TYPE(node) == (type))
1059 
1063 #define PM_NODE_FLAG_P(node, flag) ((((pm_node_t *)(node))->flags & (flag)) != 0)
1064 
1069 typedef struct pm_node {
1075 
1081 
1086  uint32_t node_id;
1087 
1094 
1110 
1111 
1121 
1131 
1142 
1155 typedef struct pm_alias_method_node {
1158 
1159 
1175 
1191 
1197 
1213 
1214 
1223  struct pm_node *left;
1224 
1233  struct pm_node *right;
1234 
1245 
1258 typedef struct pm_and_node {
1261 
1262 
1274  struct pm_node *left;
1275 
1287  struct pm_node *right;
1288 
1299 
1319 typedef struct pm_arguments_node {
1322 
1323 
1327  struct pm_node_list arguments;
1329 
1345 typedef struct pm_array_node {
1348 
1349 
1355  struct pm_node_list elements;
1356 
1368 
1381 
1406 typedef struct pm_array_pattern_node {
1409 
1410 
1415 
1419  struct pm_node_list requireds;
1420 
1424  struct pm_node *rest;
1425 
1429  struct pm_node_list posts;
1430 
1435 
1441 
1454 typedef struct pm_assoc_node {
1457 
1458 
1473  struct pm_node *key;
1474 
1486  struct pm_node *value;
1487 
1498 
1511 typedef struct pm_assoc_splat_node {
1514 
1515 
1524  struct pm_node *value;
1525 
1536 
1552 
1553 
1565 
1580 typedef struct pm_begin_node {
1583 
1584 
1589 
1594 
1599 
1604 
1609 
1615 
1628 typedef struct pm_block_argument_node {
1631 
1632 
1637 
1643 
1662 
1663 
1669 
1682 typedef struct pm_block_node {
1685 
1686 
1691 
1696 
1700  struct pm_node *body;
1701 
1706 
1712 
1729 typedef struct pm_block_parameter_node {
1732 
1733 
1738 
1743 
1749 
1769 
1770 
1775 
1779  struct pm_node_list locals;
1780 
1785 
1791 
1804 typedef struct pm_break_node {
1807 
1808 
1818 
1829 
1848 typedef struct pm_call_and_write_node {
1851 
1852 
1857 
1862 
1867 
1872 
1877 
1882 
1886  struct pm_node *value;
1888 
1922 typedef struct pm_call_node {
1925 
1926 
1942 
1947 
1952 
1957 
1962 
1967 
1972 
1976  struct pm_node *block;
1978 
2000 
2001 
2006 
2011 
2016 
2021 
2026 
2031 
2036 
2040  struct pm_node *value;
2042 
2061 typedef struct pm_call_or_write_node {
2064 
2065 
2070 
2075 
2080 
2085 
2090 
2095 
2099  struct pm_node *value;
2101 
2128 typedef struct pm_call_target_node {
2131 
2132 
2137 
2142 
2147 
2153 
2166 typedef struct pm_capture_pattern_node {
2169 
2170 
2174  struct pm_node *value;
2175 
2180 
2186 
2201 typedef struct pm_case_match_node {
2204 
2205 
2210 
2214  struct pm_node_list conditions;
2215 
2220 
2225 
2231 
2246 typedef struct pm_case_node {
2249 
2250 
2255 
2259  struct pm_node_list conditions;
2260 
2265 
2270 
2276 
2289 typedef struct pm_class_node {
2292 
2293 
2298 
2303 
2308 
2313 
2318 
2322  struct pm_node *body;
2323 
2328 
2334 
2350 
2351 
2356 
2361 
2366 
2370  struct pm_node *value;
2372 
2388 
2389 
2394 
2399 
2404 
2408  struct pm_node *value;
2409 
2415 
2431 
2432 
2437 
2442 
2447 
2451  struct pm_node *value;
2453 
2469 
2470 
2482 
2498 
2499 
2505 
2521 
2522 
2533 
2543 
2555  struct pm_node *value;
2556 
2567 
2583 
2584 
2589 
2594 
2599 
2603  struct pm_node *value;
2605 
2621 
2622 
2627 
2632 
2637 
2641  struct pm_node *value;
2642 
2648 
2664 
2665 
2670 
2675 
2680 
2684  struct pm_node *value;
2686 
2702 
2703 
2708 
2713 
2717  struct pm_node *value;
2719 
2732 typedef struct pm_constant_path_node {
2735 
2736 
2751  struct pm_node *parent;
2752 
2759 
2772 
2786 
2802 
2803 
2808 
2813 
2817  struct pm_node *value;
2818 
2824 
2840 
2841 
2846 
2851 
2855  struct pm_node *value;
2857 
2873 
2874 
2878  struct pm_node *parent;
2879 
2884 
2889 
2895 
2917 
2918 
2931 
2941 
2950  struct pm_node *value;
2952 
2965 typedef struct pm_constant_read_node {
2968 
2969 
2981 
2994 typedef struct pm_constant_target_node {
2997 
2998 
3004 
3017 typedef struct pm_constant_write_node {
3020 
3021 
3032 
3042 
3054  struct pm_node *value;
3055 
3066 
3080 typedef struct pm_def_node {
3083 
3084 
3089 
3094 
3099 
3104 
3108  struct pm_node *body;
3109 
3114 
3119 
3124 
3129 
3134 
3139 
3145 
3158 typedef struct pm_defined_node {
3161 
3162 
3167 
3171  struct pm_node *value;
3172 
3177 
3183 
3196 typedef struct pm_else_node {
3199 
3200 
3205 
3210 
3216 
3232 
3233 
3238 
3243 
3249 
3265 
3266 
3271 
3277 
3294 typedef struct pm_ensure_node {
3297 
3298 
3303 
3308 
3314 
3327 typedef struct pm_false_node {
3330 
3332 
3351 typedef struct pm_find_pattern_node {
3354 
3355 
3360 
3365 
3369  struct pm_node_list requireds;
3370 
3374  struct pm_node *right;
3375 
3380 
3386 
3402 typedef struct pm_flip_flop_node {
3405 
3406 
3410  struct pm_node *left;
3411 
3415  struct pm_node *right;
3416 
3422 
3435 typedef struct pm_float_node {
3438 
3439 
3445  double value;
3447 
3460 typedef struct pm_for_node {
3463 
3464 
3473  struct pm_node *index;
3474 
3484 
3496 
3506 
3516 
3526 
3537 
3555 
3557 
3574 
3576 
3592 
3593 
3599 
3615 
3616 
3621 
3626 
3631 
3635  struct pm_node *value;
3637 
3653 
3654 
3659 
3664 
3669 
3673  struct pm_node *value;
3674 
3680 
3696 
3697 
3702 
3707 
3712 
3716  struct pm_node *value;
3718 
3734 
3735 
3747 
3763 
3764 
3770 
3786 
3787 
3798 
3808 
3820  struct pm_node *value;
3821 
3832 
3845 typedef struct pm_hash_node {
3848 
3849 
3859 
3871  struct pm_node_list elements;
3872 
3883 
3899 typedef struct pm_hash_pattern_node {
3902 
3903 
3908 
3912  struct pm_node_list elements;
3913 
3917  struct pm_node *rest;
3918 
3923 
3929 
3948 typedef struct pm_if_node {
3951 
3952 
3964 
3982 
3995 
4009 
4028 
4041 
4054 typedef struct pm_imaginary_node {
4057 
4058 
4062  struct pm_node *numeric;
4064 
4083 typedef struct pm_implicit_node {
4086 
4087 
4091  struct pm_node *value;
4093 
4115 typedef struct pm_implicit_rest_node {
4118 
4120 
4133 typedef struct pm_in_node {
4136 
4137 
4141  struct pm_node *pattern;
4142 
4147 
4152 
4158 
4177 typedef struct pm_index_and_write_node {
4180 
4181 
4186 
4191 
4196 
4201 
4206 
4211 
4216 
4220  struct pm_node *value;
4222 
4244 
4245 
4250 
4255 
4260 
4265 
4270 
4275 
4280 
4285 
4289  struct pm_node *value;
4291 
4310 typedef struct pm_index_or_write_node {
4313 
4314 
4319 
4324 
4329 
4334 
4339 
4344 
4349 
4353  struct pm_node *value;
4355 
4382 typedef struct pm_index_target_node {
4385 
4386 
4391 
4396 
4401 
4406 
4412 
4428 
4429 
4434 
4439 
4444 
4448  struct pm_node *value;
4450 
4466 
4467 
4472 
4477 
4482 
4486  struct pm_node *value;
4487 
4493 
4509 
4510 
4515 
4520 
4525 
4529  struct pm_node *value;
4531 
4547 
4548 
4560 
4576 
4577 
4583 
4599 
4600 
4611 
4621 
4633  struct pm_node *value;
4634 
4645 
4664 typedef struct pm_integer_node {
4667 
4668 
4676 
4705 
4706 
4711 
4715  struct pm_node_list parts;
4716 
4722 
4751 
4752 
4757 
4761  struct pm_node_list parts;
4762 
4768 
4788 
4789 
4794 
4798  struct pm_node_list parts;
4799 
4805 
4821 
4822 
4827 
4831  struct pm_node_list parts;
4832 
4838 
4854 
4855 
4860 
4864  struct pm_node_list parts;
4865 
4871 
4887 
4889 
4902 typedef struct pm_it_parameters_node {
4905 
4907 
4923 typedef struct pm_keyword_hash_node {
4926 
4927 
4931  struct pm_node_list elements;
4933 
4953 
4954 
4959 
4964 
4970 
4983 typedef struct pm_lambda_node {
4986 
4987 
4992 
4997 
5002 
5007 
5012 
5016  struct pm_node *body;
5018 
5034 
5035 
5040 
5045 
5049  struct pm_node *value;
5050 
5055 
5059  uint32_t depth;
5061 
5077 
5078 
5083 
5088 
5092  struct pm_node *value;
5093 
5098 
5103 
5107  uint32_t depth;
5109 
5125 
5126 
5131 
5136 
5140  struct pm_node *value;
5141 
5146 
5150  uint32_t depth;
5152 
5168 
5169 
5184 
5196  uint32_t depth;
5198 
5214 
5215 
5220 
5224  uint32_t depth;
5226 
5242 
5243 
5254 
5266  uint32_t depth;
5267 
5277 
5293  struct pm_node *value;
5294 
5305 
5331 typedef struct pm_match_last_line_node {
5334 
5335 
5340 
5345 
5350 
5356 
5369 typedef struct pm_match_predicate_node {
5372 
5373 
5377  struct pm_node *value;
5378 
5382  struct pm_node *pattern;
5383 
5389 
5402 typedef struct pm_match_required_node {
5405 
5406 
5410  struct pm_node *value;
5411 
5415  struct pm_node *pattern;
5416 
5422 
5435 typedef struct pm_match_write_node {
5438 
5439 
5444 
5448  struct pm_node_list targets;
5450 
5460 typedef struct pm_missing_node {
5463 
5465 
5478 typedef struct pm_module_node {
5481 
5482 
5487 
5492 
5497 
5501  struct pm_node *body;
5502 
5507 
5513 
5531 typedef struct pm_multi_target_node {
5534 
5535 
5549  struct pm_node_list lefts;
5550 
5569  struct pm_node *rest;
5570 
5579  struct pm_node_list rights;
5580 
5590 
5601 
5614 typedef struct pm_multi_write_node {
5617 
5618 
5632  struct pm_node_list lefts;
5633 
5652  struct pm_node *rest;
5653 
5662  struct pm_node_list rights;
5663 
5673 
5683 
5693 
5702  struct pm_node *value;
5704 
5717 typedef struct pm_next_node {
5720 
5721 
5726 
5732 
5745 typedef struct pm_nil_node {
5748 
5750 
5767 
5768 
5773 
5779 
5795 
5796 
5800  uint8_t maximum;
5802 
5818 
5819 
5831  uint32_t number;
5833 
5853 
5854 
5859 
5864 
5868  struct pm_node *value;
5870 
5890 
5891 
5896 
5901 
5906 
5910  struct pm_node *value;
5912 
5925 typedef struct pm_or_node {
5928 
5929 
5941  struct pm_node *left;
5942 
5954  struct pm_node *right;
5955 
5966 
5980 typedef struct pm_parameters_node {
5983 
5984 
5988  struct pm_node_list requireds;
5989 
5993  struct pm_node_list optionals;
5994 
5998  struct pm_node *rest;
5999 
6003  struct pm_node_list posts;
6004 
6008  struct pm_node_list keywords;
6009 
6014 
6020 
6033 typedef struct pm_parentheses_node {
6036 
6037 
6041  struct pm_node *body;
6042 
6047 
6053 
6069 
6070 
6075 
6080 
6085 
6091 
6104 typedef struct pm_pinned_variable_node {
6107 
6108 
6113 
6119 
6132 typedef struct pm_post_execution_node {
6135 
6136 
6141 
6146 
6151 
6157 
6170 typedef struct pm_pre_execution_node {
6173 
6174 
6179 
6184 
6189 
6195 
6205 typedef struct pm_program_node {
6208 
6209 
6214 
6220 
6239 typedef struct pm_range_node {
6242 
6243 
6255  struct pm_node *left;
6256 
6269  struct pm_node *right;
6270 
6278 
6297 typedef struct pm_rational_node {
6300 
6301 
6310 
6320 
6333 typedef struct pm_redo_node {
6336 
6338 
6367 
6368 
6373 
6378 
6383 
6389 
6409 
6410 
6415 
6421 
6441 
6442 
6448 
6461 typedef struct pm_rescue_modifier_node {
6464 
6465 
6470 
6475 
6481 
6499 typedef struct pm_rescue_node {
6502 
6503 
6508 
6512  struct pm_node_list exceptions;
6513 
6518 
6523 
6528 
6534 
6551 typedef struct pm_rest_parameter_node {
6554 
6555 
6560 
6565 
6571 
6584 typedef struct pm_retry_node {
6587 
6589 
6602 typedef struct pm_return_node {
6605 
6606 
6611 
6617 
6630 typedef struct pm_self_node {
6633 
6635 
6657 
6658 
6664  struct pm_node *write;
6666 
6679 typedef struct pm_singleton_class_node {
6682 
6683 
6688 
6693 
6698 
6703 
6707  struct pm_node *body;
6708 
6714 
6727 typedef struct pm_source_encoding_node {
6730 
6732 
6751 typedef struct pm_source_file_node {
6754 
6755 
6763 
6776 typedef struct pm_source_line_node {
6779 
6781 
6794 typedef struct pm_splat_node {
6797 
6798 
6803 
6809 
6822 typedef struct pm_statements_node {
6825 
6826 
6830  struct pm_node_list body;
6832 
6857 typedef struct pm_string_node {
6860 
6861 
6866 
6871 
6876 
6882 
6898 typedef struct pm_super_node {
6901 
6902 
6907 
6912 
6917 
6922 
6926  struct pm_node *block;
6928 
6949 typedef struct pm_symbol_node {
6952 
6953 
6958 
6963 
6968 
6974 
6987 typedef struct pm_true_node {
6990 
6992 
7005 typedef struct pm_undef_node {
7008 
7009 
7013  struct pm_node_list names;
7014 
7020 
7036 typedef struct pm_unless_node {
7039 
7040 
7053 
7066 
7076 
7087 
7097 
7108 
7127 typedef struct pm_until_node {
7130 
7131 
7136 
7141 
7146 
7152 
7167 typedef struct pm_when_node {
7170 
7171 
7176 
7180  struct pm_node_list conditions;
7181 
7186 
7192 
7211 typedef struct pm_while_node {
7214 
7215 
7220 
7225 
7230 
7236 
7253 typedef struct pm_x_string_node {
7256 
7257 
7262 
7267 
7272 
7278 
7291 typedef struct pm_yield_node {
7294 
7295 
7300 
7305 
7310 
7316 
7323 
7326 
7329 
7332 
7336 
7340 typedef enum pm_array_node_flags {
7344 
7348 typedef enum pm_call_node_flags {
7351 
7354 
7357 
7361 
7365 typedef enum pm_encoding_flags {
7368 
7372 
7379 
7382 
7385 
7389 
7396 
7400 
7408 
7412 typedef enum pm_loop_flags {
7416 
7420 typedef enum pm_parameter_flags {
7424 
7428 typedef enum pm_range_flags {
7432 
7439 
7442 
7445 
7448 
7451 
7454 
7457 
7460 
7463 
7466 
7470 
7477 
7480 
7484 
7488 typedef enum pm_string_flags {
7491 
7494 
7497 
7501 
7505 typedef enum pm_symbol_flags {
7508 
7511 
7515 
7522 #define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
7523 
7524 #endif
struct pm_block_parameter_node pm_block_parameter_node_t
BlockParameterNode.
struct pm_call_target_node pm_call_target_node_t
CallTargetNode.
struct pm_else_node pm_else_node_t
ElseNode.
struct pm_assoc_node pm_assoc_node_t
AssocNode.
struct pm_undef_node pm_undef_node_t
UndefNode.
struct pm_class_variable_and_write_node pm_class_variable_and_write_node_t
ClassVariableAndWriteNode.
struct pm_index_and_write_node pm_index_and_write_node_t
IndexAndWriteNode.
struct pm_index_target_node pm_index_target_node_t
IndexTargetNode.
struct pm_local_variable_target_node pm_local_variable_target_node_t
LocalVariableTargetNode.
struct pm_constant_path_or_write_node pm_constant_path_or_write_node_t
ConstantPathOrWriteNode.
struct pm_missing_node pm_missing_node_t
MissingNode.
struct pm_embedded_statements_node pm_embedded_statements_node_t
EmbeddedStatementsNode.
struct pm_block_node pm_block_node_t
BlockNode.
struct pm_hash_pattern_node pm_hash_pattern_node_t
HashPatternNode.
struct pm_optional_parameter_node pm_optional_parameter_node_t
OptionalParameterNode.
struct pm_x_string_node pm_x_string_node_t
XStringNode.
struct pm_forwarding_super_node pm_forwarding_super_node_t
ForwardingSuperNode.
struct pm_self_node pm_self_node_t
SelfNode.
struct pm_numbered_reference_read_node pm_numbered_reference_read_node_t
NumberedReferenceReadNode.
struct pm_embedded_variable_node pm_embedded_variable_node_t
EmbeddedVariableNode.
struct pm_class_variable_write_node pm_class_variable_write_node_t
ClassVariableWriteNode.
struct pm_interpolated_string_node pm_interpolated_string_node_t
InterpolatedStringNode.
struct pm_class_variable_or_write_node pm_class_variable_or_write_node_t
ClassVariableOrWriteNode.
struct pm_optional_keyword_parameter_node pm_optional_keyword_parameter_node_t
OptionalKeywordParameterNode.
struct pm_call_or_write_node pm_call_or_write_node_t
CallOrWriteNode.
struct pm_call_node pm_call_node_t
CallNode.
struct pm_class_variable_read_node pm_class_variable_read_node_t
ClassVariableReadNode.
struct pm_match_required_node pm_match_required_node_t
MatchRequiredNode.
struct pm_shareable_constant_node pm_shareable_constant_node_t
ShareableConstantNode.
struct pm_constant_and_write_node pm_constant_and_write_node_t
ConstantAndWriteNode.
pm_interpolated_string_node_flags
Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
Definition: ast.h:7393
@ PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal; only ...
Definition: ast.h:7398
@ PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal; only for...
Definition: ast.h:7395
struct pm_constant_path_operator_write_node pm_constant_path_operator_write_node_t
ConstantPathOperatorWriteNode.
struct pm_implicit_rest_node pm_implicit_rest_node_t
ImplicitRestNode.
pm_range_flags
Flags for range and flip-flop nodes.
Definition: ast.h:7428
@ PM_RANGE_FLAGS_EXCLUDE_END
...
Definition: ast.h:7430
struct pm_local_variable_or_write_node pm_local_variable_or_write_node_t
LocalVariableOrWriteNode.
struct pm_local_variable_read_node pm_local_variable_read_node_t
LocalVariableReadNode.
struct pm_global_variable_and_write_node pm_global_variable_and_write_node_t
GlobalVariableAndWriteNode.
struct pm_arguments_node pm_arguments_node_t
ArgumentsNode.
pm_node_type
This enum represents every type of node in the Ruby syntax tree.
Definition: ast.h:572
@ PM_DEFINED_NODE
DefinedNode.
Definition: ast.h:709
@ PM_PRE_EXECUTION_NODE
PreExecutionNode.
Definition: ast.h:931
@ PM_RETRY_NODE
RetryNode.
Definition: ast.h:964
@ PM_REDO_NODE
RedoNode.
Definition: ast.h:943
@ PM_CONSTANT_PATH_WRITE_NODE
ConstantPathWriteNode.
Definition: ast.h:694
@ PM_INDEX_AND_WRITE_NODE
IndexAndWriteNode.
Definition: ast.h:787
@ PM_SOURCE_LINE_NODE
SourceLineNode.
Definition: ast.h:985
@ PM_UNLESS_NODE
UnlessNode.
Definition: ast.h:1009
@ PM_EMBEDDED_VARIABLE_NODE
EmbeddedVariableNode.
Definition: ast.h:718
@ PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOperatorWriteNode.
Definition: ast.h:751
@ PM_CALL_NODE
CallNode.
Definition: ast.h:628
@ PM_NIL_NODE
NilNode.
Definition: ast.h:895
@ PM_GLOBAL_VARIABLE_READ_NODE
GlobalVariableReadNode.
Definition: ast.h:757
@ PM_RATIONAL_NODE
RationalNode.
Definition: ast.h:940
@ PM_YIELD_NODE
YieldNode.
Definition: ast.h:1024
@ PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableAndWriteNode.
Definition: ast.h:850
@ PM_CONSTANT_AND_WRITE_NODE
ConstantAndWriteNode.
Definition: ast.h:670
@ PM_CLASS_NODE
ClassNode.
Definition: ast.h:649
@ PM_FIND_PATTERN_NODE
FindPatternNode.
Definition: ast.h:727
@ PM_CALL_OPERATOR_WRITE_NODE
CallOperatorWriteNode.
Definition: ast.h:631
@ PM_MATCH_WRITE_NODE
MatchWriteNode.
Definition: ast.h:877
@ PM_ARRAY_NODE
ArrayNode.
Definition: ast.h:589
@ PM_CONSTANT_PATH_TARGET_NODE
ConstantPathTargetNode.
Definition: ast.h:691
@ PM_PROGRAM_NODE
ProgramNode.
Definition: ast.h:934
@ PM_OR_NODE
OrNode.
Definition: ast.h:913
@ PM_MULTI_WRITE_NODE
MultiWriteNode.
Definition: ast.h:889
@ PM_IF_NODE
IfNode.
Definition: ast.h:772
@ PM_IMPLICIT_NODE
ImplicitNode.
Definition: ast.h:778
@ PM_ARGUMENTS_NODE
ArgumentsNode.
Definition: ast.h:586
@ PM_FORWARDING_SUPER_NODE
ForwardingSuperNode.
Definition: ast.h:745
@ PM_WHILE_NODE
WhileNode.
Definition: ast.h:1018
@ PM_INTERPOLATED_STRING_NODE
InterpolatedStringNode.
Definition: ast.h:826
@ PM_FALSE_NODE
FalseNode.
Definition: ast.h:724
@ PM_FORWARDING_PARAMETER_NODE
ForwardingParameterNode.
Definition: ast.h:742
@ PM_BLOCK_LOCAL_VARIABLE_NODE
BlockLocalVariableNode.
Definition: ast.h:610
@ PM_HASH_NODE
HashNode.
Definition: ast.h:766
@ PM_UNTIL_NODE
UntilNode.
Definition: ast.h:1012
@ PM_MATCH_PREDICATE_NODE
MatchPredicateNode.
Definition: ast.h:871
@ PM_X_STRING_NODE
XStringNode.
Definition: ast.h:1021
@ PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
LocalVariableOperatorWriteNode.
Definition: ast.h:853
@ PM_LOCAL_VARIABLE_OR_WRITE_NODE
LocalVariableOrWriteNode.
Definition: ast.h:856
@ PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableAndWriteNode.
Definition: ast.h:799
@ PM_GLOBAL_VARIABLE_TARGET_NODE
GlobalVariableTargetNode.
Definition: ast.h:760
@ PM_AND_NODE
AndNode.
Definition: ast.h:583
@ PM_CONSTANT_TARGET_NODE
ConstantTargetNode.
Definition: ast.h:700
@ PM_IT_LOCAL_VARIABLE_READ_NODE
ItLocalVariableReadNode.
Definition: ast.h:835
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
Definition: ast.h:679
@ PM_IN_NODE
InNode.
Definition: ast.h:784
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
Definition: ast.h:616
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
Definition: ast.h:640
@ PM_SOURCE_FILE_NODE
SourceFileNode.
Definition: ast.h:982
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
Definition: ast.h:898
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
Definition: ast.h:685
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
Definition: ast.h:886
@ PM_SPLAT_NODE
SplatNode.
Definition: ast.h:988
@ PM_LAMBDA_NODE
LambdaNode.
Definition: ast.h:847
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
Definition: ast.h:661
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
Definition: ast.h:949
@ PM_CALL_TARGET_NODE
CallTargetNode.
Definition: ast.h:637
@ PM_ELSE_NODE
ElseNode.
Definition: ast.h:712
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
Definition: ast.h:820
@ PM_WHEN_NODE
WhenNode.
Definition: ast.h:1015
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
Definition: ast.h:901
@ PM_SYMBOL_NODE
SymbolNode.
Definition: ast.h:1000
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
Definition: ast.h:955
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
Definition: ast.h:577
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
Definition: ast.h:874
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
Definition: ast.h:739
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
Definition: ast.h:601
@ PM_SCOPE_NODE
A special kind of node used for compilation.
Definition: ast.h:1027
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
Definition: ast.h:607
@ PM_MISSING_NODE
MissingNode.
Definition: ast.h:880
@ PM_SELF_NODE
SelfNode.
Definition: ast.h:970
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
Definition: ast.h:781
@ PM_TRUE_NODE
TrueNode.
Definition: ast.h:1003
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
Definition: ast.h:598
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
Definition: ast.h:652
@ PM_RANGE_NODE
RangeNode.
Definition: ast.h:937
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
Definition: ast.h:802
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
Definition: ast.h:859
@ PM_SHAREABLE_CONSTANT_NODE
ShareableConstantNode.
Definition: ast.h:973
@ PM_NEXT_NODE
NextNode.
Definition: ast.h:892
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
Definition: ast.h:805
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
Definition: ast.h:946
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
Definition: ast.h:658
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
Definition: ast.h:619
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
Definition: ast.h:703
@ PM_HASH_PATTERN_NODE
HashPatternNode.
Definition: ast.h:769
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
Definition: ast.h:790
@ PM_UNDEF_NODE
UndefNode.
Definition: ast.h:1006
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
Definition: ast.h:580
@ PM_ENSURE_NODE
EnsureNode.
Definition: ast.h:721
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
Definition: ast.h:865
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
Definition: ast.h:976
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
Definition: ast.h:841
@ PM_PARENTHESES_NODE
ParenthesesNode.
Definition: ast.h:919
@ PM_FOR_NODE
ForNode.
Definition: ast.h:736
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
Definition: ast.h:667
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
Definition: ast.h:928
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
Definition: ast.h:673
@ PM_RETURN_NODE
ReturnNode.
Definition: ast.h:967
@ PM_MODULE_NODE
ModuleNode.
Definition: ast.h:883
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
Definition: ast.h:592
@ PM_SUPER_NODE
SuperNode.
Definition: ast.h:997
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
Definition: ast.h:868
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
Definition: ast.h:682
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
Definition: ast.h:829
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
Definition: ast.h:625
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
Definition: ast.h:907
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
Definition: ast.h:664
@ PM_CASE_MATCH_NODE
CaseMatchNode.
Definition: ast.h:643
@ PM_BREAK_NODE
BreakNode.
Definition: ast.h:622
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
Definition: ast.h:634
@ PM_IMAGINARY_NODE
ImaginaryNode.
Definition: ast.h:775
@ PM_DEF_NODE
DefNode.
Definition: ast.h:706
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
Definition: ast.h:697
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
Definition: ast.h:763
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
Definition: ast.h:979
@ PM_BEGIN_NODE
BeginNode.
Definition: ast.h:604
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
Definition: ast.h:832
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
Definition: ast.h:808
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
Definition: ast.h:730
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
Definition: ast.h:925
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
Definition: ast.h:952
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
Definition: ast.h:814
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
Definition: ast.h:811
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
Definition: ast.h:748
@ PM_CASE_NODE
CaseNode.
Definition: ast.h:646
@ PM_RESCUE_NODE
RescueNode.
Definition: ast.h:958
@ PM_FLOAT_NODE
FloatNode.
Definition: ast.h:733
@ PM_ASSOC_NODE
AssocNode.
Definition: ast.h:595
@ PM_IT_PARAMETERS_NODE
ItParametersNode.
Definition: ast.h:838
@ PM_INTEGER_NODE
IntegerNode.
Definition: ast.h:817
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
Definition: ast.h:862
@ PM_STRING_NODE
StringNode.
Definition: ast.h:994
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
Definition: ast.h:793
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
Definition: ast.h:574
@ PM_PARAMETERS_NODE
ParametersNode.
Definition: ast.h:916
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
Definition: ast.h:904
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
Definition: ast.h:688
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
Definition: ast.h:754
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
Definition: ast.h:676
@ PM_STATEMENTS_NODE
StatementsNode.
Definition: ast.h:991
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
Definition: ast.h:910
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
Definition: ast.h:922
@ PM_BLOCK_NODE
BlockNode.
Definition: ast.h:613
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
Definition: ast.h:655
@ PM_REST_PARAMETER_NODE
RestParameterNode.
Definition: ast.h:961
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
Definition: ast.h:715
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
Definition: ast.h:823
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
Definition: ast.h:796
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
Definition: ast.h:844
struct pm_nil_node pm_nil_node_t
NilNode.
struct pm_begin_node pm_begin_node_t
BeginNode.
struct pm_statements_node pm_statements_node_t
StatementsNode.
struct pm_instance_variable_write_node pm_instance_variable_write_node_t
InstanceVariableWriteNode.
struct pm_false_node pm_false_node_t
FalseNode.
struct pm_keyword_hash_node pm_keyword_hash_node_t
KeywordHashNode.
struct pm_return_node pm_return_node_t
ReturnNode.
static const pm_node_flags_t PM_NODE_FLAG_NEWLINE
We store the flags enum in every node in the tree.
Definition: ast.h:1046
pm_symbol_flags
Flags for symbol nodes.
Definition: ast.h:7505
@ PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition: ast.h:7507
@ PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition: ast.h:7513
@ PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition: ast.h:7510
struct pm_it_parameters_node pm_it_parameters_node_t
ItParametersNode.
struct pm_constant_path_node pm_constant_path_node_t
ConstantPathNode.
struct pm_local_variable_write_node pm_local_variable_write_node_t
LocalVariableWriteNode.
pm_string_flags
Flags for string nodes.
Definition: ast.h:7488
@ PM_STRING_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal
Definition: ast.h:7496
@ PM_STRING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition: ast.h:7493
@ PM_STRING_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal
Definition: ast.h:7499
@ PM_STRING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition: ast.h:7490
struct pm_implicit_node pm_implicit_node_t
ImplicitNode.
struct pm_yield_node pm_yield_node_t
YieldNode.
pm_arguments_node_flags
Flags for arguments nodes.
Definition: ast.h:7320
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT
if the arguments contain a splat
Definition: ast.h:7331
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING
if the arguments contain forwarding
Definition: ast.h:7322
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS
if the arguments contain keywords
Definition: ast.h:7325
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
if the arguments contain a keyword splat
Definition: ast.h:7328
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS
if the arguments contain multiple splats
Definition: ast.h:7334
enum pm_symbol_flags pm_symbol_flags_t
Flags for symbol nodes.
enum pm_encoding_flags pm_encoding_flags_t
Flags for nodes that have unescaped content.
struct pm_local_variable_and_write_node pm_local_variable_and_write_node_t
LocalVariableAndWriteNode.
struct pm_parameters_node pm_parameters_node_t
ParametersNode.
enum pm_integer_base_flags pm_integer_base_flags_t
Flags for integer nodes that correspond to the base of the integer.
struct pm_lambda_node pm_lambda_node_t
LambdaNode.
struct pm_module_node pm_module_node_t
ModuleNode.
struct pm_case_node pm_case_node_t
CaseNode.
struct pm_in_node pm_in_node_t
InNode.
struct pm_if_node pm_if_node_t
IfNode.
struct pm_constant_path_write_node pm_constant_path_write_node_t
ConstantPathWriteNode.
struct pm_pre_execution_node pm_pre_execution_node_t
PreExecutionNode.
struct pm_rescue_modifier_node pm_rescue_modifier_node_t
RescueModifierNode.
struct pm_splat_node pm_splat_node_t
SplatNode.
struct pm_match_write_node pm_match_write_node_t
MatchWriteNode.
enum pm_call_node_flags pm_call_node_flags_t
Flags for call nodes.
struct pm_multi_write_node pm_multi_write_node_t
MultiWriteNode.
struct pm_local_variable_operator_write_node pm_local_variable_operator_write_node_t
LocalVariableOperatorWriteNode.
struct pm_block_argument_node pm_block_argument_node_t
BlockArgumentNode.
enum pm_shareable_constant_node_flags pm_shareable_constant_node_flags_t
Flags for shareable constant nodes.
struct pm_interpolated_x_string_node pm_interpolated_x_string_node_t
InterpolatedXStringNode.
struct pm_constant_write_node pm_constant_write_node_t
ConstantWriteNode.
struct pm_flip_flop_node pm_flip_flop_node_t
FlipFlopNode.
struct pm_required_keyword_parameter_node pm_required_keyword_parameter_node_t
RequiredKeywordParameterNode.
struct pm_no_keywords_parameter_node pm_no_keywords_parameter_node_t
NoKeywordsParameterNode.
struct pm_alias_global_variable_node pm_alias_global_variable_node_t
AliasGlobalVariableNode.
struct pm_post_execution_node pm_post_execution_node_t
PostExecutionNode.
pm_array_node_flags
Flags for array nodes.
Definition: ast.h:7340
@ PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
if array contains splat nodes
Definition: ast.h:7342
enum pm_string_flags pm_string_flags_t
Flags for string nodes.
struct pm_alias_method_node pm_alias_method_node_t
AliasMethodNode.
struct pm_keyword_rest_parameter_node pm_keyword_rest_parameter_node_t
KeywordRestParameterNode.
struct pm_global_variable_read_node pm_global_variable_read_node_t
GlobalVariableReadNode.
struct pm_back_reference_read_node pm_back_reference_read_node_t
BackReferenceReadNode.
enum pm_regular_expression_flags pm_regular_expression_flags_t
Flags for regular expression and match last line nodes.
struct pm_match_last_line_node pm_match_last_line_node_t
MatchLastLineNode.
struct pm_hash_node pm_hash_node_t
HashNode.
struct pm_block_local_variable_node pm_block_local_variable_node_t
BlockLocalVariableNode.
struct pm_multi_target_node pm_multi_target_node_t
MultiTargetNode.
pm_integer_base_flags
Flags for integer nodes that correspond to the base of the integer.
Definition: ast.h:7376
@ PM_INTEGER_BASE_FLAGS_HEXADECIMAL
0x prefix
Definition: ast.h:7387
@ PM_INTEGER_BASE_FLAGS_OCTAL
0o or 0 prefix
Definition: ast.h:7384
@ PM_INTEGER_BASE_FLAGS_DECIMAL
0d or no prefix
Definition: ast.h:7381
@ PM_INTEGER_BASE_FLAGS_BINARY
0b prefix
Definition: ast.h:7378
enum pm_interpolated_string_node_flags pm_interpolated_string_node_flags_t
Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
struct pm_rational_node pm_rational_node_t
RationalNode.
struct pm_class_node pm_class_node_t
ClassNode.
struct pm_pinned_expression_node pm_pinned_expression_node_t
PinnedExpressionNode.
struct pm_constant_operator_write_node pm_constant_operator_write_node_t
ConstantOperatorWriteNode.
enum pm_loop_flags pm_loop_flags_t
Flags for while and until loop nodes.
struct pm_ensure_node pm_ensure_node_t
EnsureNode.
struct pm_index_or_write_node pm_index_or_write_node_t
IndexOrWriteNode.
struct pm_forwarding_parameter_node pm_forwarding_parameter_node_t
ForwardingParameterNode.
struct pm_constant_or_write_node pm_constant_or_write_node_t
ConstantOrWriteNode.
struct pm_index_operator_write_node pm_index_operator_write_node_t
IndexOperatorWriteNode.
struct pm_when_node pm_when_node_t
WhenNode.
enum pm_token_type pm_token_type_t
This enum represents every type of token in the Ruby source.
struct pm_super_node pm_super_node_t
SuperNode.
struct pm_range_node pm_range_node_t
RangeNode.
struct pm_and_node pm_and_node_t
AndNode.
enum pm_arguments_node_flags pm_arguments_node_flags_t
Flags for arguments nodes.
struct pm_constant_path_and_write_node pm_constant_path_and_write_node_t
ConstantPathAndWriteNode.
struct pm_rest_parameter_node pm_rest_parameter_node_t
RestParameterNode.
struct pm_assoc_splat_node pm_assoc_splat_node_t
AssocSplatNode.
pm_call_node_flags
Flags for call nodes.
Definition: ast.h:7348
@ PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
a call that ignores method visibility
Definition: ast.h:7359
@ PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
&.
Definition: ast.h:7350
@ PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
a call that is an attribute write, so the value being written should be returned
Definition: ast.h:7356
@ PM_CALL_NODE_FLAGS_VARIABLE_CALL
a call that could have been a local variable
Definition: ast.h:7353
struct pm_constant_read_node pm_constant_read_node_t
ConstantReadNode.
struct pm_match_predicate_node pm_match_predicate_node_t
MatchPredicateNode.
struct pm_or_node pm_or_node_t
OrNode.
struct pm_case_match_node pm_case_match_node_t
CaseMatchNode.
struct pm_call_and_write_node pm_call_and_write_node_t
CallAndWriteNode.
pm_shareable_constant_node_flags
Flags for shareable constant nodes.
Definition: ast.h:7474
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING
constant writes that should be modified with shareable constant value experimental everything
Definition: ast.h:7479
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL
constant writes that should be modified with shareable constant value literal
Definition: ast.h:7476
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY
constant writes that should be modified with shareable constant value experimental copy
Definition: ast.h:7482
struct pm_until_node pm_until_node_t
UntilNode.
struct pm_retry_node pm_retry_node_t
RetryNode.
uint16_t pm_node_type_t
This is the type of node embedded in the node struct.
Definition: ast.h:1034
struct pm_imaginary_node pm_imaginary_node_t
ImaginaryNode.
struct pm_array_pattern_node pm_array_pattern_node_t
ArrayPatternNode.
pm_keyword_hash_node_flags
Flags for keyword hash nodes.
Definition: ast.h:7404
@ PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS
a keyword hash which only has AssocNode elements all with symbol keys, which means the elements can b...
Definition: ast.h:7406
enum pm_keyword_hash_node_flags pm_keyword_hash_node_flags_t
Flags for keyword hash nodes.
struct pm_redo_node pm_redo_node_t
RedoNode.
struct pm_source_encoding_node pm_source_encoding_node_t
SourceEncodingNode.
struct pm_true_node pm_true_node_t
TrueNode.
struct pm_break_node pm_break_node_t
BreakNode.
struct pm_integer_node pm_integer_node_t
IntegerNode.
struct pm_constant_path_target_node pm_constant_path_target_node_t
ConstantPathTargetNode.
struct pm_call_operator_write_node pm_call_operator_write_node_t
CallOperatorWriteNode.
struct pm_for_node pm_for_node_t
ForNode.
enum pm_range_flags pm_range_flags_t
Flags for range and flip-flop nodes.
struct pm_global_variable_target_node pm_global_variable_target_node_t
GlobalVariableTargetNode.
struct pm_node_list pm_node_list_t
A list of nodes in the source, most often used for lists of children.
struct pm_required_parameter_node pm_required_parameter_node_t
RequiredParameterNode.
struct pm_symbol_node pm_symbol_node_t
SymbolNode.
struct pm_block_parameters_node pm_block_parameters_node_t
BlockParametersNode.
struct pm_alternation_pattern_node pm_alternation_pattern_node_t
AlternationPatternNode.
struct pm_parentheses_node pm_parentheses_node_t
ParenthesesNode.
pm_regular_expression_flags
Flags for regular expression and match last line nodes.
Definition: ast.h:7436
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition: ast.h:7465
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition: ast.h:7468
@ PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
e - forces the EUC-JP encoding
Definition: ast.h:7450
@ PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
i - ignores the case of characters when matching
Definition: ast.h:7438
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition: ast.h:7462
@ PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
n - forces the ASCII-8BIT encoding
Definition: ast.h:7453
@ PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
m - allows $ to match the end of lines within strings
Definition: ast.h:7444
@ PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
x - ignores whitespace and allows comments in regular expressions
Definition: ast.h:7441
@ PM_REGULAR_EXPRESSION_FLAGS_ONCE
o - only interpolates values into the regular expression once
Definition: ast.h:7447
@ PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
s - forces the Windows-31J encoding
Definition: ast.h:7456
@ PM_REGULAR_EXPRESSION_FLAGS_UTF_8
u - forces the UTF-8 encoding
Definition: ast.h:7459
struct pm_forwarding_arguments_node pm_forwarding_arguments_node_t
ForwardingArgumentsNode.
struct pm_instance_variable_read_node pm_instance_variable_read_node_t
InstanceVariableReadNode.
struct pm_constant_target_node pm_constant_target_node_t
ConstantTargetNode.
struct pm_node pm_node_t
This is the base structure that represents a node in the syntax tree.
struct pm_defined_node pm_defined_node_t
DefinedNode.
struct pm_it_local_variable_read_node pm_it_local_variable_read_node_t
ItLocalVariableReadNode.
struct pm_interpolated_symbol_node pm_interpolated_symbol_node_t
InterpolatedSymbolNode.
struct pm_class_variable_target_node pm_class_variable_target_node_t
ClassVariableTargetNode.
struct pm_def_node pm_def_node_t
DefNode.
struct pm_singleton_class_node pm_singleton_class_node_t
SingletonClassNode.
uint16_t pm_node_flags_t
These are the flags embedded in the node struct.
Definition: ast.h:1040
struct pm_capture_pattern_node pm_capture_pattern_node_t
CapturePatternNode.
struct pm_source_file_node pm_source_file_node_t
SourceFileNode.
struct pm_regular_expression_node pm_regular_expression_node_t
RegularExpressionNode.
pm_token_type
This enum represents every type of token in the Ruby source.
Definition: ast.h:29
@ PM_TOKEN_STAR_STAR
**
Definition: ast.h:469
@ PM_TOKEN_DOT_DOT_DOT
the ...
Definition: ast.h:124
@ PM_TOKEN_MINUS_EQUAL
-=
Definition: ast.h:385
@ PM_TOKEN_IGNORED_NEWLINE
an ignored newline
Definition: ast.h:196
@ PM_TOKEN_BANG_EQUAL
!=
Definition: ast.h:64
@ PM_TOKEN_KEYWORD___FILE__
FILE
Definition: ast.h:349
@ PM_TOKEN_KEYWORD_WHEN
when
Definition: ast.h:334
@ PM_TOKEN_FLOAT
a floating point number
Definition: ast.h:160
@ PM_TOKEN_PLUS_EQUAL
+=
Definition: ast.h:442
@ PM_TOKEN_DOT_DOT
the .
Definition: ast.h:121
@ PM_TOKEN_UDOT_DOT
unary .
Definition: ast.h:496
@ PM_TOKEN_AMPERSAND_DOT
&.
Definition: ast.h:49
@ PM_TOKEN_NEWLINE
a newline character outside of other tokens
Definition: ast.h:391
@ PM_TOKEN_NUMBERED_REFERENCE
a numbered reference to a capture group in the previous regular expression match
Definition: ast.h:394
@ PM_TOKEN_AMPERSAND
&
Definition: ast.h:40
@ PM_TOKEN_KEYWORD_YIELD
yield
Definition: ast.h:343
@ PM_TOKEN_KEYWORD_END
end
Definition: ast.h:253
@ PM_TOKEN_LAMBDA_BEGIN
{
Definition: ast.h:361
@ PM_TOKEN_KEYWORD_UNTIL_MODIFIER
until in the modifier form
Definition: ast.h:331
@ PM_TOKEN_EQUAL_EQUAL_EQUAL
===
Definition: ast.h:151
@ PM_TOKEN_INTEGER_RATIONAL
an integer with a rational suffix
Definition: ast.h:208
@ PM_TOKEN_USTAR
unary *
Definition: ast.h:511
@ PM_TOKEN_TILDE
~ or ~@
Definition: ast.h:487
@ PM_TOKEN_KEYWORD___ENCODING__
ENCODING
Definition: ast.h:346
@ PM_TOKEN_REGEXP_END
the end of a regular expression
Definition: ast.h:451
@ PM_TOKEN_KEYWORD_UNTIL
until
Definition: ast.h:328
@ PM_TOKEN_COMMA
,
Definition: ast.h:109
@ PM_TOKEN_MAXIMUM
The maximum token value.
Definition: ast.h:523
@ PM_TOKEN_GREATER
Definition: ast.h:175
@ PM_TOKEN_INTEGER
an integer (any base)
Definition: ast.h:202
@ PM_TOKEN_SLASH_EQUAL
/=
Definition: ast.h:460
@ PM_TOKEN_UMINUS_NUM
-@ for a number
Definition: ast.h:505
@ PM_TOKEN_EMBVAR
Definition: ast.h:142
@ PM_TOKEN_KEYWORD_UNLESS_MODIFIER
unless in the modifier form
Definition: ast.h:325
@ PM_TOKEN_INTEGER_RATIONAL_IMAGINARY
an integer with a rational and imaginary suffix
Definition: ast.h:211
@ PM_TOKEN_FLOAT_RATIONAL_IMAGINARY
a floating pointer number with a rational and imaginary suffix
Definition: ast.h:169
@ PM_TOKEN_BRACKET_LEFT_RIGHT
[]
Definition: ast.h:82
@ PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL
&&=
Definition: ast.h:46
@ PM_TOKEN_KEYWORD_CLASS
class
Definition: ast.h:232
@ PM_TOKEN_KEYWORD_BEGIN
begin
Definition: ast.h:220
@ PM_TOKEN_NOT_PROVIDED
a token that was not present but it is okay
Definition: ast.h:37
@ PM_TOKEN_USTAR_STAR
unary **
Definition: ast.h:514
@ PM_TOKEN_GREATER_GREATER_EQUAL
>>=
Definition: ast.h:184
@ PM_TOKEN_PERCENT_EQUAL
%=
Definition: ast.h:409
@ PM_TOKEN_PERCENT
%
Definition: ast.h:406
@ PM_TOKEN_KEYWORD_IN
in
Definition: ast.h:274
@ PM_TOKEN_BANG
! or !@
Definition: ast.h:61
@ PM_TOKEN_KEYWORD_NOT
not
Definition: ast.h:286
@ PM_TOKEN_BRACKET_LEFT_ARRAY
[ for the beginning of an array
Definition: ast.h:79
@ PM_TOKEN_HEREDOC_END
the end of a heredoc
Definition: ast.h:187
@ PM_TOKEN_HEREDOC_START
the start of a heredoc
Definition: ast.h:190
@ PM_TOKEN_KEYWORD_DEFINED
defined?
Definition: ast.h:238
@ PM_TOKEN_UCOLON_COLON
unary ::
Definition: ast.h:493
@ PM_TOKEN_LABEL_END
the end of a label
Definition: ast.h:358
@ PM_TOKEN_EQUAL_GREATER
=>
Definition: ast.h:154
@ PM_TOKEN_KEYWORD_UNLESS
unless
Definition: ast.h:322
@ PM_TOKEN_KEYWORD_ENSURE
ensure
Definition: ast.h:259
@ PM_TOKEN_AMPERSAND_EQUAL
&=
Definition: ast.h:52
@ PM_TOKEN_EQUAL_EQUAL
==
Definition: ast.h:148
@ PM_TOKEN_UPLUS
+@
Definition: ast.h:508
@ PM_TOKEN_FLOAT_IMAGINARY
a floating pointer number with an imaginary suffix
Definition: ast.h:163
@ PM_TOKEN_KEYWORD_BEGIN_UPCASE
BEGIN.
Definition: ast.h:223
@ PM_TOKEN_LESS_EQUAL_GREATER
<=>
Definition: ast.h:370
@ PM_TOKEN_KEYWORD_RESCUE_MODIFIER
rescue in the modifier form
Definition: ast.h:298
@ PM_TOKEN_MISSING
a token that was expected but not found
Definition: ast.h:34
@ PM_TOKEN_MINUS_GREATER
->
Definition: ast.h:388
@ PM_TOKEN_KEYWORD_FALSE
false
Definition: ast.h:262
@ PM_TOKEN_PIPE_PIPE_EQUAL
||=
Definition: ast.h:436
@ PM_TOKEN_KEYWORD_IF
if
Definition: ast.h:268
@ PM_TOKEN_EMBEXPR_BEGIN
#{
Definition: ast.h:136
@ PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES
( for a parentheses node
Definition: ast.h:400
@ PM_TOKEN_EMBDOC_END
=end
Definition: ast.h:130
@ PM_TOKEN_KEYWORD_ELSE
else
Definition: ast.h:247
@ PM_TOKEN_BACK_REFERENCE
a back reference
Definition: ast.h:58
@ PM_TOKEN_BRACKET_LEFT
[
Definition: ast.h:76
@ PM_TOKEN_EOF
final token in the file
Definition: ast.h:31
@ PM_TOKEN_PIPE_PIPE
||
Definition: ast.h:433
@ PM_TOKEN_KEYWORD_NIL
nil
Definition: ast.h:283
@ PM_TOKEN_PERCENT_UPPER_W
W
Definition: ast.h:424
@ PM_TOKEN_KEYWORD_RETURN
return
Definition: ast.h:304
@ PM_TOKEN_CLASS_VARIABLE
a class variable
Definition: ast.h:100
@ PM_TOKEN_PIPE
|
Definition: ast.h:427
@ PM_TOKEN_PARENTHESIS_LEFT
(
Definition: ast.h:397
@ PM_TOKEN_BANG_TILDE
!~
Definition: ast.h:67
@ PM_TOKEN_DOT
the .
Definition: ast.h:118
@ PM_TOKEN_PARENTHESIS_RIGHT
)
Definition: ast.h:403
@ PM_TOKEN_KEYWORD_RESCUE
rescue
Definition: ast.h:295
@ PM_TOKEN_INSTANCE_VARIABLE
an instance variable
Definition: ast.h:199
@ PM_TOKEN_PIPE_EQUAL
|=
Definition: ast.h:430
@ PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL
[]=
Definition: ast.h:85
@ PM_TOKEN_UAMPERSAND
unary &
Definition: ast.h:490
@ PM_TOKEN_MINUS
Definition: ast.h:382
@ PM_TOKEN_CONSTANT
a constant
Definition: ast.h:115
@ PM_TOKEN_IDENTIFIER
an identifier
Definition: ast.h:193
@ PM_TOKEN_EMBDOC_BEGIN
=begin
Definition: ast.h:127
@ PM_TOKEN_STAR_EQUAL
*=
Definition: ast.h:466
@ PM_TOKEN_KEYWORD_OR
or
Definition: ast.h:289
@ PM_TOKEN_KEYWORD_AND
and
Definition: ast.h:217
@ PM_TOKEN_LESS
<
Definition: ast.h:364
@ PM_TOKEN_KEYWORD_BREAK
break
Definition: ast.h:226
@ PM_TOKEN_PERCENT_LOWER_W
w
Definition: ast.h:415
@ PM_TOKEN_SYMBOL_BEGIN
the beginning of a symbol
Definition: ast.h:484
@ PM_TOKEN_METHOD_NAME
a method name
Definition: ast.h:379
@ PM_TOKEN_KEYWORD_CASE
case
Definition: ast.h:229
@ PM_TOKEN_WORDS_SEP
a separator between words in a list
Definition: ast.h:517
@ PM_TOKEN_FLOAT_RATIONAL
a floating pointer number with a rational suffix
Definition: ast.h:166
@ PM_TOKEN_LESS_LESS_EQUAL
<<=
Definition: ast.h:376
@ PM_TOKEN_EMBDOC_LINE
a line inside of embedded documentation
Definition: ast.h:133
@ PM_TOKEN_KEYWORD_SUPER
super
Definition: ast.h:310
@ PM_TOKEN_KEYWORD_DO
do
Definition: ast.h:241
@ PM_TOKEN_KEYWORD_REDO
redo
Definition: ast.h:292
@ PM_TOKEN_EQUAL_TILDE
=~
Definition: ast.h:157
@ PM_TOKEN_EMBEXPR_END
}
Definition: ast.h:139
@ PM_TOKEN_KEYWORD_END_UPCASE
END.
Definition: ast.h:256
@ PM_TOKEN_KEYWORD___LINE__
LINE
Definition: ast.h:352
@ PM_TOKEN_STRING_END
the end of a string
Definition: ast.h:481
@ PM_TOKEN_STRING_CONTENT
the contents of a string
Definition: ast.h:478
@ PM_TOKEN_BRACE_LEFT
{
Definition: ast.h:70
@ PM_TOKEN_COLON_COLON
::
Definition: ast.h:106
@ PM_TOKEN_GREATER_GREATER
Definition: ast.h:181
@ PM_TOKEN_PERCENT_LOWER_X
x
Definition: ast.h:418
@ PM_TOKEN_KEYWORD_SELF
self
Definition: ast.h:307
@ PM_TOKEN_PERCENT_LOWER_I
i
Definition: ast.h:412
@ PM_TOKEN_KEYWORD_ALIAS
alias
Definition: ast.h:214
@ PM_TOKEN_GLOBAL_VARIABLE
a global variable
Definition: ast.h:172
@ PM_TOKEN_KEYWORD_IF_MODIFIER
if in the modifier form
Definition: ast.h:271
@ PM_TOKEN_SLASH
/
Definition: ast.h:457
@ PM_TOKEN_KEYWORD_RETRY
retry
Definition: ast.h:301
@ PM_TOKEN_COLON
:
Definition: ast.h:103
@ PM_TOKEN_KEYWORD_UNDEF
undef
Definition: ast.h:319
@ PM_TOKEN_BRACKET_RIGHT
]
Definition: ast.h:88
@ PM_TOKEN_KEYWORD_FOR
for
Definition: ast.h:265
@ PM_TOKEN_KEYWORD_THEN
then
Definition: ast.h:313
@ PM_TOKEN_QUESTION_MARK
?
Definition: ast.h:445
@ PM_TOKEN___END__
marker for the point in the file at which the parser should stop
Definition: ast.h:520
@ PM_TOKEN_KEYWORD_WHILE
while
Definition: ast.h:337
@ PM_TOKEN_EQUAL
=
Definition: ast.h:145
@ PM_TOKEN_KEYWORD_DEF
def
Definition: ast.h:235
@ PM_TOKEN_UDOT_DOT_DOT
unary ...
Definition: ast.h:499
@ PM_TOKEN_STAR
Definition: ast.h:463
@ PM_TOKEN_KEYWORD_WHILE_MODIFIER
while in the modifier form
Definition: ast.h:340
@ PM_TOKEN_KEYWORD_TRUE
true
Definition: ast.h:316
@ PM_TOKEN_BRACE_RIGHT
}
Definition: ast.h:73
@ PM_TOKEN_SEMICOLON
;
Definition: ast.h:454
@ PM_TOKEN_REGEXP_BEGIN
the beginning of a regular expression
Definition: ast.h:448
@ PM_TOKEN_CARET
^
Definition: ast.h:91
@ PM_TOKEN_PERCENT_UPPER_I
I
Definition: ast.h:421
@ PM_TOKEN_KEYWORD_DO_LOOP
do keyword for a predicate in a while, until, or for loop
Definition: ast.h:244
@ PM_TOKEN_KEYWORD_MODULE
module
Definition: ast.h:277
@ PM_TOKEN_PLUS
Definition: ast.h:439
@ PM_TOKEN_KEYWORD_NEXT
next
Definition: ast.h:280
@ PM_TOKEN_BACKTICK
`
Definition: ast.h:55
@ PM_TOKEN_INTEGER_IMAGINARY
an integer with an imaginary suffix
Definition: ast.h:205
@ PM_TOKEN_LABEL
a label
Definition: ast.h:355
@ PM_TOKEN_STAR_STAR_EQUAL
**=
Definition: ast.h:472
@ PM_TOKEN_CHARACTER_LITERAL
a character literal
Definition: ast.h:97
@ PM_TOKEN_AMPERSAND_AMPERSAND
&&
Definition: ast.h:43
@ PM_TOKEN_UMINUS
-@
Definition: ast.h:502
@ PM_TOKEN_LESS_LESS
<<
Definition: ast.h:373
@ PM_TOKEN_GREATER_EQUAL
>=
Definition: ast.h:178
@ PM_TOKEN_COMMENT
a comment
Definition: ast.h:112
@ PM_TOKEN_CARET_EQUAL
^=
Definition: ast.h:94
@ PM_TOKEN_KEYWORD_ELSIF
elsif
Definition: ast.h:250
@ PM_TOKEN_STRING_BEGIN
the beginning of a string
Definition: ast.h:475
@ PM_TOKEN_LESS_EQUAL
<=
Definition: ast.h:367
struct pm_global_variable_or_write_node pm_global_variable_or_write_node_t
GlobalVariableOrWriteNode.
enum pm_array_node_flags pm_array_node_flags_t
Flags for array nodes.
struct pm_rescue_node pm_rescue_node_t
RescueNode.
struct pm_array_node pm_array_node_t
ArrayNode.
struct pm_while_node pm_while_node_t
WhileNode.
struct pm_global_variable_write_node pm_global_variable_write_node_t
GlobalVariableWriteNode.
struct pm_instance_variable_or_write_node pm_instance_variable_or_write_node_t
InstanceVariableOrWriteNode.
struct pm_source_line_node pm_source_line_node_t
SourceLineNode.
pm_parameter_flags
Flags for parameter nodes.
Definition: ast.h:7420
@ PM_PARAMETER_FLAGS_REPEATED_PARAMETER
a parameter name that has been repeated in the method signature
Definition: ast.h:7422
pm_encoding_flags
Flags for nodes that have unescaped content.
Definition: ast.h:7365
@ PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition: ast.h:7370
@ PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition: ast.h:7367
struct pm_interpolated_match_last_line_node pm_interpolated_match_last_line_node_t
InterpolatedMatchLastLineNode.
struct pm_numbered_parameters_node pm_numbered_parameters_node_t
NumberedParametersNode.
struct pm_class_variable_operator_write_node pm_class_variable_operator_write_node_t
ClassVariableOperatorWriteNode.
struct pm_next_node pm_next_node_t
NextNode.
struct pm_unless_node pm_unless_node_t
UnlessNode.
struct pm_interpolated_regular_expression_node pm_interpolated_regular_expression_node_t
InterpolatedRegularExpressionNode.
struct pm_instance_variable_target_node pm_instance_variable_target_node_t
InstanceVariableTargetNode.
enum pm_parameter_flags pm_parameter_flags_t
Flags for parameter nodes.
struct pm_string_node pm_string_node_t
StringNode.
struct pm_float_node pm_float_node_t
FloatNode.
struct pm_global_variable_operator_write_node pm_global_variable_operator_write_node_t
GlobalVariableOperatorWriteNode.
struct pm_instance_variable_operator_write_node pm_instance_variable_operator_write_node_t
InstanceVariableOperatorWriteNode.
pm_loop_flags
Flags for while and until loop nodes.
Definition: ast.h:7412
@ PM_LOOP_FLAGS_BEGIN_MODIFIER
a loop after a begin statement, so the body is executed first before the condition
Definition: ast.h:7414
struct pm_pinned_variable_node pm_pinned_variable_node_t
PinnedVariableNode.
struct pm_instance_variable_and_write_node pm_instance_variable_and_write_node_t
InstanceVariableAndWriteNode.
struct pm_program_node pm_program_node_t
ProgramNode.
struct pm_find_pattern_node pm_find_pattern_node_t
FindPatternNode.
A data structure that stores a set of strings.
uint32_t pm_constant_id_t
A constant id is a unique identifier for a constant in the constant pool.
This module provides functions for working with arbitrary-sized integers.
A generic string type that can have various ownership semantics.
Macro definitions used throughout the prism library.
AliasGlobalVariableNode.
Definition: ast.h:1107
struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition: ast.h:1130
pm_node_t base
The embedded base node.
Definition: ast.h:1109
struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition: ast.h:1120
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition: ast.h:1140
AliasMethodNode.
Definition: ast.h:1155
struct pm_node * old_name
AliasMethodNode::old_name.
Definition: ast.h:1190
struct pm_node * new_name
AliasMethodNode::new_name.
Definition: ast.h:1174
pm_node_t base
The embedded base node.
Definition: ast.h:1157
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition: ast.h:1195
AlternationPatternNode.
Definition: ast.h:1210
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition: ast.h:1243
struct pm_node * left
AlternationPatternNode::left.
Definition: ast.h:1223
struct pm_node * right
AlternationPatternNode::right.
Definition: ast.h:1233
pm_node_t base
The embedded base node.
Definition: ast.h:1212
AndNode.
Definition: ast.h:1258
struct pm_node * left
AndNode::left.
Definition: ast.h:1274
struct pm_node * right
AndNode::right.
Definition: ast.h:1287
pm_location_t operator_loc
AndNode::operator_loc.
Definition: ast.h:1297
pm_node_t base
The embedded base node.
Definition: ast.h:1260
ArgumentsNode.
Definition: ast.h:1319
pm_node_t base
The embedded base node.
Definition: ast.h:1321
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition: ast.h:1327
ArrayNode.
Definition: ast.h:1345
pm_node_t base
The embedded base node.
Definition: ast.h:1347
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition: ast.h:1379
struct pm_node_list elements
ArrayNode::elements.
Definition: ast.h:1355
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition: ast.h:1367
ArrayPatternNode.
Definition: ast.h:1406
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition: ast.h:1419
struct pm_node * rest
ArrayPatternNode::rest.
Definition: ast.h:1424
struct pm_node * constant
ArrayPatternNode::constant.
Definition: ast.h:1414
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition: ast.h:1434
pm_node_t base
The embedded base node.
Definition: ast.h:1408
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition: ast.h:1439
struct pm_node_list posts
ArrayPatternNode::posts.
Definition: ast.h:1429
AssocNode.
Definition: ast.h:1454
pm_node_t base
The embedded base node.
Definition: ast.h:1456
struct pm_node * value
AssocNode::value.
Definition: ast.h:1486
struct pm_node * key
AssocNode::key.
Definition: ast.h:1473
pm_location_t operator_loc
AssocNode::operator_loc.
Definition: ast.h:1496
AssocSplatNode.
Definition: ast.h:1511
struct pm_node * value
AssocSplatNode::value.
Definition: ast.h:1524
pm_node_t base
The embedded base node.
Definition: ast.h:1513
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition: ast.h:1534
BackReferenceReadNode.
Definition: ast.h:1549
pm_constant_id_t name
BackReferenceReadNode::name.
Definition: ast.h:1563
pm_node_t base
The embedded base node.
Definition: ast.h:1551
BeginNode.
Definition: ast.h:1580
struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition: ast.h:1608
struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition: ast.h:1598
struct pm_statements_node * statements
BeginNode::statements.
Definition: ast.h:1593
pm_node_t base
The embedded base node.
Definition: ast.h:1582
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition: ast.h:1613
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition: ast.h:1588
struct pm_else_node * else_clause
BeginNode::else_clause.
Definition: ast.h:1603
BlockArgumentNode.
Definition: ast.h:1628
pm_node_t base
The embedded base node.
Definition: ast.h:1630
struct pm_node * expression
BlockArgumentNode::expression.
Definition: ast.h:1636
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition: ast.h:1641
BlockLocalVariableNode.
Definition: ast.h:1659
pm_node_t base
The embedded base node.
Definition: ast.h:1661
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition: ast.h:1667
BlockNode.
Definition: ast.h:1682
pm_node_t base
The embedded base node.
Definition: ast.h:1684
pm_location_t closing_loc
BlockNode::closing_loc.
Definition: ast.h:1710
struct pm_node * parameters
BlockNode::parameters.
Definition: ast.h:1695
pm_location_t opening_loc
BlockNode::opening_loc.
Definition: ast.h:1705
struct pm_node * body
BlockNode::body.
Definition: ast.h:1700
pm_constant_id_list_t locals
BlockNode::locals.
Definition: ast.h:1690
BlockParameterNode.
Definition: ast.h:1729
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition: ast.h:1747
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition: ast.h:1742
pm_constant_id_t name
BlockParameterNode::name.
Definition: ast.h:1737
pm_node_t base
The embedded base node.
Definition: ast.h:1731
BlockParametersNode.
Definition: ast.h:1766
struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition: ast.h:1774
pm_node_t base
The embedded base node.
Definition: ast.h:1768
struct pm_node_list locals
BlockParametersNode::locals.
Definition: ast.h:1779
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition: ast.h:1789
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition: ast.h:1784
BreakNode.
Definition: ast.h:1804
struct pm_arguments_node * arguments
BreakNode::arguments.
Definition: ast.h:1817
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition: ast.h:1827
pm_node_t base
The embedded base node.
Definition: ast.h:1806
CallAndWriteNode.
Definition: ast.h:1848
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition: ast.h:1881
struct pm_node * value
CallAndWriteNode::value.
Definition: ast.h:1886
pm_node_t base
The embedded base node.
Definition: ast.h:1850
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition: ast.h:1861
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition: ast.h:1866
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition: ast.h:1871
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition: ast.h:1876
struct pm_node * receiver
CallAndWriteNode::receiver.
Definition: ast.h:1856
CallNode.
Definition: ast.h:1922
pm_location_t opening_loc
CallNode::opening_loc.
Definition: ast.h:1961
pm_location_t closing_loc
CallNode::closing_loc.
Definition: ast.h:1971
struct pm_node * receiver
CallNode::receiver.
Definition: ast.h:1941
pm_constant_id_t name
CallNode::name.
Definition: ast.h:1951
pm_node_t base
The embedded base node.
Definition: ast.h:1924
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition: ast.h:1946
pm_location_t message_loc
CallNode::message_loc.
Definition: ast.h:1956
struct pm_arguments_node * arguments
CallNode::arguments.
Definition: ast.h:1966
struct pm_node * block
CallNode::block.
Definition: ast.h:1976
CallOperatorWriteNode.
Definition: ast.h:1997
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition: ast.h:2020
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition: ast.h:2030
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition: ast.h:2035
struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition: ast.h:2005
pm_node_t base
The embedded base node.
Definition: ast.h:1999
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition: ast.h:2025
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition: ast.h:2015
struct pm_node * value
CallOperatorWriteNode::value.
Definition: ast.h:2040
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition: ast.h:2010
CallOrWriteNode.
Definition: ast.h:2061
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition: ast.h:2094
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition: ast.h:2074
pm_node_t base
The embedded base node.
Definition: ast.h:2063
struct pm_node * receiver
CallOrWriteNode::receiver.
Definition: ast.h:2069
struct pm_node * value
CallOrWriteNode::value.
Definition: ast.h:2099
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition: ast.h:2089
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition: ast.h:2084
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition: ast.h:2079
CallTargetNode.
Definition: ast.h:2128
pm_node_t base
The embedded base node.
Definition: ast.h:2130
pm_constant_id_t name
CallTargetNode::name.
Definition: ast.h:2146
struct pm_node * receiver
CallTargetNode::receiver.
Definition: ast.h:2136
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition: ast.h:2141
pm_location_t message_loc
CallTargetNode::message_loc.
Definition: ast.h:2151
CapturePatternNode.
Definition: ast.h:2166
struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition: ast.h:2179
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition: ast.h:2184
struct pm_node * value
CapturePatternNode::value.
Definition: ast.h:2174
pm_node_t base
The embedded base node.
Definition: ast.h:2168
CaseMatchNode.
Definition: ast.h:2201
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition: ast.h:2229
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition: ast.h:2214
pm_node_t base
The embedded base node.
Definition: ast.h:2203
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition: ast.h:2224
struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition: ast.h:2219
struct pm_node * predicate
CaseMatchNode::predicate.
Definition: ast.h:2209
CaseNode.
Definition: ast.h:2246
struct pm_node * predicate
CaseNode::predicate.
Definition: ast.h:2254
struct pm_else_node * else_clause
CaseNode::else_clause.
Definition: ast.h:2264
struct pm_node_list conditions
CaseNode::conditions.
Definition: ast.h:2259
pm_node_t base
The embedded base node.
Definition: ast.h:2248
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition: ast.h:2269
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition: ast.h:2274
ClassNode.
Definition: ast.h:2289
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition: ast.h:2302
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition: ast.h:2327
struct pm_node * constant_path
ClassNode::constant_path.
Definition: ast.h:2307
pm_constant_id_list_t locals
ClassNode::locals.
Definition: ast.h:2297
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition: ast.h:2312
pm_constant_id_t name
ClassNode::name.
Definition: ast.h:2332
pm_node_t base
The embedded base node.
Definition: ast.h:2291
struct pm_node * body
ClassNode::body.
Definition: ast.h:2322
struct pm_node * superclass
ClassNode::superclass.
Definition: ast.h:2317
ClassVariableAndWriteNode.
Definition: ast.h:2347
struct pm_node * value
ClassVariableAndWriteNode::value.
Definition: ast.h:2370
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition: ast.h:2355
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition: ast.h:2365
pm_node_t base
The embedded base node.
Definition: ast.h:2349
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition: ast.h:2360
ClassVariableOperatorWriteNode.
Definition: ast.h:2385
pm_node_t base
The embedded base node.
Definition: ast.h:2387
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition: ast.h:2393
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition: ast.h:2398
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition: ast.h:2413
struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition: ast.h:2408
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition: ast.h:2403
ClassVariableOrWriteNode.
Definition: ast.h:2428
pm_node_t base
The embedded base node.
Definition: ast.h:2430
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition: ast.h:2441
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition: ast.h:2446
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition: ast.h:2436
struct pm_node * value
ClassVariableOrWriteNode::value.
Definition: ast.h:2451
ClassVariableReadNode.
Definition: ast.h:2466
pm_node_t base
The embedded base node.
Definition: ast.h:2468
pm_constant_id_t name
ClassVariableReadNode::name.
Definition: ast.h:2480
ClassVariableTargetNode.
Definition: ast.h:2495
pm_node_t base
The embedded base node.
Definition: ast.h:2497
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition: ast.h:2503
ClassVariableWriteNode.
Definition: ast.h:2518
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition: ast.h:2542
pm_node_t base
The embedded base node.
Definition: ast.h:2520
struct pm_node * value
ClassVariableWriteNode::value.
Definition: ast.h:2555
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition: ast.h:2565
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition: ast.h:2532
ConstantAndWriteNode.
Definition: ast.h:2580
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition: ast.h:2598
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition: ast.h:2593
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition: ast.h:2588
struct pm_node * value
ConstantAndWriteNode::value.
Definition: ast.h:2603
pm_node_t base
The embedded base node.
Definition: ast.h:2582
A list of constant IDs.
ConstantOperatorWriteNode.
Definition: ast.h:2618
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition: ast.h:2626
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition: ast.h:2631
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition: ast.h:2646
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition: ast.h:2636
struct pm_node * value
ConstantOperatorWriteNode::value.
Definition: ast.h:2641
pm_node_t base
The embedded base node.
Definition: ast.h:2620
ConstantOrWriteNode.
Definition: ast.h:2661
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition: ast.h:2679
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition: ast.h:2674
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition: ast.h:2669
pm_node_t base
The embedded base node.
Definition: ast.h:2663
struct pm_node * value
ConstantOrWriteNode::value.
Definition: ast.h:2684
ConstantPathAndWriteNode.
Definition: ast.h:2699
pm_node_t base
The embedded base node.
Definition: ast.h:2701
struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition: ast.h:2707
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition: ast.h:2712
struct pm_node * value
ConstantPathAndWriteNode::value.
Definition: ast.h:2717
ConstantPathNode.
Definition: ast.h:2732
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition: ast.h:2771
pm_node_t base
The embedded base node.
Definition: ast.h:2734
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition: ast.h:2784
pm_constant_id_t name
ConstantPathNode::name.
Definition: ast.h:2758
struct pm_node * parent
ConstantPathNode::parent.
Definition: ast.h:2751
ConstantPathOperatorWriteNode.
Definition: ast.h:2799
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition: ast.h:2807
struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition: ast.h:2817
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition: ast.h:2822
pm_node_t base
The embedded base node.
Definition: ast.h:2801
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition: ast.h:2812
ConstantPathOrWriteNode.
Definition: ast.h:2837
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition: ast.h:2850
pm_node_t base
The embedded base node.
Definition: ast.h:2839
struct pm_node * value
ConstantPathOrWriteNode::value.
Definition: ast.h:2855
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition: ast.h:2845
ConstantPathTargetNode.
Definition: ast.h:2870
pm_node_t base
The embedded base node.
Definition: ast.h:2872
struct pm_node * parent
ConstantPathTargetNode::parent.
Definition: ast.h:2878
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition: ast.h:2888
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition: ast.h:2883
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition: ast.h:2893
ConstantPathWriteNode.
Definition: ast.h:2914
struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition: ast.h:2930
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition: ast.h:2940
pm_node_t base
The embedded base node.
Definition: ast.h:2916
struct pm_node * value
ConstantPathWriteNode::value.
Definition: ast.h:2950
ConstantReadNode.
Definition: ast.h:2965
pm_node_t base
The embedded base node.
Definition: ast.h:2967
pm_constant_id_t name
ConstantReadNode::name.
Definition: ast.h:2979
ConstantTargetNode.
Definition: ast.h:2994
pm_node_t base
The embedded base node.
Definition: ast.h:2996
pm_constant_id_t name
ConstantTargetNode::name.
Definition: ast.h:3002
ConstantWriteNode.
Definition: ast.h:3017
pm_node_t base
The embedded base node.
Definition: ast.h:3019
struct pm_node * value
ConstantWriteNode::value.
Definition: ast.h:3054
pm_constant_id_t name
ConstantWriteNode::name.
Definition: ast.h:3031
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition: ast.h:3041
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition: ast.h:3064
DefNode.
Definition: ast.h:3080
struct pm_parameters_node * parameters
DefNode::parameters.
Definition: ast.h:3103
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition: ast.h:3143
pm_constant_id_t name
DefNode::name.
Definition: ast.h:3088
pm_location_t name_loc
DefNode::name_loc.
Definition: ast.h:3093
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition: ast.h:3133
struct pm_node * body
DefNode::body.
Definition: ast.h:3108
pm_location_t equal_loc
DefNode::equal_loc.
Definition: ast.h:3138
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition: ast.h:3118
struct pm_node * receiver
DefNode::receiver.
Definition: ast.h:3098
pm_node_t base
The embedded base node.
Definition: ast.h:3082
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition: ast.h:3128
pm_location_t operator_loc
DefNode::operator_loc.
Definition: ast.h:3123
pm_constant_id_list_t locals
DefNode::locals.
Definition: ast.h:3113
DefinedNode.
Definition: ast.h:3158
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition: ast.h:3166
pm_node_t base
The embedded base node.
Definition: ast.h:3160
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition: ast.h:3176
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition: ast.h:3181
struct pm_node * value
DefinedNode::value.
Definition: ast.h:3171
ElseNode.
Definition: ast.h:3196
struct pm_statements_node * statements
ElseNode::statements.
Definition: ast.h:3209
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition: ast.h:3204
pm_node_t base
The embedded base node.
Definition: ast.h:3198
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition: ast.h:3214
EmbeddedStatementsNode.
Definition: ast.h:3229
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition: ast.h:3247
struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition: ast.h:3242
pm_node_t base
The embedded base node.
Definition: ast.h:3231
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition: ast.h:3237
EmbeddedVariableNode.
Definition: ast.h:3262
struct pm_node * variable
EmbeddedVariableNode::variable.
Definition: ast.h:3275
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition: ast.h:3270
pm_node_t base
The embedded base node.
Definition: ast.h:3264
EnsureNode.
Definition: ast.h:3294
struct pm_statements_node * statements
EnsureNode::statements.
Definition: ast.h:3307
pm_node_t base
The embedded base node.
Definition: ast.h:3296
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition: ast.h:3302
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition: ast.h:3312
FalseNode.
Definition: ast.h:3327
pm_node_t base
The embedded base node.
Definition: ast.h:3329
FindPatternNode.
Definition: ast.h:3351
struct pm_node * constant
FindPatternNode::constant.
Definition: ast.h:3359
struct pm_node * right
FindPatternNode::right.
Definition: ast.h:3374
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition: ast.h:3379
pm_node_t base
The embedded base node.
Definition: ast.h:3353
struct pm_node_list requireds
FindPatternNode::requireds.
Definition: ast.h:3369
struct pm_splat_node * left
FindPatternNode::left.
Definition: ast.h:3364
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition: ast.h:3384
FlipFlopNode.
Definition: ast.h:3402
pm_node_t base
The embedded base node.
Definition: ast.h:3404
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition: ast.h:3420
struct pm_node * left
FlipFlopNode::left.
Definition: ast.h:3410
struct pm_node * right
FlipFlopNode::right.
Definition: ast.h:3415
FloatNode.
Definition: ast.h:3435
double value
FloatNode::value.
Definition: ast.h:3445
pm_node_t base
The embedded base node.
Definition: ast.h:3437
ForNode.
Definition: ast.h:3460
struct pm_statements_node * statements
ForNode::statements.
Definition: ast.h:3495
struct pm_node * index
ForNode::index.
Definition: ast.h:3473
struct pm_node * collection
ForNode::collection.
Definition: ast.h:3483
pm_node_t base
The embedded base node.
Definition: ast.h:3462
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition: ast.h:3535
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition: ast.h:3505
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition: ast.h:3525
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition: ast.h:3515
ForwardingArgumentsNode.
Definition: ast.h:3552
pm_node_t base
The embedded base node.
Definition: ast.h:3554
ForwardingParameterNode.
Definition: ast.h:3571
pm_node_t base
The embedded base node.
Definition: ast.h:3573
ForwardingSuperNode.
Definition: ast.h:3589
pm_node_t base
The embedded base node.
Definition: ast.h:3591
struct pm_block_node * block
ForwardingSuperNode::block.
Definition: ast.h:3597
GlobalVariableAndWriteNode.
Definition: ast.h:3612
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition: ast.h:3630
pm_node_t base
The embedded base node.
Definition: ast.h:3614
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition: ast.h:3625
struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition: ast.h:3635
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition: ast.h:3620
GlobalVariableOperatorWriteNode.
Definition: ast.h:3650
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition: ast.h:3658
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition: ast.h:3678
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition: ast.h:3673
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition: ast.h:3663
pm_node_t base
The embedded base node.
Definition: ast.h:3652
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition: ast.h:3668
GlobalVariableOrWriteNode.
Definition: ast.h:3693
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition: ast.h:3701
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition: ast.h:3706
pm_node_t base
The embedded base node.
Definition: ast.h:3695
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition: ast.h:3711
struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition: ast.h:3716
GlobalVariableReadNode.
Definition: ast.h:3731
pm_node_t base
The embedded base node.
Definition: ast.h:3733
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition: ast.h:3745
GlobalVariableTargetNode.
Definition: ast.h:3760
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition: ast.h:3768
pm_node_t base
The embedded base node.
Definition: ast.h:3762
GlobalVariableWriteNode.
Definition: ast.h:3783
struct pm_node * value
GlobalVariableWriteNode::value.
Definition: ast.h:3820
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition: ast.h:3807
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition: ast.h:3830
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition: ast.h:3797
pm_node_t base
The embedded base node.
Definition: ast.h:3785
HashNode.
Definition: ast.h:3845
struct pm_node_list elements
HashNode::elements.
Definition: ast.h:3871
pm_node_t base
The embedded base node.
Definition: ast.h:3847
pm_location_t closing_loc
HashNode::closing_loc.
Definition: ast.h:3881
pm_location_t opening_loc
HashNode::opening_loc.
Definition: ast.h:3858
HashPatternNode.
Definition: ast.h:3899
struct pm_node_list elements
HashPatternNode::elements.
Definition: ast.h:3912
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition: ast.h:3922
pm_node_t base
The embedded base node.
Definition: ast.h:3901
struct pm_node * rest
HashPatternNode::rest.
Definition: ast.h:3917
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition: ast.h:3927
struct pm_node * constant
HashPatternNode::constant.
Definition: ast.h:3907
IfNode.
Definition: ast.h:3948
struct pm_node * predicate
IfNode::predicate.
Definition: ast.h:3981
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition: ast.h:4039
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition: ast.h:3963
struct pm_statements_node * statements
IfNode::statements.
Definition: ast.h:4008
pm_node_t base
The embedded base node.
Definition: ast.h:3950
struct pm_node * subsequent
IfNode::subsequent.
Definition: ast.h:4027
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition: ast.h:3994
ImaginaryNode.
Definition: ast.h:4054
struct pm_node * numeric
ImaginaryNode::numeric.
Definition: ast.h:4062
pm_node_t base
The embedded base node.
Definition: ast.h:4056
ImplicitNode.
Definition: ast.h:4083
struct pm_node * value
ImplicitNode::value.
Definition: ast.h:4091
pm_node_t base
The embedded base node.
Definition: ast.h:4085
ImplicitRestNode.
Definition: ast.h:4115
pm_node_t base
The embedded base node.
Definition: ast.h:4117
InNode.
Definition: ast.h:4133
struct pm_statements_node * statements
InNode::statements.
Definition: ast.h:4146
struct pm_node * pattern
InNode::pattern.
Definition: ast.h:4141
pm_node_t base
The embedded base node.
Definition: ast.h:4135
pm_location_t then_loc
InNode::then_loc.
Definition: ast.h:4156
pm_location_t in_loc
InNode::in_loc.
Definition: ast.h:4151
IndexAndWriteNode.
Definition: ast.h:4177
struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition: ast.h:4200
struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition: ast.h:4185
pm_node_t base
The embedded base node.
Definition: ast.h:4179
struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition: ast.h:4210
struct pm_node * value
IndexAndWriteNode::value.
Definition: ast.h:4220
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition: ast.h:4215
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition: ast.h:4205
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition: ast.h:4195
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition: ast.h:4190
IndexOperatorWriteNode.
Definition: ast.h:4241
pm_node_t base
The embedded base node.
Definition: ast.h:4243
struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition: ast.h:4274
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition: ast.h:4284
struct pm_node * value
IndexOperatorWriteNode::value.
Definition: ast.h:4289
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition: ast.h:4259
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition: ast.h:4254
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition: ast.h:4269
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition: ast.h:4264
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition: ast.h:4279
struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition: ast.h:4249
IndexOrWriteNode.
Definition: ast.h:4310
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition: ast.h:4338
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition: ast.h:4323
pm_node_t base
The embedded base node.
Definition: ast.h:4312
struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition: ast.h:4343
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition: ast.h:4348
struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition: ast.h:4318
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition: ast.h:4328
struct pm_node * value
IndexOrWriteNode::value.
Definition: ast.h:4353
struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition: ast.h:4333
IndexTargetNode.
Definition: ast.h:4382
pm_node_t base
The embedded base node.
Definition: ast.h:4384
struct pm_node * receiver
IndexTargetNode::receiver.
Definition: ast.h:4390
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition: ast.h:4405
struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition: ast.h:4400
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition: ast.h:4395
struct pm_block_argument_node * block
IndexTargetNode::block.
Definition: ast.h:4410
InstanceVariableAndWriteNode.
Definition: ast.h:4425
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition: ast.h:4443
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition: ast.h:4438
struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition: ast.h:4448
pm_node_t base
The embedded base node.
Definition: ast.h:4427
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition: ast.h:4433
InstanceVariableOperatorWriteNode.
Definition: ast.h:4463
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition: ast.h:4486
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition: ast.h:4491
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition: ast.h:4481
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition: ast.h:4471
pm_node_t base
The embedded base node.
Definition: ast.h:4465
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition: ast.h:4476
InstanceVariableOrWriteNode.
Definition: ast.h:4506
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition: ast.h:4524
struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition: ast.h:4529
pm_node_t base
The embedded base node.
Definition: ast.h:4508
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition: ast.h:4519
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition: ast.h:4514
InstanceVariableReadNode.
Definition: ast.h:4544
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition: ast.h:4558
pm_node_t base
The embedded base node.
Definition: ast.h:4546
InstanceVariableTargetNode.
Definition: ast.h:4573
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition: ast.h:4581
pm_node_t base
The embedded base node.
Definition: ast.h:4575
InstanceVariableWriteNode.
Definition: ast.h:4596
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition: ast.h:4643
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition: ast.h:4610
pm_node_t base
The embedded base node.
Definition: ast.h:4598
struct pm_node * value
InstanceVariableWriteNode::value.
Definition: ast.h:4633
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition: ast.h:4620
IntegerNode.
Definition: ast.h:4664
pm_integer_t value
IntegerNode::value.
Definition: ast.h:4674
pm_node_t base
The embedded base node.
Definition: ast.h:4666
A structure represents an arbitrary-sized integer.
Definition: pm_integer.h:20
InterpolatedMatchLastLineNode.
Definition: ast.h:4702
pm_node_t base
The embedded base node.
Definition: ast.h:4704
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition: ast.h:4720
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition: ast.h:4715
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition: ast.h:4710
InterpolatedRegularExpressionNode.
Definition: ast.h:4748
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition: ast.h:4756
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition: ast.h:4761
pm_node_t base
The embedded base node.
Definition: ast.h:4750
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition: ast.h:4766
InterpolatedStringNode.
Definition: ast.h:4785
pm_node_t base
The embedded base node.
Definition: ast.h:4787
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition: ast.h:4803
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition: ast.h:4793
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition: ast.h:4798
InterpolatedSymbolNode.
Definition: ast.h:4818
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition: ast.h:4831
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition: ast.h:4836
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition: ast.h:4826
pm_node_t base
The embedded base node.
Definition: ast.h:4820
InterpolatedXStringNode.
Definition: ast.h:4851
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition: ast.h:4859
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition: ast.h:4869
pm_node_t base
The embedded base node.
Definition: ast.h:4853
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition: ast.h:4864
ItLocalVariableReadNode.
Definition: ast.h:4884
pm_node_t base
The embedded base node.
Definition: ast.h:4886
ItParametersNode.
Definition: ast.h:4902
pm_node_t base
The embedded base node.
Definition: ast.h:4904
KeywordHashNode.
Definition: ast.h:4923
pm_node_t base
The embedded base node.
Definition: ast.h:4925
struct pm_node_list elements
KeywordHashNode::elements.
Definition: ast.h:4931
KeywordRestParameterNode.
Definition: ast.h:4950
pm_node_t base
The embedded base node.
Definition: ast.h:4952
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition: ast.h:4958
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition: ast.h:4968
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition: ast.h:4963
LambdaNode.
Definition: ast.h:4983
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition: ast.h:5006
pm_node_t base
The embedded base node.
Definition: ast.h:4985
struct pm_node * body
LambdaNode::body.
Definition: ast.h:5016
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition: ast.h:5001
struct pm_node * parameters
LambdaNode::parameters.
Definition: ast.h:5011
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition: ast.h:4996
pm_constant_id_list_t locals
LambdaNode::locals.
Definition: ast.h:4991
LocalVariableAndWriteNode.
Definition: ast.h:5031
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition: ast.h:5054
pm_node_t base
The embedded base node.
Definition: ast.h:5033
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition: ast.h:5059
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition: ast.h:5044
struct pm_node * value
LocalVariableAndWriteNode::value.
Definition: ast.h:5049
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition: ast.h:5039
LocalVariableOperatorWriteNode.
Definition: ast.h:5074
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition: ast.h:5107
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition: ast.h:5102
pm_node_t base
The embedded base node.
Definition: ast.h:5076
struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition: ast.h:5092
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition: ast.h:5082
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition: ast.h:5087
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition: ast.h:5097
LocalVariableOrWriteNode.
Definition: ast.h:5122
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition: ast.h:5150
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition: ast.h:5135
struct pm_node * value
LocalVariableOrWriteNode::value.
Definition: ast.h:5140
pm_node_t base
The embedded base node.
Definition: ast.h:5124
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition: ast.h:5145
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition: ast.h:5130
LocalVariableReadNode.
Definition: ast.h:5165
uint32_t depth
LocalVariableReadNode::depth.
Definition: ast.h:5196
pm_constant_id_t name
LocalVariableReadNode::name.
Definition: ast.h:5183
pm_node_t base
The embedded base node.
Definition: ast.h:5167
LocalVariableTargetNode.
Definition: ast.h:5211
uint32_t depth
LocalVariableTargetNode::depth.
Definition: ast.h:5224
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition: ast.h:5219
pm_node_t base
The embedded base node.
Definition: ast.h:5213
LocalVariableWriteNode.
Definition: ast.h:5239
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition: ast.h:5303
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition: ast.h:5276
pm_node_t base
The embedded base node.
Definition: ast.h:5241
struct pm_node * value
LocalVariableWriteNode::value.
Definition: ast.h:5293
uint32_t depth
LocalVariableWriteNode::depth.
Definition: ast.h:5266
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition: ast.h:5253
This represents a range of bytes in the source string to which a node or token corresponds.
Definition: ast.h:545
const uint8_t * start
A pointer to the start location of the range in the source.
Definition: ast.h:547
const uint8_t * end
A pointer to the end location of the range in the source.
Definition: ast.h:550
MatchLastLineNode.
Definition: ast.h:5331
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition: ast.h:5344
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition: ast.h:5339
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition: ast.h:5349
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition: ast.h:5354
pm_node_t base
The embedded base node.
Definition: ast.h:5333
MatchPredicateNode.
Definition: ast.h:5369
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition: ast.h:5387
struct pm_node * pattern
MatchPredicateNode::pattern.
Definition: ast.h:5382
struct pm_node * value
MatchPredicateNode::value.
Definition: ast.h:5377
pm_node_t base
The embedded base node.
Definition: ast.h:5371
MatchRequiredNode.
Definition: ast.h:5402
pm_node_t base
The embedded base node.
Definition: ast.h:5404
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition: ast.h:5420
struct pm_node * value
MatchRequiredNode::value.
Definition: ast.h:5410
struct pm_node * pattern
MatchRequiredNode::pattern.
Definition: ast.h:5415
MatchWriteNode.
Definition: ast.h:5435
pm_node_t base
The embedded base node.
Definition: ast.h:5437
struct pm_node_list targets
MatchWriteNode::targets.
Definition: ast.h:5448
struct pm_call_node * call
MatchWriteNode::call.
Definition: ast.h:5443
MissingNode.
Definition: ast.h:5460
pm_node_t base
The embedded base node.
Definition: ast.h:5462
ModuleNode.
Definition: ast.h:5478
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition: ast.h:5506
struct pm_node * constant_path
ModuleNode::constant_path.
Definition: ast.h:5496
struct pm_node * body
ModuleNode::body.
Definition: ast.h:5501
pm_constant_id_list_t locals
ModuleNode::locals.
Definition: ast.h:5486
pm_node_t base
The embedded base node.
Definition: ast.h:5480
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition: ast.h:5491
pm_constant_id_t name
ModuleNode::name.
Definition: ast.h:5511
MultiTargetNode.
Definition: ast.h:5531
pm_node_t base
The embedded base node.
Definition: ast.h:5533
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition: ast.h:5589
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition: ast.h:5549
struct pm_node * rest
MultiTargetNode::rest.
Definition: ast.h:5569
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition: ast.h:5599
struct pm_node_list rights
MultiTargetNode::rights.
Definition: ast.h:5579
MultiWriteNode.
Definition: ast.h:5614
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition: ast.h:5682
struct pm_node * value
MultiWriteNode::value.
Definition: ast.h:5702
struct pm_node * rest
MultiWriteNode::rest.
Definition: ast.h:5652
struct pm_node_list rights
MultiWriteNode::rights.
Definition: ast.h:5662
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition: ast.h:5692
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition: ast.h:5672
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition: ast.h:5632
pm_node_t base
The embedded base node.
Definition: ast.h:5616
NextNode.
Definition: ast.h:5717
struct pm_arguments_node * arguments
NextNode::arguments.
Definition: ast.h:5725
pm_node_t base
The embedded base node.
Definition: ast.h:5719
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition: ast.h:5730
NilNode.
Definition: ast.h:5745
pm_node_t base
The embedded base node.
Definition: ast.h:5747
NoKeywordsParameterNode.
Definition: ast.h:5764
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition: ast.h:5777
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition: ast.h:5772
pm_node_t base
The embedded base node.
Definition: ast.h:5766
A list of nodes in the source, most often used for lists of children.
Definition: ast.h:558
size_t size
The number of nodes in the list.
Definition: ast.h:560
struct pm_node ** nodes
The nodes in the list.
Definition: ast.h:566
size_t capacity
The capacity of the list that has been allocated.
Definition: ast.h:563
This is the base structure that represents a node in the syntax tree.
Definition: ast.h:1069
pm_node_type_t type
This represents the type of the node.
Definition: ast.h:1074
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition: ast.h:1086
pm_node_flags_t flags
This represents any flags on the node.
Definition: ast.h:1080
pm_location_t location
This is the location of the node in the source.
Definition: ast.h:1092
NumberedParametersNode.
Definition: ast.h:5792
pm_node_t base
The embedded base node.
Definition: ast.h:5794
uint8_t maximum
NumberedParametersNode::maximum.
Definition: ast.h:5800
NumberedReferenceReadNode.
Definition: ast.h:5815
pm_node_t base
The embedded base node.
Definition: ast.h:5817
uint32_t number
NumberedReferenceReadNode::number.
Definition: ast.h:5831
OptionalKeywordParameterNode.
Definition: ast.h:5850
pm_node_t base
The embedded base node.
Definition: ast.h:5852
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition: ast.h:5858
struct pm_node * value
OptionalKeywordParameterNode::value.
Definition: ast.h:5868
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition: ast.h:5863
OptionalParameterNode.
Definition: ast.h:5887
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition: ast.h:5900
struct pm_node * value
OptionalParameterNode::value.
Definition: ast.h:5910
pm_constant_id_t name
OptionalParameterNode::name.
Definition: ast.h:5895
pm_node_t base
The embedded base node.
Definition: ast.h:5889
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition: ast.h:5905
OrNode.
Definition: ast.h:5925
struct pm_node * left
OrNode::left.
Definition: ast.h:5941
struct pm_node * right
OrNode::right.
Definition: ast.h:5954
pm_node_t base
The embedded base node.
Definition: ast.h:5927
pm_location_t operator_loc
OrNode::operator_loc.
Definition: ast.h:5964
ParametersNode.
Definition: ast.h:5980
struct pm_node * rest
ParametersNode::rest.
Definition: ast.h:5998
struct pm_node_list requireds
ParametersNode::requireds.
Definition: ast.h:5988
struct pm_block_parameter_node * block
ParametersNode::block.
Definition: ast.h:6018
struct pm_node_list optionals
ParametersNode::optionals.
Definition: ast.h:5993
struct pm_node_list posts
ParametersNode::posts.
Definition: ast.h:6003
pm_node_t base
The embedded base node.
Definition: ast.h:5982
struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition: ast.h:6013
struct pm_node_list keywords
ParametersNode::keywords.
Definition: ast.h:6008
ParenthesesNode.
Definition: ast.h:6033
struct pm_node * body
ParenthesesNode::body.
Definition: ast.h:6041
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition: ast.h:6051
pm_node_t base
The embedded base node.
Definition: ast.h:6035
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition: ast.h:6046
PinnedExpressionNode.
Definition: ast.h:6066
pm_node_t base
The embedded base node.
Definition: ast.h:6068
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition: ast.h:6089
struct pm_node * expression
PinnedExpressionNode::expression.
Definition: ast.h:6074
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition: ast.h:6084
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition: ast.h:6079
PinnedVariableNode.
Definition: ast.h:6104
struct pm_node * variable
PinnedVariableNode::variable.
Definition: ast.h:6112
pm_node_t base
The embedded base node.
Definition: ast.h:6106
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition: ast.h:6117
PostExecutionNode.
Definition: ast.h:6132
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition: ast.h:6155
struct pm_statements_node * statements
PostExecutionNode::statements.
Definition: ast.h:6140
pm_node_t base
The embedded base node.
Definition: ast.h:6134
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition: ast.h:6150
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition: ast.h:6145
PreExecutionNode.
Definition: ast.h:6170
struct pm_statements_node * statements
PreExecutionNode::statements.
Definition: ast.h:6178
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition: ast.h:6193
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition: ast.h:6188
pm_node_t base
The embedded base node.
Definition: ast.h:6172
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition: ast.h:6183
ProgramNode.
Definition: ast.h:6205
struct pm_statements_node * statements
ProgramNode::statements.
Definition: ast.h:6218
pm_node_t base
The embedded base node.
Definition: ast.h:6207
pm_constant_id_list_t locals
ProgramNode::locals.
Definition: ast.h:6213
RangeNode.
Definition: ast.h:6239
struct pm_node * right
RangeNode::right.
Definition: ast.h:6269
pm_location_t operator_loc
RangeNode::operator_loc.
Definition: ast.h:6276
pm_node_t base
The embedded base node.
Definition: ast.h:6241
struct pm_node * left
RangeNode::left.
Definition: ast.h:6255
RationalNode.
Definition: ast.h:6297
pm_node_t base
The embedded base node.
Definition: ast.h:6299
pm_integer_t denominator
RationalNode::denominator.
Definition: ast.h:6318
pm_integer_t numerator
RationalNode::numerator.
Definition: ast.h:6309
RedoNode.
Definition: ast.h:6333
pm_node_t base
The embedded base node.
Definition: ast.h:6335
RegularExpressionNode.
Definition: ast.h:6364
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition: ast.h:6382
pm_node_t base
The embedded base node.
Definition: ast.h:6366
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition: ast.h:6387
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition: ast.h:6372
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition: ast.h:6377
RequiredKeywordParameterNode.
Definition: ast.h:6406
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition: ast.h:6419
pm_node_t base
The embedded base node.
Definition: ast.h:6408
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition: ast.h:6414
RequiredParameterNode.
Definition: ast.h:6438
pm_constant_id_t name
RequiredParameterNode::name.
Definition: ast.h:6446
pm_node_t base
The embedded base node.
Definition: ast.h:6440
RescueModifierNode.
Definition: ast.h:6461
pm_node_t base
The embedded base node.
Definition: ast.h:6463
struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition: ast.h:6479
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition: ast.h:6474
struct pm_node * expression
RescueModifierNode::expression.
Definition: ast.h:6469
RescueNode.
Definition: ast.h:6499
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition: ast.h:6507
struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition: ast.h:6532
pm_location_t operator_loc
RescueNode::operator_loc.
Definition: ast.h:6517
struct pm_node * reference
RescueNode::reference.
Definition: ast.h:6522
struct pm_node_list exceptions
RescueNode::exceptions.
Definition: ast.h:6512
struct pm_statements_node * statements
RescueNode::statements.
Definition: ast.h:6527
pm_node_t base
The embedded base node.
Definition: ast.h:6501
RestParameterNode.
Definition: ast.h:6551
pm_constant_id_t name
RestParameterNode::name.
Definition: ast.h:6559
pm_location_t name_loc
RestParameterNode::name_loc.
Definition: ast.h:6564
pm_node_t base
The embedded base node.
Definition: ast.h:6553
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition: ast.h:6569
RetryNode.
Definition: ast.h:6584
pm_node_t base
The embedded base node.
Definition: ast.h:6586
ReturnNode.
Definition: ast.h:6602
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition: ast.h:6610
pm_node_t base
The embedded base node.
Definition: ast.h:6604
struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition: ast.h:6615
SelfNode.
Definition: ast.h:6630
pm_node_t base
The embedded base node.
Definition: ast.h:6632
ShareableConstantNode.
Definition: ast.h:6654
struct pm_node * write
ShareableConstantNode::write.
Definition: ast.h:6664
pm_node_t base
The embedded base node.
Definition: ast.h:6656
SingletonClassNode.
Definition: ast.h:6679
pm_node_t base
The embedded base node.
Definition: ast.h:6681
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition: ast.h:6687
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition: ast.h:6697
struct pm_node * expression
SingletonClassNode::expression.
Definition: ast.h:6702
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition: ast.h:6712
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition: ast.h:6692
struct pm_node * body
SingletonClassNode::body.
Definition: ast.h:6707
SourceEncodingNode.
Definition: ast.h:6727
pm_node_t base
The embedded base node.
Definition: ast.h:6729
SourceFileNode.
Definition: ast.h:6751
pm_string_t filepath
SourceFileNode::filepath.
Definition: ast.h:6761
pm_node_t base
The embedded base node.
Definition: ast.h:6753
SourceLineNode.
Definition: ast.h:6776
pm_node_t base
The embedded base node.
Definition: ast.h:6778
SplatNode.
Definition: ast.h:6794
struct pm_node * expression
SplatNode::expression.
Definition: ast.h:6807
pm_node_t base
The embedded base node.
Definition: ast.h:6796
pm_location_t operator_loc
SplatNode::operator_loc.
Definition: ast.h:6802
StatementsNode.
Definition: ast.h:6822
struct pm_node_list body
StatementsNode::body.
Definition: ast.h:6830
pm_node_t base
The embedded base node.
Definition: ast.h:6824
StringNode.
Definition: ast.h:6857
pm_node_t base
The embedded base node.
Definition: ast.h:6859
pm_string_t unescaped
StringNode::unescaped.
Definition: ast.h:6880
pm_location_t content_loc
StringNode::content_loc.
Definition: ast.h:6870
pm_location_t closing_loc
StringNode::closing_loc.
Definition: ast.h:6875
pm_location_t opening_loc
StringNode::opening_loc.
Definition: ast.h:6865
A generic string type that can have various ownership semantics.
Definition: pm_string.h:33
SuperNode.
Definition: ast.h:6898
struct pm_arguments_node * arguments
SuperNode::arguments.
Definition: ast.h:6916
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition: ast.h:6911
pm_node_t base
The embedded base node.
Definition: ast.h:6900
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition: ast.h:6906
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition: ast.h:6921
struct pm_node * block
SuperNode::block.
Definition: ast.h:6926
SymbolNode.
Definition: ast.h:6949
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition: ast.h:6957
pm_location_t value_loc
SymbolNode::value_loc.
Definition: ast.h:6962
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition: ast.h:6967
pm_string_t unescaped
SymbolNode::unescaped.
Definition: ast.h:6972
pm_node_t base
The embedded base node.
Definition: ast.h:6951
This struct represents a token in the Ruby source.
Definition: ast.h:530
const uint8_t * end
A pointer to the end location of the token in the source.
Definition: ast.h:538
const uint8_t * start
A pointer to the start location of the token in the source.
Definition: ast.h:535
pm_token_type_t type
The type of the token.
Definition: ast.h:532
TrueNode.
Definition: ast.h:6987
pm_node_t base
The embedded base node.
Definition: ast.h:6989
UndefNode.
Definition: ast.h:7005
pm_node_t base
The embedded base node.
Definition: ast.h:7007
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition: ast.h:7018
struct pm_node_list names
UndefNode::names.
Definition: ast.h:7013
UnlessNode.
Definition: ast.h:7036
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition: ast.h:7052
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition: ast.h:7075
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition: ast.h:7106
pm_node_t base
The embedded base node.
Definition: ast.h:7038
struct pm_statements_node * statements
UnlessNode::statements.
Definition: ast.h:7086
struct pm_node * predicate
UnlessNode::predicate.
Definition: ast.h:7065
struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition: ast.h:7096
UntilNode.
Definition: ast.h:7127
struct pm_statements_node * statements
UntilNode::statements.
Definition: ast.h:7150
pm_location_t closing_loc
UntilNode::closing_loc.
Definition: ast.h:7140
struct pm_node * predicate
UntilNode::predicate.
Definition: ast.h:7145
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition: ast.h:7135
pm_node_t base
The embedded base node.
Definition: ast.h:7129
WhenNode.
Definition: ast.h:7167
struct pm_statements_node * statements
WhenNode::statements.
Definition: ast.h:7190
pm_node_t base
The embedded base node.
Definition: ast.h:7169
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition: ast.h:7185
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition: ast.h:7175
struct pm_node_list conditions
WhenNode::conditions.
Definition: ast.h:7180
WhileNode.
Definition: ast.h:7211
pm_location_t closing_loc
WhileNode::closing_loc.
Definition: ast.h:7224
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition: ast.h:7219
struct pm_statements_node * statements
WhileNode::statements.
Definition: ast.h:7234
pm_node_t base
The embedded base node.
Definition: ast.h:7213
struct pm_node * predicate
WhileNode::predicate.
Definition: ast.h:7229
XStringNode.
Definition: ast.h:7253
pm_location_t closing_loc
XStringNode::closing_loc.
Definition: ast.h:7271
pm_location_t opening_loc
XStringNode::opening_loc.
Definition: ast.h:7261
pm_location_t content_loc
XStringNode::content_loc.
Definition: ast.h:7266
pm_string_t unescaped
XStringNode::unescaped.
Definition: ast.h:7276
pm_node_t base
The embedded base node.
Definition: ast.h:7255
YieldNode.
Definition: ast.h:7291
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition: ast.h:7299
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition: ast.h:7304
pm_node_t base
The embedded base node.
Definition: ast.h:7293
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition: ast.h:7314
struct pm_arguments_node * arguments
YieldNode::arguments.
Definition: ast.h:7309