Ruby  3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
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 
1202 
1218 
1219 
1228  struct pm_node *left;
1229 
1238  struct pm_node *right;
1239 
1250 
1263 typedef struct pm_and_node {
1266 
1267 
1279  struct pm_node *left;
1280 
1292  struct pm_node *right;
1293 
1304 
1324 typedef struct pm_arguments_node {
1327 
1328 
1337  struct pm_node_list arguments;
1339 
1355 typedef struct pm_array_node {
1358 
1359 
1365  struct pm_node_list elements;
1366 
1378 
1391 
1416 typedef struct pm_array_pattern_node {
1419 
1420 
1425 
1434  struct pm_node_list requireds;
1435 
1444  struct pm_node *rest;
1445 
1454  struct pm_node_list posts;
1455 
1465 
1476 
1489 typedef struct pm_assoc_node {
1492 
1493 
1508  struct pm_node *key;
1509 
1521  struct pm_node *value;
1522 
1533 
1546 typedef struct pm_assoc_splat_node {
1549 
1550 
1559  struct pm_node *value;
1560 
1571 
1587 
1588 
1600 
1615 typedef struct pm_begin_node {
1618 
1619 
1629 
1639 
1649 
1659 
1669 
1680 
1693 typedef struct pm_block_argument_node {
1696 
1697 
1707 
1718 
1737 
1738 
1749 
1762 typedef struct pm_block_node {
1765 
1766 
1776 
1790 
1799  struct pm_node *body;
1800 
1810 
1821 
1838 typedef struct pm_block_parameter_node {
1841 
1842 
1853 
1863 
1875 
1895 
1896 
1910 
1923  struct pm_node_list locals;
1924 
1938 
1953 
1966 typedef struct pm_break_node {
1969 
1970 
1980 
1991 
2010 typedef struct pm_call_and_write_node {
2013 
2014 
2024 
2034 
2044 
2054 
2064 
2074 
2083  struct pm_node *value;
2085 
2119 typedef struct pm_call_node {
2122 
2123 
2139 
2152 
2162 
2172 
2181 
2191 
2201 
2210  struct pm_node *block;
2212 
2234 
2235 
2245 
2255 
2265 
2275 
2285 
2295 
2305 
2314  struct pm_node *value;
2316 
2335 typedef struct pm_call_or_write_node {
2338 
2339 
2349 
2359 
2369 
2379 
2389 
2399 
2408  struct pm_node *value;
2410 
2437 typedef struct pm_call_target_node {
2440 
2441 
2451 
2461 
2471 
2482 
2495 typedef struct pm_capture_pattern_node {
2498 
2499 
2508  struct pm_node *value;
2509 
2519 
2530 
2545 typedef struct pm_case_match_node {
2548 
2549 
2559 
2568  struct pm_node_list conditions;
2569 
2579 
2589 
2600 
2615 typedef struct pm_case_node {
2618 
2619 
2629 
2638  struct pm_node_list conditions;
2639 
2649 
2659 
2670 
2683 typedef struct pm_class_node {
2686 
2687 
2692 
2697 
2702 
2707 
2712 
2716  struct pm_node *body;
2717 
2722 
2728 
2744 
2745 
2755 
2765 
2775 
2784  struct pm_node *value;
2786 
2802 
2803 
2808 
2813 
2818 
2822  struct pm_node *value;
2823 
2829 
2845 
2846 
2851 
2856 
2861 
2865  struct pm_node *value;
2867 
2883 
2884 
2896 
2912 
2913 
2919 
2935 
2936 
2947 
2957 
2969  struct pm_node *value;
2970 
2981 
2997 
2998 
3003 
3008 
3013 
3017  struct pm_node *value;
3019 
3035 
3036 
3041 
3046 
3051 
3055  struct pm_node *value;
3056 
3062 
3078 
3079 
3084 
3089 
3094 
3098  struct pm_node *value;
3100 
3116 
3117 
3122 
3127 
3131  struct pm_node *value;
3133 
3146 typedef struct pm_constant_path_node {
3149 
3150 
3165  struct pm_node *parent;
3166 
3173 
3186 
3200 
3216 
3217 
3222 
3227 
3231  struct pm_node *value;
3232 
3238 
3254 
3255 
3260 
3265 
3269  struct pm_node *value;
3271 
3287 
3288 
3292  struct pm_node *parent;
3293 
3298 
3303 
3309 
3331 
3332 
3345 
3355 
3364  struct pm_node *value;
3366 
3379 typedef struct pm_constant_read_node {
3382 
3383 
3395 
3408 typedef struct pm_constant_target_node {
3411 
3412 
3418 
3431 typedef struct pm_constant_write_node {
3434 
3435 
3446 
3456 
3468  struct pm_node *value;
3469 
3480 
3494 typedef struct pm_def_node {
3497 
3498 
3503 
3508 
3513 
3518 
3522  struct pm_node *body;
3523 
3528 
3533 
3538 
3543 
3548 
3553 
3559 
3572 typedef struct pm_defined_node {
3575 
3576 
3581 
3585  struct pm_node *value;
3586 
3591 
3597 
3610 typedef struct pm_else_node {
3613 
3614 
3619 
3624 
3630 
3646 
3647 
3652 
3657 
3663 
3679 
3680 
3685 
3691 
3708 typedef struct pm_ensure_node {
3711 
3712 
3717 
3722 
3728 
3741 typedef struct pm_false_node {
3744 
3746 
3765 typedef struct pm_find_pattern_node {
3768 
3769 
3774 
3779 
3783  struct pm_node_list requireds;
3784 
3788  struct pm_node *right;
3789 
3794 
3800 
3816 typedef struct pm_flip_flop_node {
3819 
3820 
3824  struct pm_node *left;
3825 
3829  struct pm_node *right;
3830 
3836 
3849 typedef struct pm_float_node {
3852 
3853 
3859  double value;
3861 
3874 typedef struct pm_for_node {
3877 
3878 
3887  struct pm_node *index;
3888 
3898 
3910 
3920 
3930 
3940 
3951 
3969 
3971 
3988 
3990 
4006 
4007 
4013 
4029 
4030 
4035 
4040 
4045 
4049  struct pm_node *value;
4051 
4067 
4068 
4073 
4078 
4083 
4087  struct pm_node *value;
4088 
4094 
4110 
4111 
4116 
4121 
4126 
4130  struct pm_node *value;
4132 
4148 
4149 
4161 
4177 
4178 
4184 
4200 
4201 
4212 
4222 
4234  struct pm_node *value;
4235 
4246 
4259 typedef struct pm_hash_node {
4262 
4263 
4273 
4285  struct pm_node_list elements;
4286 
4297 
4313 typedef struct pm_hash_pattern_node {
4316 
4317 
4322 
4326  struct pm_node_list elements;
4327 
4331  struct pm_node *rest;
4332 
4337 
4343 
4362 typedef struct pm_if_node {
4365 
4366 
4378 
4396 
4409 
4423 
4442 
4455 
4468 typedef struct pm_imaginary_node {
4471 
4472 
4476  struct pm_node *numeric;
4478 
4497 typedef struct pm_implicit_node {
4500 
4501 
4505  struct pm_node *value;
4507 
4529 typedef struct pm_implicit_rest_node {
4532 
4534 
4547 typedef struct pm_in_node {
4550 
4551 
4555  struct pm_node *pattern;
4556 
4561 
4566 
4572 
4591 typedef struct pm_index_and_write_node {
4594 
4595 
4600 
4605 
4610 
4615 
4620 
4625 
4630 
4634  struct pm_node *value;
4636 
4658 
4659 
4664 
4669 
4674 
4679 
4684 
4689 
4694 
4699 
4703  struct pm_node *value;
4705 
4724 typedef struct pm_index_or_write_node {
4727 
4728 
4733 
4738 
4743 
4748 
4753 
4758 
4763 
4767  struct pm_node *value;
4769 
4796 typedef struct pm_index_target_node {
4799 
4800 
4805 
4810 
4815 
4820 
4826 
4842 
4843 
4848 
4853 
4858 
4862  struct pm_node *value;
4864 
4880 
4881 
4886 
4891 
4896 
4900  struct pm_node *value;
4901 
4907 
4923 
4924 
4929 
4934 
4939 
4943  struct pm_node *value;
4945 
4961 
4962 
4974 
4990 
4991 
4997 
5013 
5014 
5025 
5035 
5047  struct pm_node *value;
5048 
5059 
5078 typedef struct pm_integer_node {
5081 
5082 
5090 
5119 
5120 
5125 
5129  struct pm_node_list parts;
5130 
5136 
5165 
5166 
5171 
5175  struct pm_node_list parts;
5176 
5182 
5202 
5203 
5208 
5212  struct pm_node_list parts;
5213 
5219 
5235 
5236 
5241 
5245  struct pm_node_list parts;
5246 
5252 
5268 
5269 
5274 
5278  struct pm_node_list parts;
5279 
5285 
5301 
5303 
5316 typedef struct pm_it_parameters_node {
5319 
5321 
5337 typedef struct pm_keyword_hash_node {
5340 
5341 
5345  struct pm_node_list elements;
5347 
5367 
5368 
5373 
5378 
5384 
5397 typedef struct pm_lambda_node {
5400 
5401 
5406 
5411 
5416 
5421 
5426 
5430  struct pm_node *body;
5432 
5448 
5449 
5454 
5459 
5463  struct pm_node *value;
5464 
5469 
5473  uint32_t depth;
5475 
5491 
5492 
5497 
5502 
5506  struct pm_node *value;
5507 
5512 
5517 
5521  uint32_t depth;
5523 
5539 
5540 
5545 
5550 
5554  struct pm_node *value;
5555 
5560 
5564  uint32_t depth;
5566 
5582 
5583 
5598 
5610  uint32_t depth;
5612 
5628 
5629 
5634 
5638  uint32_t depth;
5640 
5656 
5657 
5668 
5680  uint32_t depth;
5681 
5691 
5707  struct pm_node *value;
5708 
5719 
5745 typedef struct pm_match_last_line_node {
5748 
5749 
5754 
5759 
5764 
5770 
5783 typedef struct pm_match_predicate_node {
5786 
5787 
5791  struct pm_node *value;
5792 
5796  struct pm_node *pattern;
5797 
5803 
5816 typedef struct pm_match_required_node {
5819 
5820 
5824  struct pm_node *value;
5825 
5829  struct pm_node *pattern;
5830 
5836 
5849 typedef struct pm_match_write_node {
5852 
5853 
5858 
5862  struct pm_node_list targets;
5864 
5874 typedef struct pm_missing_node {
5877 
5879 
5892 typedef struct pm_module_node {
5895 
5896 
5901 
5906 
5911 
5915  struct pm_node *body;
5916 
5921 
5927 
5945 typedef struct pm_multi_target_node {
5948 
5949 
5963  struct pm_node_list lefts;
5964 
5983  struct pm_node *rest;
5984 
5993  struct pm_node_list rights;
5994 
6004 
6015 
6028 typedef struct pm_multi_write_node {
6031 
6032 
6046  struct pm_node_list lefts;
6047 
6066  struct pm_node *rest;
6067 
6076  struct pm_node_list rights;
6077 
6087 
6097 
6107 
6116  struct pm_node *value;
6118 
6131 typedef struct pm_next_node {
6134 
6135 
6140 
6146 
6159 typedef struct pm_nil_node {
6162 
6164 
6181 
6182 
6187 
6193 
6209 
6210 
6214  uint8_t maximum;
6216 
6232 
6233 
6245  uint32_t number;
6247 
6267 
6268 
6273 
6278 
6282  struct pm_node *value;
6284 
6304 
6305 
6310 
6315 
6320 
6324  struct pm_node *value;
6326 
6339 typedef struct pm_or_node {
6342 
6343 
6355  struct pm_node *left;
6356 
6368  struct pm_node *right;
6369 
6380 
6394 typedef struct pm_parameters_node {
6397 
6398 
6402  struct pm_node_list requireds;
6403 
6407  struct pm_node_list optionals;
6408 
6412  struct pm_node *rest;
6413 
6417  struct pm_node_list posts;
6418 
6422  struct pm_node_list keywords;
6423 
6428 
6434 
6447 typedef struct pm_parentheses_node {
6450 
6451 
6455  struct pm_node *body;
6456 
6461 
6467 
6483 
6484 
6489 
6494 
6499 
6505 
6518 typedef struct pm_pinned_variable_node {
6521 
6522 
6527 
6533 
6546 typedef struct pm_post_execution_node {
6549 
6550 
6555 
6560 
6565 
6571 
6584 typedef struct pm_pre_execution_node {
6587 
6588 
6593 
6598 
6603 
6609 
6619 typedef struct pm_program_node {
6622 
6623 
6628 
6634 
6653 typedef struct pm_range_node {
6656 
6657 
6669  struct pm_node *left;
6670 
6683  struct pm_node *right;
6684 
6692 
6711 typedef struct pm_rational_node {
6714 
6715 
6724 
6734 
6747 typedef struct pm_redo_node {
6750 
6752 
6781 
6782 
6787 
6792 
6797 
6803 
6823 
6824 
6829 
6835 
6855 
6856 
6862 
6875 typedef struct pm_rescue_modifier_node {
6878 
6879 
6884 
6889 
6895 
6913 typedef struct pm_rescue_node {
6916 
6917 
6922 
6926  struct pm_node_list exceptions;
6927 
6932 
6937 
6942 
6948 
6965 typedef struct pm_rest_parameter_node {
6968 
6969 
6974 
6979 
6985 
6998 typedef struct pm_retry_node {
7001 
7003 
7016 typedef struct pm_return_node {
7019 
7020 
7025 
7031 
7044 typedef struct pm_self_node {
7047 
7049 
7071 
7072 
7078  struct pm_node *write;
7080 
7093 typedef struct pm_singleton_class_node {
7096 
7097 
7102 
7107 
7112 
7117 
7121  struct pm_node *body;
7122 
7128 
7141 typedef struct pm_source_encoding_node {
7144 
7146 
7165 typedef struct pm_source_file_node {
7168 
7169 
7177 
7190 typedef struct pm_source_line_node {
7193 
7195 
7208 typedef struct pm_splat_node {
7211 
7212 
7217 
7223 
7236 typedef struct pm_statements_node {
7239 
7240 
7244  struct pm_node_list body;
7246 
7271 typedef struct pm_string_node {
7274 
7275 
7280 
7285 
7290 
7296 
7312 typedef struct pm_super_node {
7315 
7316 
7321 
7326 
7331 
7336 
7340  struct pm_node *block;
7342 
7363 typedef struct pm_symbol_node {
7366 
7367 
7372 
7377 
7382 
7388 
7401 typedef struct pm_true_node {
7404 
7406 
7419 typedef struct pm_undef_node {
7422 
7423 
7427  struct pm_node_list names;
7428 
7434 
7450 typedef struct pm_unless_node {
7453 
7454 
7467 
7480 
7490 
7501 
7511 
7522 
7541 typedef struct pm_until_node {
7544 
7545 
7550 
7555 
7560 
7566 
7581 typedef struct pm_when_node {
7584 
7585 
7590 
7594  struct pm_node_list conditions;
7595 
7600 
7606 
7625 typedef struct pm_while_node {
7628 
7629 
7634 
7639 
7644 
7650 
7667 typedef struct pm_x_string_node {
7670 
7671 
7676 
7681 
7686 
7692 
7705 typedef struct pm_yield_node {
7708 
7709 
7714 
7719 
7724 
7730 
7737 
7740 
7743 
7746 
7750 
7754 typedef enum pm_array_node_flags {
7758 
7762 typedef enum pm_call_node_flags {
7765 
7768 
7771 
7775 
7779 typedef enum pm_encoding_flags {
7782 
7786 
7793 
7796 
7799 
7803 
7810 
7814 
7822 
7826 typedef enum pm_loop_flags {
7830 
7834 typedef enum pm_parameter_flags {
7838 
7842 typedef enum pm_range_flags {
7846 
7853 
7856 
7859 
7862 
7865 
7868 
7871 
7874 
7877 
7880 
7884 
7891 
7894 
7898 
7902 typedef enum pm_string_flags {
7905 
7908 
7911 
7915 
7919 typedef enum pm_symbol_flags {
7922 
7925 
7929 
7936 #define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
7937 
7938 #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:7807
@ 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:7812
@ 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:7809
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:7842
@ PM_RANGE_FLAGS_EXCLUDE_END
...
Definition: ast.h:7844
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:7919
@ PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition: ast.h:7921
@ PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition: ast.h:7927
@ PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition: ast.h:7924
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:7902
@ PM_STRING_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal
Definition: ast.h:7910
@ PM_STRING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition: ast.h:7907
@ PM_STRING_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal
Definition: ast.h:7913
@ PM_STRING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition: ast.h:7904
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:7734
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT
if the arguments contain a splat
Definition: ast.h:7745
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING
if the arguments contain forwarding
Definition: ast.h:7736
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS
if the arguments contain keywords
Definition: ast.h:7739
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
if the arguments contain a keyword splat
Definition: ast.h:7742
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS
if the arguments contain multiple splats
Definition: ast.h:7748
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:7754
@ PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
if array contains splat nodes
Definition: ast.h:7756
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:7790
@ PM_INTEGER_BASE_FLAGS_HEXADECIMAL
0x prefix
Definition: ast.h:7801
@ PM_INTEGER_BASE_FLAGS_OCTAL
0o or 0 prefix
Definition: ast.h:7798
@ PM_INTEGER_BASE_FLAGS_DECIMAL
0d or no prefix
Definition: ast.h:7795
@ PM_INTEGER_BASE_FLAGS_BINARY
0b prefix
Definition: ast.h:7792
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:7762
@ PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
a call that ignores method visibility
Definition: ast.h:7773
@ PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
&.
Definition: ast.h:7764
@ PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
a call that is an attribute write, so the value being written should be returned
Definition: ast.h:7770
@ PM_CALL_NODE_FLAGS_VARIABLE_CALL
a call that could have been a local variable
Definition: ast.h:7767
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:7888
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING
constant writes that should be modified with shareable constant value experimental everything
Definition: ast.h:7893
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL
constant writes that should be modified with shareable constant value literal
Definition: ast.h:7890
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY
constant writes that should be modified with shareable constant value experimental copy
Definition: ast.h:7896
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:7818
@ 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:7820
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:7850
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition: ast.h:7879
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition: ast.h:7882
@ PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
e - forces the EUC-JP encoding
Definition: ast.h:7864
@ PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
i - ignores the case of characters when matching
Definition: ast.h:7852
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition: ast.h:7876
@ PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
n - forces the ASCII-8BIT encoding
Definition: ast.h:7867
@ PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
m - allows $ to match the end of lines within strings
Definition: ast.h:7858
@ PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
x - ignores whitespace and allows comments in regular expressions
Definition: ast.h:7855
@ PM_REGULAR_EXPRESSION_FLAGS_ONCE
o - only interpolates values into the regular expression once
Definition: ast.h:7861
@ PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
s - forces the Windows-31J encoding
Definition: ast.h:7870
@ PM_REGULAR_EXPRESSION_FLAGS_UTF_8
u - forces the UTF-8 encoding
Definition: ast.h:7873
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:7834
@ PM_PARAMETER_FLAGS_REPEATED_PARAMETER
a parameter name that has been repeated in the method signature
Definition: ast.h:7836
pm_encoding_flags
Flags for nodes that have unescaped content.
Definition: ast.h:7779
@ PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition: ast.h:7784
@ PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition: ast.h:7781
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:7826
@ PM_LOOP_FLAGS_BEGIN_MODIFIER
a loop after a begin statement, so the body is executed first before the condition
Definition: ast.h:7828
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:1200
AlternationPatternNode.
Definition: ast.h:1215
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition: ast.h:1248
struct pm_node * left
AlternationPatternNode::left.
Definition: ast.h:1228
struct pm_node * right
AlternationPatternNode::right.
Definition: ast.h:1238
pm_node_t base
The embedded base node.
Definition: ast.h:1217
AndNode.
Definition: ast.h:1263
struct pm_node * left
AndNode::left.
Definition: ast.h:1279
struct pm_node * right
AndNode::right.
Definition: ast.h:1292
pm_location_t operator_loc
AndNode::operator_loc.
Definition: ast.h:1302
pm_node_t base
The embedded base node.
Definition: ast.h:1265
ArgumentsNode.
Definition: ast.h:1324
pm_node_t base
The embedded base node.
Definition: ast.h:1326
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition: ast.h:1337
ArrayNode.
Definition: ast.h:1355
pm_node_t base
The embedded base node.
Definition: ast.h:1357
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition: ast.h:1389
struct pm_node_list elements
ArrayNode::elements.
Definition: ast.h:1365
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition: ast.h:1377
ArrayPatternNode.
Definition: ast.h:1416
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition: ast.h:1434
struct pm_node * rest
ArrayPatternNode::rest.
Definition: ast.h:1444
struct pm_node * constant
ArrayPatternNode::constant.
Definition: ast.h:1424
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition: ast.h:1464
pm_node_t base
The embedded base node.
Definition: ast.h:1418
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition: ast.h:1474
struct pm_node_list posts
ArrayPatternNode::posts.
Definition: ast.h:1454
AssocNode.
Definition: ast.h:1489
pm_node_t base
The embedded base node.
Definition: ast.h:1491
struct pm_node * value
AssocNode::value.
Definition: ast.h:1521
struct pm_node * key
AssocNode::key.
Definition: ast.h:1508
pm_location_t operator_loc
AssocNode::operator_loc.
Definition: ast.h:1531
AssocSplatNode.
Definition: ast.h:1546
struct pm_node * value
AssocSplatNode::value.
Definition: ast.h:1559
pm_node_t base
The embedded base node.
Definition: ast.h:1548
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition: ast.h:1569
BackReferenceReadNode.
Definition: ast.h:1584
pm_constant_id_t name
BackReferenceReadNode::name.
Definition: ast.h:1598
pm_node_t base
The embedded base node.
Definition: ast.h:1586
BeginNode.
Definition: ast.h:1615
struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition: ast.h:1668
struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition: ast.h:1648
struct pm_statements_node * statements
BeginNode::statements.
Definition: ast.h:1638
pm_node_t base
The embedded base node.
Definition: ast.h:1617
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition: ast.h:1678
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition: ast.h:1628
struct pm_else_node * else_clause
BeginNode::else_clause.
Definition: ast.h:1658
BlockArgumentNode.
Definition: ast.h:1693
pm_node_t base
The embedded base node.
Definition: ast.h:1695
struct pm_node * expression
BlockArgumentNode::expression.
Definition: ast.h:1706
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition: ast.h:1716
BlockLocalVariableNode.
Definition: ast.h:1734
pm_node_t base
The embedded base node.
Definition: ast.h:1736
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition: ast.h:1747
BlockNode.
Definition: ast.h:1762
pm_node_t base
The embedded base node.
Definition: ast.h:1764
pm_location_t closing_loc
BlockNode::closing_loc.
Definition: ast.h:1819
struct pm_node * parameters
BlockNode::parameters.
Definition: ast.h:1789
pm_location_t opening_loc
BlockNode::opening_loc.
Definition: ast.h:1809
struct pm_node * body
BlockNode::body.
Definition: ast.h:1799
pm_constant_id_list_t locals
BlockNode::locals.
Definition: ast.h:1775
BlockParameterNode.
Definition: ast.h:1838
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition: ast.h:1873
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition: ast.h:1862
pm_constant_id_t name
BlockParameterNode::name.
Definition: ast.h:1852
pm_node_t base
The embedded base node.
Definition: ast.h:1840
BlockParametersNode.
Definition: ast.h:1892
struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition: ast.h:1909
pm_node_t base
The embedded base node.
Definition: ast.h:1894
struct pm_node_list locals
BlockParametersNode::locals.
Definition: ast.h:1923
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition: ast.h:1951
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition: ast.h:1937
BreakNode.
Definition: ast.h:1966
struct pm_arguments_node * arguments
BreakNode::arguments.
Definition: ast.h:1979
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition: ast.h:1989
pm_node_t base
The embedded base node.
Definition: ast.h:1968
CallAndWriteNode.
Definition: ast.h:2010
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition: ast.h:2073
struct pm_node * value
CallAndWriteNode::value.
Definition: ast.h:2083
pm_node_t base
The embedded base node.
Definition: ast.h:2012
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition: ast.h:2033
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition: ast.h:2043
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition: ast.h:2053
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition: ast.h:2063
struct pm_node * receiver
CallAndWriteNode::receiver.
Definition: ast.h:2023
CallNode.
Definition: ast.h:2119
pm_location_t opening_loc
CallNode::opening_loc.
Definition: ast.h:2180
pm_location_t closing_loc
CallNode::closing_loc.
Definition: ast.h:2200
struct pm_node * receiver
CallNode::receiver.
Definition: ast.h:2138
pm_constant_id_t name
CallNode::name.
Definition: ast.h:2161
pm_node_t base
The embedded base node.
Definition: ast.h:2121
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition: ast.h:2151
pm_location_t message_loc
CallNode::message_loc.
Definition: ast.h:2171
struct pm_arguments_node * arguments
CallNode::arguments.
Definition: ast.h:2190
struct pm_node * block
CallNode::block.
Definition: ast.h:2210
CallOperatorWriteNode.
Definition: ast.h:2231
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition: ast.h:2274
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition: ast.h:2294
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition: ast.h:2304
struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition: ast.h:2244
pm_node_t base
The embedded base node.
Definition: ast.h:2233
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition: ast.h:2284
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition: ast.h:2264
struct pm_node * value
CallOperatorWriteNode::value.
Definition: ast.h:2314
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition: ast.h:2254
CallOrWriteNode.
Definition: ast.h:2335
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition: ast.h:2398
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition: ast.h:2358
pm_node_t base
The embedded base node.
Definition: ast.h:2337
struct pm_node * receiver
CallOrWriteNode::receiver.
Definition: ast.h:2348
struct pm_node * value
CallOrWriteNode::value.
Definition: ast.h:2408
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition: ast.h:2388
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition: ast.h:2378
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition: ast.h:2368
CallTargetNode.
Definition: ast.h:2437
pm_node_t base
The embedded base node.
Definition: ast.h:2439
pm_constant_id_t name
CallTargetNode::name.
Definition: ast.h:2470
struct pm_node * receiver
CallTargetNode::receiver.
Definition: ast.h:2450
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition: ast.h:2460
pm_location_t message_loc
CallTargetNode::message_loc.
Definition: ast.h:2480
CapturePatternNode.
Definition: ast.h:2495
struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition: ast.h:2518
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition: ast.h:2528
struct pm_node * value
CapturePatternNode::value.
Definition: ast.h:2508
pm_node_t base
The embedded base node.
Definition: ast.h:2497
CaseMatchNode.
Definition: ast.h:2545
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition: ast.h:2598
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition: ast.h:2568
pm_node_t base
The embedded base node.
Definition: ast.h:2547
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition: ast.h:2588
struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition: ast.h:2578
struct pm_node * predicate
CaseMatchNode::predicate.
Definition: ast.h:2558
CaseNode.
Definition: ast.h:2615
struct pm_node * predicate
CaseNode::predicate.
Definition: ast.h:2628
struct pm_else_node * else_clause
CaseNode::else_clause.
Definition: ast.h:2648
struct pm_node_list conditions
CaseNode::conditions.
Definition: ast.h:2638
pm_node_t base
The embedded base node.
Definition: ast.h:2617
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition: ast.h:2658
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition: ast.h:2668
ClassNode.
Definition: ast.h:2683
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition: ast.h:2696
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition: ast.h:2721
struct pm_node * constant_path
ClassNode::constant_path.
Definition: ast.h:2701
pm_constant_id_list_t locals
ClassNode::locals.
Definition: ast.h:2691
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition: ast.h:2706
pm_constant_id_t name
ClassNode::name.
Definition: ast.h:2726
pm_node_t base
The embedded base node.
Definition: ast.h:2685
struct pm_node * body
ClassNode::body.
Definition: ast.h:2716
struct pm_node * superclass
ClassNode::superclass.
Definition: ast.h:2711
ClassVariableAndWriteNode.
Definition: ast.h:2741
struct pm_node * value
ClassVariableAndWriteNode::value.
Definition: ast.h:2784
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition: ast.h:2754
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition: ast.h:2774
pm_node_t base
The embedded base node.
Definition: ast.h:2743
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition: ast.h:2764
ClassVariableOperatorWriteNode.
Definition: ast.h:2799
pm_node_t base
The embedded base node.
Definition: ast.h:2801
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition: ast.h:2807
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition: ast.h:2812
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition: ast.h:2827
struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition: ast.h:2822
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition: ast.h:2817
ClassVariableOrWriteNode.
Definition: ast.h:2842
pm_node_t base
The embedded base node.
Definition: ast.h:2844
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition: ast.h:2855
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition: ast.h:2860
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition: ast.h:2850
struct pm_node * value
ClassVariableOrWriteNode::value.
Definition: ast.h:2865
ClassVariableReadNode.
Definition: ast.h:2880
pm_node_t base
The embedded base node.
Definition: ast.h:2882
pm_constant_id_t name
ClassVariableReadNode::name.
Definition: ast.h:2894
ClassVariableTargetNode.
Definition: ast.h:2909
pm_node_t base
The embedded base node.
Definition: ast.h:2911
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition: ast.h:2917
ClassVariableWriteNode.
Definition: ast.h:2932
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition: ast.h:2956
pm_node_t base
The embedded base node.
Definition: ast.h:2934
struct pm_node * value
ClassVariableWriteNode::value.
Definition: ast.h:2969
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition: ast.h:2979
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition: ast.h:2946
ConstantAndWriteNode.
Definition: ast.h:2994
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition: ast.h:3012
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition: ast.h:3007
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition: ast.h:3002
struct pm_node * value
ConstantAndWriteNode::value.
Definition: ast.h:3017
pm_node_t base
The embedded base node.
Definition: ast.h:2996
A list of constant IDs.
ConstantOperatorWriteNode.
Definition: ast.h:3032
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition: ast.h:3040
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition: ast.h:3045
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition: ast.h:3060
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition: ast.h:3050
struct pm_node * value
ConstantOperatorWriteNode::value.
Definition: ast.h:3055
pm_node_t base
The embedded base node.
Definition: ast.h:3034
ConstantOrWriteNode.
Definition: ast.h:3075
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition: ast.h:3093
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition: ast.h:3088
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition: ast.h:3083
pm_node_t base
The embedded base node.
Definition: ast.h:3077
struct pm_node * value
ConstantOrWriteNode::value.
Definition: ast.h:3098
ConstantPathAndWriteNode.
Definition: ast.h:3113
pm_node_t base
The embedded base node.
Definition: ast.h:3115
struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition: ast.h:3121
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition: ast.h:3126
struct pm_node * value
ConstantPathAndWriteNode::value.
Definition: ast.h:3131
ConstantPathNode.
Definition: ast.h:3146
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition: ast.h:3185
pm_node_t base
The embedded base node.
Definition: ast.h:3148
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition: ast.h:3198
pm_constant_id_t name
ConstantPathNode::name.
Definition: ast.h:3172
struct pm_node * parent
ConstantPathNode::parent.
Definition: ast.h:3165
ConstantPathOperatorWriteNode.
Definition: ast.h:3213
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition: ast.h:3221
struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition: ast.h:3231
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition: ast.h:3236
pm_node_t base
The embedded base node.
Definition: ast.h:3215
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition: ast.h:3226
ConstantPathOrWriteNode.
Definition: ast.h:3251
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition: ast.h:3264
pm_node_t base
The embedded base node.
Definition: ast.h:3253
struct pm_node * value
ConstantPathOrWriteNode::value.
Definition: ast.h:3269
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition: ast.h:3259
ConstantPathTargetNode.
Definition: ast.h:3284
pm_node_t base
The embedded base node.
Definition: ast.h:3286
struct pm_node * parent
ConstantPathTargetNode::parent.
Definition: ast.h:3292
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition: ast.h:3302
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition: ast.h:3297
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition: ast.h:3307
ConstantPathWriteNode.
Definition: ast.h:3328
struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition: ast.h:3344
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition: ast.h:3354
pm_node_t base
The embedded base node.
Definition: ast.h:3330
struct pm_node * value
ConstantPathWriteNode::value.
Definition: ast.h:3364
ConstantReadNode.
Definition: ast.h:3379
pm_node_t base
The embedded base node.
Definition: ast.h:3381
pm_constant_id_t name
ConstantReadNode::name.
Definition: ast.h:3393
ConstantTargetNode.
Definition: ast.h:3408
pm_node_t base
The embedded base node.
Definition: ast.h:3410
pm_constant_id_t name
ConstantTargetNode::name.
Definition: ast.h:3416
ConstantWriteNode.
Definition: ast.h:3431
pm_node_t base
The embedded base node.
Definition: ast.h:3433
struct pm_node * value
ConstantWriteNode::value.
Definition: ast.h:3468
pm_constant_id_t name
ConstantWriteNode::name.
Definition: ast.h:3445
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition: ast.h:3455
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition: ast.h:3478
DefNode.
Definition: ast.h:3494
struct pm_parameters_node * parameters
DefNode::parameters.
Definition: ast.h:3517
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition: ast.h:3557
pm_constant_id_t name
DefNode::name.
Definition: ast.h:3502
pm_location_t name_loc
DefNode::name_loc.
Definition: ast.h:3507
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition: ast.h:3547
struct pm_node * body
DefNode::body.
Definition: ast.h:3522
pm_location_t equal_loc
DefNode::equal_loc.
Definition: ast.h:3552
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition: ast.h:3532
struct pm_node * receiver
DefNode::receiver.
Definition: ast.h:3512
pm_node_t base
The embedded base node.
Definition: ast.h:3496
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition: ast.h:3542
pm_location_t operator_loc
DefNode::operator_loc.
Definition: ast.h:3537
pm_constant_id_list_t locals
DefNode::locals.
Definition: ast.h:3527
DefinedNode.
Definition: ast.h:3572
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition: ast.h:3580
pm_node_t base
The embedded base node.
Definition: ast.h:3574
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition: ast.h:3590
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition: ast.h:3595
struct pm_node * value
DefinedNode::value.
Definition: ast.h:3585
ElseNode.
Definition: ast.h:3610
struct pm_statements_node * statements
ElseNode::statements.
Definition: ast.h:3623
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition: ast.h:3618
pm_node_t base
The embedded base node.
Definition: ast.h:3612
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition: ast.h:3628
EmbeddedStatementsNode.
Definition: ast.h:3643
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition: ast.h:3661
struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition: ast.h:3656
pm_node_t base
The embedded base node.
Definition: ast.h:3645
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition: ast.h:3651
EmbeddedVariableNode.
Definition: ast.h:3676
struct pm_node * variable
EmbeddedVariableNode::variable.
Definition: ast.h:3689
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition: ast.h:3684
pm_node_t base
The embedded base node.
Definition: ast.h:3678
EnsureNode.
Definition: ast.h:3708
struct pm_statements_node * statements
EnsureNode::statements.
Definition: ast.h:3721
pm_node_t base
The embedded base node.
Definition: ast.h:3710
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition: ast.h:3716
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition: ast.h:3726
FalseNode.
Definition: ast.h:3741
pm_node_t base
The embedded base node.
Definition: ast.h:3743
FindPatternNode.
Definition: ast.h:3765
struct pm_node * constant
FindPatternNode::constant.
Definition: ast.h:3773
struct pm_node * right
FindPatternNode::right.
Definition: ast.h:3788
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition: ast.h:3793
pm_node_t base
The embedded base node.
Definition: ast.h:3767
struct pm_node_list requireds
FindPatternNode::requireds.
Definition: ast.h:3783
struct pm_splat_node * left
FindPatternNode::left.
Definition: ast.h:3778
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition: ast.h:3798
FlipFlopNode.
Definition: ast.h:3816
pm_node_t base
The embedded base node.
Definition: ast.h:3818
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition: ast.h:3834
struct pm_node * left
FlipFlopNode::left.
Definition: ast.h:3824
struct pm_node * right
FlipFlopNode::right.
Definition: ast.h:3829
FloatNode.
Definition: ast.h:3849
double value
FloatNode::value.
Definition: ast.h:3859
pm_node_t base
The embedded base node.
Definition: ast.h:3851
ForNode.
Definition: ast.h:3874
struct pm_statements_node * statements
ForNode::statements.
Definition: ast.h:3909
struct pm_node * index
ForNode::index.
Definition: ast.h:3887
struct pm_node * collection
ForNode::collection.
Definition: ast.h:3897
pm_node_t base
The embedded base node.
Definition: ast.h:3876
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition: ast.h:3949
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition: ast.h:3919
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition: ast.h:3939
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition: ast.h:3929
ForwardingArgumentsNode.
Definition: ast.h:3966
pm_node_t base
The embedded base node.
Definition: ast.h:3968
ForwardingParameterNode.
Definition: ast.h:3985
pm_node_t base
The embedded base node.
Definition: ast.h:3987
ForwardingSuperNode.
Definition: ast.h:4003
pm_node_t base
The embedded base node.
Definition: ast.h:4005
struct pm_block_node * block
ForwardingSuperNode::block.
Definition: ast.h:4011
GlobalVariableAndWriteNode.
Definition: ast.h:4026
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition: ast.h:4044
pm_node_t base
The embedded base node.
Definition: ast.h:4028
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition: ast.h:4039
struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition: ast.h:4049
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition: ast.h:4034
GlobalVariableOperatorWriteNode.
Definition: ast.h:4064
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition: ast.h:4072
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition: ast.h:4092
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition: ast.h:4087
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition: ast.h:4077
pm_node_t base
The embedded base node.
Definition: ast.h:4066
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition: ast.h:4082
GlobalVariableOrWriteNode.
Definition: ast.h:4107
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition: ast.h:4115
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition: ast.h:4120
pm_node_t base
The embedded base node.
Definition: ast.h:4109
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition: ast.h:4125
struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition: ast.h:4130
GlobalVariableReadNode.
Definition: ast.h:4145
pm_node_t base
The embedded base node.
Definition: ast.h:4147
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition: ast.h:4159
GlobalVariableTargetNode.
Definition: ast.h:4174
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition: ast.h:4182
pm_node_t base
The embedded base node.
Definition: ast.h:4176
GlobalVariableWriteNode.
Definition: ast.h:4197
struct pm_node * value
GlobalVariableWriteNode::value.
Definition: ast.h:4234
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition: ast.h:4221
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition: ast.h:4244
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition: ast.h:4211
pm_node_t base
The embedded base node.
Definition: ast.h:4199
HashNode.
Definition: ast.h:4259
struct pm_node_list elements
HashNode::elements.
Definition: ast.h:4285
pm_node_t base
The embedded base node.
Definition: ast.h:4261
pm_location_t closing_loc
HashNode::closing_loc.
Definition: ast.h:4295
pm_location_t opening_loc
HashNode::opening_loc.
Definition: ast.h:4272
HashPatternNode.
Definition: ast.h:4313
struct pm_node_list elements
HashPatternNode::elements.
Definition: ast.h:4326
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition: ast.h:4336
pm_node_t base
The embedded base node.
Definition: ast.h:4315
struct pm_node * rest
HashPatternNode::rest.
Definition: ast.h:4331
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition: ast.h:4341
struct pm_node * constant
HashPatternNode::constant.
Definition: ast.h:4321
IfNode.
Definition: ast.h:4362
struct pm_node * predicate
IfNode::predicate.
Definition: ast.h:4395
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition: ast.h:4453
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition: ast.h:4377
struct pm_statements_node * statements
IfNode::statements.
Definition: ast.h:4422
pm_node_t base
The embedded base node.
Definition: ast.h:4364
struct pm_node * subsequent
IfNode::subsequent.
Definition: ast.h:4441
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition: ast.h:4408
ImaginaryNode.
Definition: ast.h:4468
struct pm_node * numeric
ImaginaryNode::numeric.
Definition: ast.h:4476
pm_node_t base
The embedded base node.
Definition: ast.h:4470
ImplicitNode.
Definition: ast.h:4497
struct pm_node * value
ImplicitNode::value.
Definition: ast.h:4505
pm_node_t base
The embedded base node.
Definition: ast.h:4499
ImplicitRestNode.
Definition: ast.h:4529
pm_node_t base
The embedded base node.
Definition: ast.h:4531
InNode.
Definition: ast.h:4547
struct pm_statements_node * statements
InNode::statements.
Definition: ast.h:4560
struct pm_node * pattern
InNode::pattern.
Definition: ast.h:4555
pm_node_t base
The embedded base node.
Definition: ast.h:4549
pm_location_t then_loc
InNode::then_loc.
Definition: ast.h:4570
pm_location_t in_loc
InNode::in_loc.
Definition: ast.h:4565
IndexAndWriteNode.
Definition: ast.h:4591
struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition: ast.h:4614
struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition: ast.h:4599
pm_node_t base
The embedded base node.
Definition: ast.h:4593
struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition: ast.h:4624
struct pm_node * value
IndexAndWriteNode::value.
Definition: ast.h:4634
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition: ast.h:4629
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition: ast.h:4619
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition: ast.h:4609
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition: ast.h:4604
IndexOperatorWriteNode.
Definition: ast.h:4655
pm_node_t base
The embedded base node.
Definition: ast.h:4657
struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition: ast.h:4688
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition: ast.h:4698
struct pm_node * value
IndexOperatorWriteNode::value.
Definition: ast.h:4703
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition: ast.h:4673
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition: ast.h:4668
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition: ast.h:4683
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition: ast.h:4678
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition: ast.h:4693
struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition: ast.h:4663
IndexOrWriteNode.
Definition: ast.h:4724
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition: ast.h:4752
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition: ast.h:4737
pm_node_t base
The embedded base node.
Definition: ast.h:4726
struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition: ast.h:4757
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition: ast.h:4762
struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition: ast.h:4732
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition: ast.h:4742
struct pm_node * value
IndexOrWriteNode::value.
Definition: ast.h:4767
struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition: ast.h:4747
IndexTargetNode.
Definition: ast.h:4796
pm_node_t base
The embedded base node.
Definition: ast.h:4798
struct pm_node * receiver
IndexTargetNode::receiver.
Definition: ast.h:4804
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition: ast.h:4819
struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition: ast.h:4814
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition: ast.h:4809
struct pm_block_argument_node * block
IndexTargetNode::block.
Definition: ast.h:4824
InstanceVariableAndWriteNode.
Definition: ast.h:4839
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition: ast.h:4857
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition: ast.h:4852
struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition: ast.h:4862
pm_node_t base
The embedded base node.
Definition: ast.h:4841
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition: ast.h:4847
InstanceVariableOperatorWriteNode.
Definition: ast.h:4877
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition: ast.h:4900
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition: ast.h:4905
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition: ast.h:4895
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition: ast.h:4885
pm_node_t base
The embedded base node.
Definition: ast.h:4879
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition: ast.h:4890
InstanceVariableOrWriteNode.
Definition: ast.h:4920
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition: ast.h:4938
struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition: ast.h:4943
pm_node_t base
The embedded base node.
Definition: ast.h:4922
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition: ast.h:4933
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition: ast.h:4928
InstanceVariableReadNode.
Definition: ast.h:4958
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition: ast.h:4972
pm_node_t base
The embedded base node.
Definition: ast.h:4960
InstanceVariableTargetNode.
Definition: ast.h:4987
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition: ast.h:4995
pm_node_t base
The embedded base node.
Definition: ast.h:4989
InstanceVariableWriteNode.
Definition: ast.h:5010
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition: ast.h:5057
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition: ast.h:5024
pm_node_t base
The embedded base node.
Definition: ast.h:5012
struct pm_node * value
InstanceVariableWriteNode::value.
Definition: ast.h:5047
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition: ast.h:5034
IntegerNode.
Definition: ast.h:5078
pm_integer_t value
IntegerNode::value.
Definition: ast.h:5088
pm_node_t base
The embedded base node.
Definition: ast.h:5080
A structure represents an arbitrary-sized integer.
Definition: pm_integer.h:20
InterpolatedMatchLastLineNode.
Definition: ast.h:5116
pm_node_t base
The embedded base node.
Definition: ast.h:5118
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition: ast.h:5134
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition: ast.h:5129
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition: ast.h:5124
InterpolatedRegularExpressionNode.
Definition: ast.h:5162
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition: ast.h:5170
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition: ast.h:5175
pm_node_t base
The embedded base node.
Definition: ast.h:5164
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition: ast.h:5180
InterpolatedStringNode.
Definition: ast.h:5199
pm_node_t base
The embedded base node.
Definition: ast.h:5201
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition: ast.h:5217
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition: ast.h:5207
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition: ast.h:5212
InterpolatedSymbolNode.
Definition: ast.h:5232
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition: ast.h:5245
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition: ast.h:5250
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition: ast.h:5240
pm_node_t base
The embedded base node.
Definition: ast.h:5234
InterpolatedXStringNode.
Definition: ast.h:5265
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition: ast.h:5273
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition: ast.h:5283
pm_node_t base
The embedded base node.
Definition: ast.h:5267
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition: ast.h:5278
ItLocalVariableReadNode.
Definition: ast.h:5298
pm_node_t base
The embedded base node.
Definition: ast.h:5300
ItParametersNode.
Definition: ast.h:5316
pm_node_t base
The embedded base node.
Definition: ast.h:5318
KeywordHashNode.
Definition: ast.h:5337
pm_node_t base
The embedded base node.
Definition: ast.h:5339
struct pm_node_list elements
KeywordHashNode::elements.
Definition: ast.h:5345
KeywordRestParameterNode.
Definition: ast.h:5364
pm_node_t base
The embedded base node.
Definition: ast.h:5366
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition: ast.h:5372
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition: ast.h:5382
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition: ast.h:5377
LambdaNode.
Definition: ast.h:5397
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition: ast.h:5420
pm_node_t base
The embedded base node.
Definition: ast.h:5399
struct pm_node * body
LambdaNode::body.
Definition: ast.h:5430
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition: ast.h:5415
struct pm_node * parameters
LambdaNode::parameters.
Definition: ast.h:5425
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition: ast.h:5410
pm_constant_id_list_t locals
LambdaNode::locals.
Definition: ast.h:5405
LocalVariableAndWriteNode.
Definition: ast.h:5445
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition: ast.h:5468
pm_node_t base
The embedded base node.
Definition: ast.h:5447
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition: ast.h:5473
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition: ast.h:5458
struct pm_node * value
LocalVariableAndWriteNode::value.
Definition: ast.h:5463
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition: ast.h:5453
LocalVariableOperatorWriteNode.
Definition: ast.h:5488
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition: ast.h:5521
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition: ast.h:5516
pm_node_t base
The embedded base node.
Definition: ast.h:5490
struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition: ast.h:5506
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition: ast.h:5496
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition: ast.h:5501
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition: ast.h:5511
LocalVariableOrWriteNode.
Definition: ast.h:5536
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition: ast.h:5564
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition: ast.h:5549
struct pm_node * value
LocalVariableOrWriteNode::value.
Definition: ast.h:5554
pm_node_t base
The embedded base node.
Definition: ast.h:5538
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition: ast.h:5559
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition: ast.h:5544
LocalVariableReadNode.
Definition: ast.h:5579
uint32_t depth
LocalVariableReadNode::depth.
Definition: ast.h:5610
pm_constant_id_t name
LocalVariableReadNode::name.
Definition: ast.h:5597
pm_node_t base
The embedded base node.
Definition: ast.h:5581
LocalVariableTargetNode.
Definition: ast.h:5625
uint32_t depth
LocalVariableTargetNode::depth.
Definition: ast.h:5638
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition: ast.h:5633
pm_node_t base
The embedded base node.
Definition: ast.h:5627
LocalVariableWriteNode.
Definition: ast.h:5653
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition: ast.h:5717
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition: ast.h:5690
pm_node_t base
The embedded base node.
Definition: ast.h:5655
struct pm_node * value
LocalVariableWriteNode::value.
Definition: ast.h:5707
uint32_t depth
LocalVariableWriteNode::depth.
Definition: ast.h:5680
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition: ast.h:5667
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:5745
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition: ast.h:5758
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition: ast.h:5753
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition: ast.h:5763
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition: ast.h:5768
pm_node_t base
The embedded base node.
Definition: ast.h:5747
MatchPredicateNode.
Definition: ast.h:5783
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition: ast.h:5801
struct pm_node * pattern
MatchPredicateNode::pattern.
Definition: ast.h:5796
struct pm_node * value
MatchPredicateNode::value.
Definition: ast.h:5791
pm_node_t base
The embedded base node.
Definition: ast.h:5785
MatchRequiredNode.
Definition: ast.h:5816
pm_node_t base
The embedded base node.
Definition: ast.h:5818
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition: ast.h:5834
struct pm_node * value
MatchRequiredNode::value.
Definition: ast.h:5824
struct pm_node * pattern
MatchRequiredNode::pattern.
Definition: ast.h:5829
MatchWriteNode.
Definition: ast.h:5849
pm_node_t base
The embedded base node.
Definition: ast.h:5851
struct pm_node_list targets
MatchWriteNode::targets.
Definition: ast.h:5862
struct pm_call_node * call
MatchWriteNode::call.
Definition: ast.h:5857
MissingNode.
Definition: ast.h:5874
pm_node_t base
The embedded base node.
Definition: ast.h:5876
ModuleNode.
Definition: ast.h:5892
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition: ast.h:5920
struct pm_node * constant_path
ModuleNode::constant_path.
Definition: ast.h:5910
struct pm_node * body
ModuleNode::body.
Definition: ast.h:5915
pm_constant_id_list_t locals
ModuleNode::locals.
Definition: ast.h:5900
pm_node_t base
The embedded base node.
Definition: ast.h:5894
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition: ast.h:5905
pm_constant_id_t name
ModuleNode::name.
Definition: ast.h:5925
MultiTargetNode.
Definition: ast.h:5945
pm_node_t base
The embedded base node.
Definition: ast.h:5947
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition: ast.h:6003
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition: ast.h:5963
struct pm_node * rest
MultiTargetNode::rest.
Definition: ast.h:5983
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition: ast.h:6013
struct pm_node_list rights
MultiTargetNode::rights.
Definition: ast.h:5993
MultiWriteNode.
Definition: ast.h:6028
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition: ast.h:6096
struct pm_node * value
MultiWriteNode::value.
Definition: ast.h:6116
struct pm_node * rest
MultiWriteNode::rest.
Definition: ast.h:6066
struct pm_node_list rights
MultiWriteNode::rights.
Definition: ast.h:6076
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition: ast.h:6106
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition: ast.h:6086
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition: ast.h:6046
pm_node_t base
The embedded base node.
Definition: ast.h:6030
NextNode.
Definition: ast.h:6131
struct pm_arguments_node * arguments
NextNode::arguments.
Definition: ast.h:6139
pm_node_t base
The embedded base node.
Definition: ast.h:6133
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition: ast.h:6144
NilNode.
Definition: ast.h:6159
pm_node_t base
The embedded base node.
Definition: ast.h:6161
NoKeywordsParameterNode.
Definition: ast.h:6178
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition: ast.h:6191
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition: ast.h:6186
pm_node_t base
The embedded base node.
Definition: ast.h:6180
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:6206
pm_node_t base
The embedded base node.
Definition: ast.h:6208
uint8_t maximum
NumberedParametersNode::maximum.
Definition: ast.h:6214
NumberedReferenceReadNode.
Definition: ast.h:6229
pm_node_t base
The embedded base node.
Definition: ast.h:6231
uint32_t number
NumberedReferenceReadNode::number.
Definition: ast.h:6245
OptionalKeywordParameterNode.
Definition: ast.h:6264
pm_node_t base
The embedded base node.
Definition: ast.h:6266
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition: ast.h:6272
struct pm_node * value
OptionalKeywordParameterNode::value.
Definition: ast.h:6282
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition: ast.h:6277
OptionalParameterNode.
Definition: ast.h:6301
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition: ast.h:6314
struct pm_node * value
OptionalParameterNode::value.
Definition: ast.h:6324
pm_constant_id_t name
OptionalParameterNode::name.
Definition: ast.h:6309
pm_node_t base
The embedded base node.
Definition: ast.h:6303
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition: ast.h:6319
OrNode.
Definition: ast.h:6339
struct pm_node * left
OrNode::left.
Definition: ast.h:6355
struct pm_node * right
OrNode::right.
Definition: ast.h:6368
pm_node_t base
The embedded base node.
Definition: ast.h:6341
pm_location_t operator_loc
OrNode::operator_loc.
Definition: ast.h:6378
ParametersNode.
Definition: ast.h:6394
struct pm_node * rest
ParametersNode::rest.
Definition: ast.h:6412
struct pm_node_list requireds
ParametersNode::requireds.
Definition: ast.h:6402
struct pm_block_parameter_node * block
ParametersNode::block.
Definition: ast.h:6432
struct pm_node_list optionals
ParametersNode::optionals.
Definition: ast.h:6407
struct pm_node_list posts
ParametersNode::posts.
Definition: ast.h:6417
pm_node_t base
The embedded base node.
Definition: ast.h:6396
struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition: ast.h:6427
struct pm_node_list keywords
ParametersNode::keywords.
Definition: ast.h:6422
ParenthesesNode.
Definition: ast.h:6447
struct pm_node * body
ParenthesesNode::body.
Definition: ast.h:6455
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition: ast.h:6465
pm_node_t base
The embedded base node.
Definition: ast.h:6449
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition: ast.h:6460
PinnedExpressionNode.
Definition: ast.h:6480
pm_node_t base
The embedded base node.
Definition: ast.h:6482
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition: ast.h:6503
struct pm_node * expression
PinnedExpressionNode::expression.
Definition: ast.h:6488
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition: ast.h:6498
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition: ast.h:6493
PinnedVariableNode.
Definition: ast.h:6518
struct pm_node * variable
PinnedVariableNode::variable.
Definition: ast.h:6526
pm_node_t base
The embedded base node.
Definition: ast.h:6520
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition: ast.h:6531
PostExecutionNode.
Definition: ast.h:6546
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition: ast.h:6569
struct pm_statements_node * statements
PostExecutionNode::statements.
Definition: ast.h:6554
pm_node_t base
The embedded base node.
Definition: ast.h:6548
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition: ast.h:6564
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition: ast.h:6559
PreExecutionNode.
Definition: ast.h:6584
struct pm_statements_node * statements
PreExecutionNode::statements.
Definition: ast.h:6592
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition: ast.h:6607
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition: ast.h:6602
pm_node_t base
The embedded base node.
Definition: ast.h:6586
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition: ast.h:6597
ProgramNode.
Definition: ast.h:6619
struct pm_statements_node * statements
ProgramNode::statements.
Definition: ast.h:6632
pm_node_t base
The embedded base node.
Definition: ast.h:6621
pm_constant_id_list_t locals
ProgramNode::locals.
Definition: ast.h:6627
RangeNode.
Definition: ast.h:6653
struct pm_node * right
RangeNode::right.
Definition: ast.h:6683
pm_location_t operator_loc
RangeNode::operator_loc.
Definition: ast.h:6690
pm_node_t base
The embedded base node.
Definition: ast.h:6655
struct pm_node * left
RangeNode::left.
Definition: ast.h:6669
RationalNode.
Definition: ast.h:6711
pm_node_t base
The embedded base node.
Definition: ast.h:6713
pm_integer_t denominator
RationalNode::denominator.
Definition: ast.h:6732
pm_integer_t numerator
RationalNode::numerator.
Definition: ast.h:6723
RedoNode.
Definition: ast.h:6747
pm_node_t base
The embedded base node.
Definition: ast.h:6749
RegularExpressionNode.
Definition: ast.h:6778
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition: ast.h:6796
pm_node_t base
The embedded base node.
Definition: ast.h:6780
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition: ast.h:6801
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition: ast.h:6786
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition: ast.h:6791
RequiredKeywordParameterNode.
Definition: ast.h:6820
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition: ast.h:6833
pm_node_t base
The embedded base node.
Definition: ast.h:6822
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition: ast.h:6828
RequiredParameterNode.
Definition: ast.h:6852
pm_constant_id_t name
RequiredParameterNode::name.
Definition: ast.h:6860
pm_node_t base
The embedded base node.
Definition: ast.h:6854
RescueModifierNode.
Definition: ast.h:6875
pm_node_t base
The embedded base node.
Definition: ast.h:6877
struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition: ast.h:6893
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition: ast.h:6888
struct pm_node * expression
RescueModifierNode::expression.
Definition: ast.h:6883
RescueNode.
Definition: ast.h:6913
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition: ast.h:6921
struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition: ast.h:6946
pm_location_t operator_loc
RescueNode::operator_loc.
Definition: ast.h:6931
struct pm_node * reference
RescueNode::reference.
Definition: ast.h:6936
struct pm_node_list exceptions
RescueNode::exceptions.
Definition: ast.h:6926
struct pm_statements_node * statements
RescueNode::statements.
Definition: ast.h:6941
pm_node_t base
The embedded base node.
Definition: ast.h:6915
RestParameterNode.
Definition: ast.h:6965
pm_constant_id_t name
RestParameterNode::name.
Definition: ast.h:6973
pm_location_t name_loc
RestParameterNode::name_loc.
Definition: ast.h:6978
pm_node_t base
The embedded base node.
Definition: ast.h:6967
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition: ast.h:6983
RetryNode.
Definition: ast.h:6998
pm_node_t base
The embedded base node.
Definition: ast.h:7000
ReturnNode.
Definition: ast.h:7016
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition: ast.h:7024
pm_node_t base
The embedded base node.
Definition: ast.h:7018
struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition: ast.h:7029
SelfNode.
Definition: ast.h:7044
pm_node_t base
The embedded base node.
Definition: ast.h:7046
ShareableConstantNode.
Definition: ast.h:7068
struct pm_node * write
ShareableConstantNode::write.
Definition: ast.h:7078
pm_node_t base
The embedded base node.
Definition: ast.h:7070
SingletonClassNode.
Definition: ast.h:7093
pm_node_t base
The embedded base node.
Definition: ast.h:7095
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition: ast.h:7101
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition: ast.h:7111
struct pm_node * expression
SingletonClassNode::expression.
Definition: ast.h:7116
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition: ast.h:7126
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition: ast.h:7106
struct pm_node * body
SingletonClassNode::body.
Definition: ast.h:7121
SourceEncodingNode.
Definition: ast.h:7141
pm_node_t base
The embedded base node.
Definition: ast.h:7143
SourceFileNode.
Definition: ast.h:7165
pm_string_t filepath
SourceFileNode::filepath.
Definition: ast.h:7175
pm_node_t base
The embedded base node.
Definition: ast.h:7167
SourceLineNode.
Definition: ast.h:7190
pm_node_t base
The embedded base node.
Definition: ast.h:7192
SplatNode.
Definition: ast.h:7208
struct pm_node * expression
SplatNode::expression.
Definition: ast.h:7221
pm_node_t base
The embedded base node.
Definition: ast.h:7210
pm_location_t operator_loc
SplatNode::operator_loc.
Definition: ast.h:7216
StatementsNode.
Definition: ast.h:7236
struct pm_node_list body
StatementsNode::body.
Definition: ast.h:7244
pm_node_t base
The embedded base node.
Definition: ast.h:7238
StringNode.
Definition: ast.h:7271
pm_node_t base
The embedded base node.
Definition: ast.h:7273
pm_string_t unescaped
StringNode::unescaped.
Definition: ast.h:7294
pm_location_t content_loc
StringNode::content_loc.
Definition: ast.h:7284
pm_location_t closing_loc
StringNode::closing_loc.
Definition: ast.h:7289
pm_location_t opening_loc
StringNode::opening_loc.
Definition: ast.h:7279
A generic string type that can have various ownership semantics.
Definition: pm_string.h:33
SuperNode.
Definition: ast.h:7312
struct pm_arguments_node * arguments
SuperNode::arguments.
Definition: ast.h:7330
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition: ast.h:7325
pm_node_t base
The embedded base node.
Definition: ast.h:7314
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition: ast.h:7320
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition: ast.h:7335
struct pm_node * block
SuperNode::block.
Definition: ast.h:7340
SymbolNode.
Definition: ast.h:7363
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition: ast.h:7371
pm_location_t value_loc
SymbolNode::value_loc.
Definition: ast.h:7376
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition: ast.h:7381
pm_string_t unescaped
SymbolNode::unescaped.
Definition: ast.h:7386
pm_node_t base
The embedded base node.
Definition: ast.h:7365
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:7401
pm_node_t base
The embedded base node.
Definition: ast.h:7403
UndefNode.
Definition: ast.h:7419
pm_node_t base
The embedded base node.
Definition: ast.h:7421
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition: ast.h:7432
struct pm_node_list names
UndefNode::names.
Definition: ast.h:7427
UnlessNode.
Definition: ast.h:7450
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition: ast.h:7466
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition: ast.h:7489
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition: ast.h:7520
pm_node_t base
The embedded base node.
Definition: ast.h:7452
struct pm_statements_node * statements
UnlessNode::statements.
Definition: ast.h:7500
struct pm_node * predicate
UnlessNode::predicate.
Definition: ast.h:7479
struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition: ast.h:7510
UntilNode.
Definition: ast.h:7541
struct pm_statements_node * statements
UntilNode::statements.
Definition: ast.h:7564
pm_location_t closing_loc
UntilNode::closing_loc.
Definition: ast.h:7554
struct pm_node * predicate
UntilNode::predicate.
Definition: ast.h:7559
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition: ast.h:7549
pm_node_t base
The embedded base node.
Definition: ast.h:7543
WhenNode.
Definition: ast.h:7581
struct pm_statements_node * statements
WhenNode::statements.
Definition: ast.h:7604
pm_node_t base
The embedded base node.
Definition: ast.h:7583
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition: ast.h:7599
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition: ast.h:7589
struct pm_node_list conditions
WhenNode::conditions.
Definition: ast.h:7594
WhileNode.
Definition: ast.h:7625
pm_location_t closing_loc
WhileNode::closing_loc.
Definition: ast.h:7638
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition: ast.h:7633
struct pm_statements_node * statements
WhileNode::statements.
Definition: ast.h:7648
pm_node_t base
The embedded base node.
Definition: ast.h:7627
struct pm_node * predicate
WhileNode::predicate.
Definition: ast.h:7643
XStringNode.
Definition: ast.h:7667
pm_location_t closing_loc
XStringNode::closing_loc.
Definition: ast.h:7685
pm_location_t opening_loc
XStringNode::opening_loc.
Definition: ast.h:7675
pm_location_t content_loc
XStringNode::content_loc.
Definition: ast.h:7680
pm_string_t unescaped
XStringNode::unescaped.
Definition: ast.h:7690
pm_node_t base
The embedded base node.
Definition: ast.h:7669
YieldNode.
Definition: ast.h:7705
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition: ast.h:7713
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition: ast.h:7718
pm_node_t base
The embedded base node.
Definition: ast.h:7707
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition: ast.h:7728
struct pm_arguments_node * arguments
YieldNode::arguments.
Definition: ast.h:7723