Prism Ruby parser
Loading...
Searching...
No Matches
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
16#ifndef PRISM_AST_H
17#define PRISM_AST_H
18
19#include "prism/compiler/align.h"
20#include "prism/compiler/exported.h"
21
22#include "prism/arena.h"
23#include "prism/constant_pool.h"
24#include "prism/integer.h"
25#include "prism/stringy.h"
26
27#include <stddef.h>
28#include <stdint.h>
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
37typedef enum pm_token_type {
40
43
46
49
52
55
58
61
64
67
70
73
76
79
82
85
88
91
94
97
100
103
106
109
112
115
118
121
124
127
130
133
136
139
142
145
148
151
154
157
160
163
166
169
172
175
178
181
184
187
190
193
196
199
202
205
208
211
214
217
220
223
226
229
232
235
238
241
244
247
250
253
256
259
262
265
268
271
274
277
280
283
286
289
292
295
298
301
304
307
310
313
316
319
322
325
328
331
334
337
340
343
346
349
352
355
358
361
364
367
370
373
376
379
382
385
388
391
394
397
400
403
406
409
412
415
418
421
424
427
430
433
436
439
442
445
448
451
454
457
460
463
466
469
472
475
478
481
484
487
490
493
496
499
502
505
508
511
514
517
520
523
526
529
532
535
538
541
544
547
551
556typedef struct {
559
561 const uint8_t *start;
562
564 const uint8_t *end;
565} pm_token_t;
566
574PRISM_EXPORTED_FUNCTION const char * pm_token_type(pm_token_type_t token_type);
575
584typedef struct {
586 uint32_t start;
587
589 uint32_t length;
591
592struct pm_node;
593
597typedef struct pm_node_list {
599 size_t size;
600
602 size_t capacity;
603
605 struct pm_node **nodes;
607
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
896
899
902
905
908
911
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
1031
1034
1037
1040
1043
1046
1049
1052
1055
1058
1061
1064
1067
1071
1076typedef uint16_t pm_node_type_t;
1077
1082typedef uint16_t pm_node_flags_t;
1083
1088static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1089static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1090
1122
1126#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1127
1132#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1133
1137#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1138
1142#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1143
1147#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1148
1152#ifdef _MSC_VER
1153#define PM_NODE_ALIGNAS __declspec(align(8))
1154#else
1155#define PM_NODE_ALIGNAS PRISM_ALIGNAS(PRISM_ALIGNOF(void *))
1156#endif
1157
1204
1263
1310
1363
1397
1448
1543
1599
1636
1664
1743
1780
1810
1881
1934
2011
2048
2141
2281
2384
2477
2548
2595
2664
2733
2819
2876
2918
2955
2983
3005
3066
3103
3145
3182
3214
3280
3317
3349
3386
3442
3470
3492
3553
3631
3668
3700
3732
3759
3795
3816
3833
3934
3969
3993
4082
4101
4119
4159
4196
4238
4275
4303
4325
4386
4436
4527
4638
4660
4688
4714
4751
4814
4882
4945
5001
5038
5080
5117
5145
5167
5228
5258
5303
5348
5384
5416
5448
5465
5482
5507
5543
5590
5632
5679
5721
5766
5796
5874
5924
5956
6042
6069
6116
6203
6305
6332
6349
6377
6405
6427
6457
6493
6534
6587
6640
6675
6732
6769
6806
6843
6867
6924
6965
6982
7032
7063
7089
7121
7178
7214
7231
7258
7275
7305
7352
7369
7399
7416
7443
7465
7514
7563
7608
7625
7652
7739
7787
7826
7874
7915
7952
7974
7981
7982 PM_ARRAY_NODE_FLAGS_LAST,
7984
8003
8016
8035
8048
8058
8062typedef enum pm_loop_flags {
8065
8066 PM_LOOP_FLAGS_LAST,
8068
8075
8076 PM_PARAMETER_FLAGS_LAST,
8078
8088
8092typedef enum pm_range_flags {
8095
8096 PM_RANGE_FLAGS_LAST,
8098
8138
8154
8173
8189
8202PRISM_EXPORTED_FUNCTION pm_alias_global_variable_node_t * pm_alias_global_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *new_name, struct pm_node *old_name, pm_location_t keyword_loc);
8203
8216PRISM_EXPORTED_FUNCTION pm_alias_method_node_t * pm_alias_method_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *new_name, struct pm_node *old_name, pm_location_t keyword_loc);
8217
8230PRISM_EXPORTED_FUNCTION pm_alternation_pattern_node_t * pm_alternation_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc);
8231
8244PRISM_EXPORTED_FUNCTION pm_and_node_t * pm_and_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc);
8245
8257
8270PRISM_EXPORTED_FUNCTION pm_array_node_t * pm_array_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t elements, pm_location_t opening_loc, pm_location_t closing_loc);
8271
8287PRISM_EXPORTED_FUNCTION pm_array_pattern_node_t * pm_array_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, pm_node_list_t requireds, struct pm_node *rest, pm_node_list_t posts, pm_location_t opening_loc, pm_location_t closing_loc);
8288
8301PRISM_EXPORTED_FUNCTION pm_assoc_node_t * pm_assoc_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *key, struct pm_node *value, pm_location_t operator_loc);
8302
8314PRISM_EXPORTED_FUNCTION pm_assoc_splat_node_t * pm_assoc_splat_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, pm_location_t operator_loc);
8315
8327
8343PRISM_EXPORTED_FUNCTION pm_begin_node_t * pm_begin_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t begin_keyword_loc, struct pm_statements_node *statements, struct pm_rescue_node *rescue_clause, struct pm_else_node *else_clause, struct pm_ensure_node *ensure_clause, pm_location_t end_keyword_loc);
8344
8356PRISM_EXPORTED_FUNCTION pm_block_argument_node_t * pm_block_argument_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t operator_loc);
8357
8369
8384PRISM_EXPORTED_FUNCTION pm_block_node_t * pm_block_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, struct pm_node *parameters, struct pm_node *body, pm_location_t opening_loc, pm_location_t closing_loc);
8385
8399
8414
8427
8444PRISM_EXPORTED_FUNCTION pm_call_and_write_node_t * pm_call_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_location_t operator_loc, struct pm_node *value);
8445
8464PRISM_EXPORTED_FUNCTION pm_call_node_t * pm_call_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_constant_id_t name, pm_location_t message_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, pm_location_t equal_loc, struct pm_node *block);
8465
8483PRISM_EXPORTED_FUNCTION pm_call_operator_write_node_t * pm_call_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_constant_id_t binary_operator, pm_location_t binary_operator_loc, struct pm_node *value);
8484
8501PRISM_EXPORTED_FUNCTION pm_call_or_write_node_t * pm_call_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_location_t operator_loc, struct pm_node *value);
8502
8516PRISM_EXPORTED_FUNCTION pm_call_target_node_t * pm_call_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_constant_id_t name, pm_location_t message_loc);
8517
8531
8546PRISM_EXPORTED_FUNCTION pm_case_match_node_t * pm_case_match_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *predicate, pm_node_list_t conditions, struct pm_else_node *else_clause, pm_location_t case_keyword_loc, pm_location_t end_keyword_loc);
8547
8562PRISM_EXPORTED_FUNCTION pm_case_node_t * pm_case_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *predicate, pm_node_list_t conditions, struct pm_else_node *else_clause, pm_location_t case_keyword_loc, pm_location_t end_keyword_loc);
8563
8581PRISM_EXPORTED_FUNCTION pm_class_node_t * pm_class_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t class_keyword_loc, struct pm_node *constant_path, pm_location_t inheritance_operator_loc, struct pm_node *superclass, struct pm_node *body, pm_location_t end_keyword_loc, pm_constant_id_t name);
8582
8597
8613
8628
8640
8652
8667
8682
8698
8713
8727
8742
8757
8771
8786
8800
8812
8824
8839
8861PRISM_EXPORTED_FUNCTION pm_def_node_t * pm_def_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *receiver, struct pm_parameters_node *parameters, struct pm_node *body, pm_constant_id_list_t locals, pm_location_t def_keyword_loc, pm_location_t operator_loc, pm_location_t lparen_loc, pm_location_t rparen_loc, pm_location_t equal_loc, pm_location_t end_keyword_loc);
8862
8876PRISM_EXPORTED_FUNCTION pm_defined_node_t * pm_defined_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t lparen_loc, struct pm_node *value, pm_location_t rparen_loc, pm_location_t keyword_loc);
8877
8890PRISM_EXPORTED_FUNCTION pm_else_node_t * pm_else_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t else_keyword_loc, struct pm_statements_node *statements, pm_location_t end_keyword_loc);
8891
8905
8918
8931PRISM_EXPORTED_FUNCTION pm_ensure_node_t * pm_ensure_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t ensure_keyword_loc, struct pm_statements_node *statements, pm_location_t end_keyword_loc);
8932
8944
8955
8971PRISM_EXPORTED_FUNCTION pm_find_pattern_node_t * pm_find_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, struct pm_splat_node *left, pm_node_list_t requireds, struct pm_splat_node *right, pm_location_t opening_loc, pm_location_t closing_loc);
8972
8985PRISM_EXPORTED_FUNCTION pm_flip_flop_node_t * pm_flip_flop_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc);
8986
8997PRISM_EXPORTED_FUNCTION pm_float_node_t * pm_float_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, double value);
8998
9015PRISM_EXPORTED_FUNCTION pm_for_node_t * pm_for_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *index, struct pm_node *collection, struct pm_statements_node *statements, pm_location_t for_keyword_loc, pm_location_t in_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc);
9016
9027
9038
9051
9066
9082
9097
9109
9121
9136
9149PRISM_EXPORTED_FUNCTION pm_hash_node_t * pm_hash_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t elements, pm_location_t closing_loc);
9150
9165PRISM_EXPORTED_FUNCTION pm_hash_pattern_node_t * pm_hash_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, pm_node_list_t elements, struct pm_node *rest, pm_location_t opening_loc, pm_location_t closing_loc);
9166
9182PRISM_EXPORTED_FUNCTION pm_if_node_t * pm_if_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t if_keyword_loc, struct pm_node *predicate, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_node *subsequent, pm_location_t end_keyword_loc);
9183
9195
9207
9218
9232PRISM_EXPORTED_FUNCTION pm_in_node_t * pm_in_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *pattern, struct pm_statements_node *statements, pm_location_t in_keyword_loc, pm_location_t then_keyword_loc);
9233
9251PRISM_EXPORTED_FUNCTION pm_index_and_write_node_t * pm_index_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_location_t operator_loc, struct pm_node *value);
9252
9271PRISM_EXPORTED_FUNCTION pm_index_operator_write_node_t * pm_index_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_constant_id_t binary_operator, pm_location_t binary_operator_loc, struct pm_node *value);
9272
9290PRISM_EXPORTED_FUNCTION pm_index_or_write_node_t * pm_index_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_location_t operator_loc, struct pm_node *value);
9291
9306PRISM_EXPORTED_FUNCTION pm_index_target_node_t * pm_index_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block);
9307
9322
9338
9353
9365
9377
9392
9404
9418
9432
9446
9460
9474
9485
9496
9508
9522
9538PRISM_EXPORTED_FUNCTION pm_lambda_node_t * pm_lambda_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t operator_loc, pm_location_t opening_loc, pm_location_t closing_loc, struct pm_node *parameters, struct pm_node *body);
9539
9555
9571PRISM_EXPORTED_FUNCTION pm_local_variable_operator_write_node_t * pm_local_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t name, pm_constant_id_t binary_operator, uint32_t depth);
9572
9588
9601
9614
9629PRISM_EXPORTED_FUNCTION pm_local_variable_write_node_t * pm_local_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, uint32_t depth, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc);
9630
9645
9658PRISM_EXPORTED_FUNCTION pm_match_predicate_node_t * pm_match_predicate_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_node *pattern, pm_location_t keyword_loc);
9659
9672PRISM_EXPORTED_FUNCTION pm_match_required_node_t * pm_match_required_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_node *pattern, pm_location_t operator_loc);
9673
9686
9702PRISM_EXPORTED_FUNCTION pm_module_node_t * pm_module_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t module_keyword_loc, struct pm_node *constant_path, struct pm_node *body, pm_location_t end_keyword_loc, pm_constant_id_t name);
9703
9719
9736PRISM_EXPORTED_FUNCTION pm_multi_write_node_t * pm_multi_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t lefts, struct pm_node *rest, pm_node_list_t rights, pm_location_t lparen_loc, pm_location_t rparen_loc, pm_location_t operator_loc, struct pm_node *value);
9737
9750
9761
9774
9787
9799
9811
9825
9840
9853PRISM_EXPORTED_FUNCTION pm_or_node_t * pm_or_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc);
9854
9871PRISM_EXPORTED_FUNCTION pm_parameters_node_t * pm_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t requireds, pm_node_list_t optionals, struct pm_node *rest, pm_node_list_t posts, pm_node_list_t keywords, struct pm_node *keyword_rest, struct pm_node *block);
9872
9885PRISM_EXPORTED_FUNCTION pm_parentheses_node_t * pm_parentheses_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *body, pm_location_t opening_loc, pm_location_t closing_loc);
9886
9900PRISM_EXPORTED_FUNCTION pm_pinned_expression_node_t * pm_pinned_expression_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t operator_loc, pm_location_t lparen_loc, pm_location_t rparen_loc);
9901
9914
9928PRISM_EXPORTED_FUNCTION pm_post_execution_node_t * pm_post_execution_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_statements_node *statements, pm_location_t keyword_loc, pm_location_t opening_loc, pm_location_t closing_loc);
9929
9943PRISM_EXPORTED_FUNCTION pm_pre_execution_node_t * pm_pre_execution_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_statements_node *statements, pm_location_t keyword_loc, pm_location_t opening_loc, pm_location_t closing_loc);
9944
9957
9970PRISM_EXPORTED_FUNCTION pm_range_node_t * pm_range_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc);
9971
9984
9995
10010
10023
10035
10048PRISM_EXPORTED_FUNCTION pm_rescue_modifier_node_t * pm_rescue_modifier_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t keyword_loc, struct pm_node *rescue_expression);
10049
10066PRISM_EXPORTED_FUNCTION pm_rescue_node_t * pm_rescue_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_node_list_t exceptions, pm_location_t operator_loc, struct pm_node *reference, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_rescue_node *subsequent);
10067
10081
10092
10105
10116
10128
10144PRISM_EXPORTED_FUNCTION pm_singleton_class_node_t * pm_singleton_class_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t class_keyword_loc, pm_location_t operator_loc, struct pm_node *expression, struct pm_node *body, pm_location_t end_keyword_loc);
10145
10156
10168
10179
10191PRISM_EXPORTED_FUNCTION pm_splat_node_t * pm_splat_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, struct pm_node *expression);
10192
10204
10218PRISM_EXPORTED_FUNCTION pm_string_node_t * pm_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped);
10219
10234PRISM_EXPORTED_FUNCTION pm_super_node_t * pm_super_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_location_t lparen_loc, struct pm_arguments_node *arguments, pm_location_t rparen_loc, struct pm_node *block);
10235
10249PRISM_EXPORTED_FUNCTION pm_symbol_node_t * pm_symbol_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped);
10250
10261
10274
10290PRISM_EXPORTED_FUNCTION pm_unless_node_t * pm_unless_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t unless_keyword_loc, struct pm_node *predicate, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_else_node *else_clause, pm_location_t end_keyword_loc);
10291
10306PRISM_EXPORTED_FUNCTION pm_until_node_t * pm_until_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t until_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc, struct pm_node *predicate, struct pm_statements_node *statements);
10307
10321PRISM_EXPORTED_FUNCTION pm_when_node_t * pm_when_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t when_keyword_loc, pm_node_list_t conditions, pm_location_t then_keyword_loc, struct pm_statements_node *statements);
10322
10337PRISM_EXPORTED_FUNCTION pm_while_node_t * pm_while_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t while_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc, struct pm_node *predicate, struct pm_statements_node *statements);
10338
10352PRISM_EXPORTED_FUNCTION pm_x_string_node_t * pm_x_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped);
10353
10368
10375#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
10376
10377#ifdef __cplusplus
10378}
10379#endif
10380
10381#endif
A bump allocator for the prism parser.
struct pm_arena_t pm_arena_t
An opaque pointer to an arena that is used for allocations.
Definition arena.h:22
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.
PRISM_EXPORTED_FUNCTION pm_constant_path_or_write_node_t * pm_constant_path_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ConstantPathOrWriteNode node.
PRISM_EXPORTED_FUNCTION pm_for_node_t * pm_for_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *index, struct pm_node *collection, struct pm_statements_node *statements, pm_location_t for_keyword_loc, pm_location_t in_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc)
Allocate and initialize a new ForNode node.
struct pm_assoc_node pm_assoc_node_t
AssocNode.
PRISM_EXPORTED_FUNCTION pm_call_or_write_node_t * pm_call_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new CallOrWriteNode node.
PRISM_EXPORTED_FUNCTION pm_constant_write_node_t * pm_constant_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new ConstantWriteNode node.
PRISM_EXPORTED_FUNCTION pm_rest_parameter_node_t * pm_rest_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc)
Allocate and initialize a new RestParameterNode node.
PRISM_EXPORTED_FUNCTION pm_class_variable_operator_write_node_t * pm_class_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator)
Allocate and initialize a new ClassVariableOperatorWriteNode node.
struct pm_undef_node pm_undef_node_t
UndefNode.
PRISM_EXPORTED_FUNCTION pm_next_node_t * pm_next_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_arguments_node *arguments, pm_location_t keyword_loc)
Allocate and initialize a new NextNode node.
struct pm_class_variable_and_write_node pm_class_variable_and_write_node_t
ClassVariableAndWriteNode.
PRISM_EXPORTED_FUNCTION pm_or_node_t * pm_or_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc)
Allocate and initialize a new OrNode node.
PRISM_EXPORTED_FUNCTION pm_rational_node_t * pm_rational_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_integer_t numerator, pm_integer_t denominator)
Allocate and initialize a new RationalNode node.
PRISM_EXPORTED_FUNCTION pm_parentheses_node_t * pm_parentheses_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *body, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new ParenthesesNode node.
PRISM_EXPORTED_FUNCTION pm_x_string_node_t * pm_x_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped)
Allocate and initialize a new XStringNode node.
PRISM_EXPORTED_FUNCTION pm_lambda_node_t * pm_lambda_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t operator_loc, pm_location_t opening_loc, pm_location_t closing_loc, struct pm_node *parameters, struct pm_node *body)
Allocate and initialize a new LambdaNode node.
struct pm_index_and_write_node pm_index_and_write_node_t
IndexAndWriteNode.
PRISM_EXPORTED_FUNCTION pm_implicit_node_t * pm_implicit_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value)
Allocate and initialize a new ImplicitNode node.
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.
PRISM_EXPORTED_FUNCTION pm_interpolated_match_last_line_node_t * pm_interpolated_match_last_line_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc)
Allocate and initialize a new InterpolatedMatchLastLineNode node.
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.
PRISM_EXPORTED_FUNCTION pm_required_keyword_parameter_node_t * pm_required_keyword_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc)
Allocate and initialize a new RequiredKeywordParameterNode node.
PRISM_EXPORTED_FUNCTION pm_match_predicate_node_t * pm_match_predicate_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_node *pattern, pm_location_t keyword_loc)
Allocate and initialize a new MatchPredicateNode node.
#define PM_NODE_ALIGNAS
The alignment required for a child node within a parent node.
Definition ast.h:1155
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.
PRISM_EXPORTED_FUNCTION pm_alias_global_variable_node_t * pm_alias_global_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *new_name, struct pm_node *old_name, pm_location_t keyword_loc)
Allocate and initialize a new AliasGlobalVariableNode node.
struct pm_class_variable_write_node pm_class_variable_write_node_t
ClassVariableWriteNode.
struct pm_interpolated_string_node pm_interpolated_string_node_t
InterpolatedStringNode.
PRISM_EXPORTED_FUNCTION pm_string_node_t * pm_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped)
Allocate and initialize a new StringNode node.
struct pm_class_variable_or_write_node pm_class_variable_or_write_node_t
ClassVariableOrWriteNode.
PRISM_EXPORTED_FUNCTION pm_forwarding_super_node_t * pm_forwarding_super_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, struct pm_block_node *block)
Allocate and initialize a new ForwardingSuperNode node.
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.
PRISM_EXPORTED_FUNCTION pm_array_node_t * pm_array_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t elements, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new ArrayNode node.
struct pm_shareable_constant_node pm_shareable_constant_node_t
ShareableConstantNode.
struct pm_constant_and_write_node pm_constant_and_write_node_t
ConstantAndWriteNode.
PRISM_EXPORTED_FUNCTION pm_numbered_reference_read_node_t * pm_numbered_reference_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, uint32_t number)
Allocate and initialize a new NumberedReferenceReadNode node.
PRISM_EXPORTED_FUNCTION pm_constant_operator_write_node_t * pm_constant_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator)
Allocate and initialize a new ConstantOperatorWriteNode node.
PRISM_EXPORTED_FUNCTION pm_range_node_t * pm_range_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc)
Allocate and initialize a new RangeNode node.
pm_interpolated_string_node_flags
Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
Definition ast.h:8039
@ 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:8044
@ 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:8041
PRISM_EXPORTED_FUNCTION pm_unless_node_t * pm_unless_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t unless_keyword_loc, struct pm_node *predicate, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_else_node *else_clause, pm_location_t end_keyword_loc)
Allocate and initialize a new UnlessNode node.
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.
PRISM_EXPORTED_FUNCTION pm_keyword_rest_parameter_node_t * pm_keyword_rest_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc)
Allocate and initialize a new KeywordRestParameterNode node.
PRISM_EXPORTED_FUNCTION pm_local_variable_write_node_t * pm_local_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, uint32_t depth, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new LocalVariableWriteNode node.
pm_range_flags
Flags for range and flip-flop nodes.
Definition ast.h:8092
@ PM_RANGE_FLAGS_EXCLUDE_END
... operator
Definition ast.h:8094
PRISM_EXPORTED_FUNCTION pm_source_line_node_t * pm_source_line_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new SourceLineNode node.
PRISM_EXPORTED_FUNCTION pm_rescue_modifier_node_t * pm_rescue_modifier_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t keyword_loc, struct pm_node *rescue_expression)
Allocate and initialize a new RescueModifierNode node.
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.
PRISM_EXPORTED_FUNCTION pm_post_execution_node_t * pm_post_execution_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_statements_node *statements, pm_location_t keyword_loc, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new PostExecutionNode node.
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:611
@ PM_DEFINED_NODE
DefinedNode.
Definition ast.h:748
@ PM_PRE_EXECUTION_NODE
PreExecutionNode.
Definition ast.h:973
@ PM_RETRY_NODE
RetryNode.
Definition ast.h:1006
@ PM_REDO_NODE
RedoNode.
Definition ast.h:985
@ PM_CONSTANT_PATH_WRITE_NODE
ConstantPathWriteNode.
Definition ast.h:733
@ PM_INDEX_AND_WRITE_NODE
IndexAndWriteNode.
Definition ast.h:829
@ PM_SOURCE_LINE_NODE
SourceLineNode.
Definition ast.h:1027
@ PM_UNLESS_NODE
UnlessNode.
Definition ast.h:1051
@ PM_EMBEDDED_VARIABLE_NODE
EmbeddedVariableNode.
Definition ast.h:757
@ PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOperatorWriteNode.
Definition ast.h:793
@ PM_CALL_NODE
CallNode.
Definition ast.h:667
@ PM_NIL_NODE
NilNode.
Definition ast.h:934
@ PM_GLOBAL_VARIABLE_READ_NODE
GlobalVariableReadNode.
Definition ast.h:799
@ PM_RATIONAL_NODE
RationalNode.
Definition ast.h:982
@ PM_YIELD_NODE
YieldNode.
Definition ast.h:1066
@ PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableAndWriteNode.
Definition ast.h:892
@ PM_CONSTANT_AND_WRITE_NODE
ConstantAndWriteNode.
Definition ast.h:709
@ PM_CLASS_NODE
ClassNode.
Definition ast.h:688
@ PM_FIND_PATTERN_NODE
FindPatternNode.
Definition ast.h:769
@ PM_CALL_OPERATOR_WRITE_NODE
CallOperatorWriteNode.
Definition ast.h:670
@ PM_MATCH_WRITE_NODE
MatchWriteNode.
Definition ast.h:919
@ PM_ARRAY_NODE
ArrayNode.
Definition ast.h:628
@ PM_CONSTANT_PATH_TARGET_NODE
ConstantPathTargetNode.
Definition ast.h:730
@ PM_PROGRAM_NODE
ProgramNode.
Definition ast.h:976
@ PM_OR_NODE
OrNode.
Definition ast.h:955
@ PM_MULTI_WRITE_NODE
MultiWriteNode.
Definition ast.h:928
@ PM_IF_NODE
IfNode.
Definition ast.h:814
@ PM_IMPLICIT_NODE
ImplicitNode.
Definition ast.h:820
@ PM_ARGUMENTS_NODE
ArgumentsNode.
Definition ast.h:625
@ PM_FORWARDING_SUPER_NODE
ForwardingSuperNode.
Definition ast.h:787
@ PM_WHILE_NODE
WhileNode.
Definition ast.h:1060
@ PM_INTERPOLATED_STRING_NODE
InterpolatedStringNode.
Definition ast.h:868
@ PM_FALSE_NODE
FalseNode.
Definition ast.h:766
@ PM_FORWARDING_PARAMETER_NODE
ForwardingParameterNode.
Definition ast.h:784
@ PM_BLOCK_LOCAL_VARIABLE_NODE
BlockLocalVariableNode.
Definition ast.h:649
@ PM_HASH_NODE
HashNode.
Definition ast.h:808
@ PM_UNTIL_NODE
UntilNode.
Definition ast.h:1054
@ PM_MATCH_PREDICATE_NODE
MatchPredicateNode.
Definition ast.h:913
@ PM_X_STRING_NODE
XStringNode.
Definition ast.h:1063
@ PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
LocalVariableOperatorWriteNode.
Definition ast.h:895
@ PM_LOCAL_VARIABLE_OR_WRITE_NODE
LocalVariableOrWriteNode.
Definition ast.h:898
@ PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableAndWriteNode.
Definition ast.h:841
@ PM_GLOBAL_VARIABLE_TARGET_NODE
GlobalVariableTargetNode.
Definition ast.h:802
@ PM_AND_NODE
AndNode.
Definition ast.h:622
@ PM_CONSTANT_TARGET_NODE
ConstantTargetNode.
Definition ast.h:739
@ PM_IT_LOCAL_VARIABLE_READ_NODE
ItLocalVariableReadNode.
Definition ast.h:877
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
Definition ast.h:718
@ PM_IN_NODE
InNode.
Definition ast.h:826
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
Definition ast.h:655
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
Definition ast.h:679
@ PM_SOURCE_FILE_NODE
SourceFileNode.
Definition ast.h:1024
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
Definition ast.h:940
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
Definition ast.h:724
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
Definition ast.h:925
@ PM_SPLAT_NODE
SplatNode.
Definition ast.h:1030
@ PM_LAMBDA_NODE
LambdaNode.
Definition ast.h:889
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
Definition ast.h:700
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
Definition ast.h:991
@ PM_CALL_TARGET_NODE
CallTargetNode.
Definition ast.h:676
@ PM_ELSE_NODE
ElseNode.
Definition ast.h:751
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
Definition ast.h:862
@ PM_WHEN_NODE
WhenNode.
Definition ast.h:1057
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
Definition ast.h:943
@ PM_SYMBOL_NODE
SymbolNode.
Definition ast.h:1042
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
Definition ast.h:997
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
Definition ast.h:616
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
Definition ast.h:916
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
Definition ast.h:781
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
Definition ast.h:640
@ PM_SCOPE_NODE
A special kind of node used for compilation.
Definition ast.h:1069
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
Definition ast.h:646
@ PM_SELF_NODE
SelfNode.
Definition ast.h:1012
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
Definition ast.h:823
@ PM_TRUE_NODE
TrueNode.
Definition ast.h:1045
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
Definition ast.h:637
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
Definition ast.h:691
@ PM_RANGE_NODE
RangeNode.
Definition ast.h:979
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
Definition ast.h:844
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
Definition ast.h:901
@ PM_SHAREABLE_CONSTANT_NODE
ShareableConstantNode.
Definition ast.h:1015
@ PM_NEXT_NODE
NextNode.
Definition ast.h:931
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
Definition ast.h:847
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
Definition ast.h:988
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
Definition ast.h:697
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
Definition ast.h:658
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
Definition ast.h:742
@ PM_HASH_PATTERN_NODE
HashPatternNode.
Definition ast.h:811
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
Definition ast.h:832
@ PM_UNDEF_NODE
UndefNode.
Definition ast.h:1048
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
Definition ast.h:619
@ PM_ENSURE_NODE
EnsureNode.
Definition ast.h:760
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
Definition ast.h:907
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
Definition ast.h:1018
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
Definition ast.h:883
@ PM_PARENTHESES_NODE
ParenthesesNode.
Definition ast.h:961
@ PM_FOR_NODE
ForNode.
Definition ast.h:778
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
Definition ast.h:706
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
Definition ast.h:970
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
Definition ast.h:712
@ PM_RETURN_NODE
ReturnNode.
Definition ast.h:1009
@ PM_MODULE_NODE
ModuleNode.
Definition ast.h:922
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
Definition ast.h:631
@ PM_SUPER_NODE
SuperNode.
Definition ast.h:1039
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
Definition ast.h:910
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
Definition ast.h:721
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
Definition ast.h:871
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
Definition ast.h:664
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
Definition ast.h:949
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
Definition ast.h:703
@ PM_CASE_MATCH_NODE
CaseMatchNode.
Definition ast.h:682
@ PM_BREAK_NODE
BreakNode.
Definition ast.h:661
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
Definition ast.h:673
@ PM_IMAGINARY_NODE
ImaginaryNode.
Definition ast.h:817
@ PM_DEF_NODE
DefNode.
Definition ast.h:745
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
Definition ast.h:736
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
Definition ast.h:805
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
Definition ast.h:1021
@ PM_BEGIN_NODE
BeginNode.
Definition ast.h:643
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
Definition ast.h:874
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
Definition ast.h:850
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
Definition ast.h:772
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
Definition ast.h:967
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
Definition ast.h:994
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
Definition ast.h:856
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
Definition ast.h:853
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
Definition ast.h:790
@ PM_CASE_NODE
CaseNode.
Definition ast.h:685
@ PM_RESCUE_NODE
RescueNode.
Definition ast.h:1000
@ PM_FLOAT_NODE
FloatNode.
Definition ast.h:775
@ PM_ASSOC_NODE
AssocNode.
Definition ast.h:634
@ PM_IT_PARAMETERS_NODE
ItParametersNode.
Definition ast.h:880
@ PM_INTEGER_NODE
IntegerNode.
Definition ast.h:859
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
Definition ast.h:904
@ PM_STRING_NODE
StringNode.
Definition ast.h:1036
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
Definition ast.h:835
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
Definition ast.h:613
@ PM_PARAMETERS_NODE
ParametersNode.
Definition ast.h:958
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
Definition ast.h:946
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
Definition ast.h:727
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
Definition ast.h:796
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
Definition ast.h:715
@ PM_STATEMENTS_NODE
StatementsNode.
Definition ast.h:1033
@ PM_ERROR_RECOVERY_NODE
ErrorRecoveryNode.
Definition ast.h:763
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
Definition ast.h:952
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
Definition ast.h:964
@ PM_BLOCK_NODE
BlockNode.
Definition ast.h:652
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
Definition ast.h:694
@ PM_REST_PARAMETER_NODE
RestParameterNode.
Definition ast.h:1003
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
Definition ast.h:754
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
Definition ast.h:865
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
Definition ast.h:838
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
Definition ast.h:886
@ PM_NO_BLOCK_PARAMETER_NODE
NoBlockParameterNode.
Definition ast.h:937
struct pm_nil_node pm_nil_node_t
NilNode.
struct pm_begin_node pm_begin_node_t
BeginNode.
PRISM_EXPORTED_FUNCTION pm_ensure_node_t * pm_ensure_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t ensure_keyword_loc, struct pm_statements_node *statements, pm_location_t end_keyword_loc)
Allocate and initialize a new EnsureNode node.
PRISM_EXPORTED_FUNCTION pm_hash_node_t * pm_hash_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t elements, pm_location_t closing_loc)
Allocate and initialize a new HashNode node.
PRISM_EXPORTED_FUNCTION pm_global_variable_and_write_node_t * pm_global_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new GlobalVariableAndWriteNode node.
PRISM_EXPORTED_FUNCTION pm_instance_variable_target_node_t * pm_instance_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new InstanceVariableTargetNode node.
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.
PRISM_EXPORTED_FUNCTION pm_class_variable_and_write_node_t * pm_class_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ClassVariableAndWriteNode node.
struct pm_return_node pm_return_node_t
ReturnNode.
pm_symbol_flags
Flags for symbol nodes.
Definition ast.h:8177
@ PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8179
@ PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:8185
@ PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8182
struct pm_it_parameters_node pm_it_parameters_node_t
ItParametersNode.
PRISM_EXPORTED_FUNCTION pm_hash_pattern_node_t * pm_hash_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, pm_node_list_t elements, struct pm_node *rest, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new HashPatternNode node.
struct pm_constant_path_node pm_constant_path_node_t
ConstantPathNode.
struct pm_local_variable_write_node pm_local_variable_write_node_t
LocalVariableWriteNode.
PRISM_EXPORTED_FUNCTION pm_constant_path_node_t * pm_constant_path_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *parent, pm_constant_id_t name, pm_location_t delimiter_loc, pm_location_t name_loc)
Allocate and initialize a new ConstantPathNode node.
PRISM_EXPORTED_FUNCTION pm_it_parameters_node_t * pm_it_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new ItParametersNode node.
pm_string_flags
Flags for string nodes.
Definition ast.h:8158
@ PM_STRING_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal
Definition ast.h:8166
@ PM_STRING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8163
@ PM_STRING_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal
Definition ast.h:8169
@ PM_STRING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8160
struct pm_implicit_node pm_implicit_node_t
ImplicitNode.
PRISM_EXPORTED_FUNCTION pm_required_parameter_node_t * pm_required_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new RequiredParameterNode node.
PRISM_EXPORTED_FUNCTION pm_optional_keyword_parameter_node_t * pm_optional_keyword_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value)
Allocate and initialize a new OptionalKeywordParameterNode node.
struct pm_yield_node pm_yield_node_t
YieldNode.
pm_arguments_node_flags
Flags for arguments nodes.
Definition ast.h:7956
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT
if the arguments contain a splat
Definition ast.h:7967
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING
if the arguments contain forwarding
Definition ast.h:7958
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS
if the arguments contain keywords
Definition ast.h:7961
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
if the arguments contain a keyword splat
Definition ast.h:7964
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS
if the arguments contain multiple splats
Definition ast.h:7970
PRISM_EXPORTED_FUNCTION pm_instance_variable_or_write_node_t * pm_instance_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new InstanceVariableOrWriteNode node.
enum pm_symbol_flags pm_symbol_flags_t
Flags for symbol nodes.
PRISM_EXPORTED_FUNCTION pm_super_node_t * pm_super_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_location_t lparen_loc, struct pm_arguments_node *arguments, pm_location_t rparen_loc, struct pm_node *block)
Allocate and initialize a new SuperNode node.
PRISM_EXPORTED_FUNCTION pm_case_node_t * pm_case_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *predicate, pm_node_list_t conditions, struct pm_else_node *else_clause, pm_location_t case_keyword_loc, pm_location_t end_keyword_loc)
Allocate and initialize a new CaseNode node.
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.
PRISM_EXPORTED_FUNCTION pm_numbered_parameters_node_t * pm_numbered_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, uint8_t maximum)
Allocate and initialize a new NumberedParametersNode node.
struct pm_case_node pm_case_node_t
CaseNode.
PRISM_EXPORTED_FUNCTION pm_interpolated_regular_expression_node_t * pm_interpolated_regular_expression_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc)
Allocate and initialize a new InterpolatedRegularExpressionNode node.
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.
PRISM_EXPORTED_FUNCTION pm_pinned_variable_node_t * pm_pinned_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *variable, pm_location_t operator_loc)
Allocate and initialize a new PinnedVariableNode node.
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.
PRISM_EXPORTED_FUNCTION pm_when_node_t * pm_when_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t when_keyword_loc, pm_node_list_t conditions, pm_location_t then_keyword_loc, struct pm_statements_node *statements)
Allocate and initialize a new WhenNode node.
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.
PRISM_EXPORTED_FUNCTION pm_find_pattern_node_t * pm_find_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, struct pm_splat_node *left, pm_node_list_t requireds, struct pm_splat_node *right, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new FindPatternNode node.
struct pm_block_argument_node pm_block_argument_node_t
BlockArgumentNode.
PRISM_EXPORTED_FUNCTION pm_index_operator_write_node_t * pm_index_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_constant_id_t binary_operator, pm_location_t binary_operator_loc, struct pm_node *value)
Allocate and initialize a new IndexOperatorWriteNode node.
PRISM_EXPORTED_FUNCTION pm_global_variable_or_write_node_t * pm_global_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new GlobalVariableOrWriteNode node.
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.
PRISM_EXPORTED_FUNCTION pm_forwarding_arguments_node_t * pm_forwarding_arguments_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new ForwardingArgumentsNode node.
PRISM_EXPORTED_FUNCTION pm_self_node_t * pm_self_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new SelfNode node.
PRISM_EXPORTED_FUNCTION pm_global_variable_write_node_t * pm_global_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new GlobalVariableWriteNode node.
PRISM_EXPORTED_FUNCTION pm_parameters_node_t * pm_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t requireds, pm_node_list_t optionals, struct pm_node *rest, pm_node_list_t posts, pm_node_list_t keywords, struct pm_node *keyword_rest, struct pm_node *block)
Allocate and initialize a new ParametersNode node.
PRISM_EXPORTED_FUNCTION pm_singleton_class_node_t * pm_singleton_class_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t class_keyword_loc, pm_location_t operator_loc, struct pm_node *expression, struct pm_node *body, pm_location_t end_keyword_loc)
Allocate and initialize a new SingletonClassNode node.
struct pm_error_recovery_node pm_error_recovery_node_t
ErrorRecoveryNode.
PRISM_EXPORTED_FUNCTION pm_if_node_t * pm_if_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t if_keyword_loc, struct pm_node *predicate, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_node *subsequent, pm_location_t end_keyword_loc)
Allocate and initialize a new IfNode node.
PRISM_EXPORTED_FUNCTION pm_keyword_hash_node_t * pm_keyword_hash_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t elements)
Allocate and initialize a new KeywordHashNode node.
struct pm_flip_flop_node pm_flip_flop_node_t
FlipFlopNode.
struct pm_required_keyword_parameter_node pm_required_keyword_parameter_node_t
RequiredKeywordParameterNode.
PRISM_EXPORTED_FUNCTION pm_global_variable_target_node_t * pm_global_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new GlobalVariableTargetNode node.
PRISM_EXPORTED_FUNCTION pm_match_last_line_node_t * pm_match_last_line_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped)
Allocate and initialize a new MatchLastLineNode node.
PRISM_EXPORTED_FUNCTION pm_alternation_pattern_node_t * pm_alternation_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc)
Allocate and initialize a new AlternationPatternNode node.
PRISM_EXPORTED_FUNCTION pm_pinned_expression_node_t * pm_pinned_expression_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t operator_loc, pm_location_t lparen_loc, pm_location_t rparen_loc)
Allocate and initialize a new PinnedExpressionNode node.
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.
PRISM_EXPORTED_FUNCTION pm_embedded_statements_node_t * pm_embedded_statements_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, struct pm_statements_node *statements, pm_location_t closing_loc)
Allocate and initialize a new EmbeddedStatementsNode node.
pm_array_node_flags
Flags for array nodes.
Definition ast.h:7978
@ PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
if array contains splat nodes
Definition ast.h:7980
PRISM_EXPORTED_FUNCTION pm_local_variable_and_write_node_t * pm_local_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value, pm_constant_id_t name, uint32_t depth)
Allocate and initialize a new LocalVariableAndWriteNode node.
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.
PRISM_EXPORTED_FUNCTION pm_pre_execution_node_t * pm_pre_execution_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_statements_node *statements, pm_location_t keyword_loc, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new PreExecutionNode node.
PRISM_EXPORTED_FUNCTION pm_alias_method_node_t * pm_alias_method_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *new_name, struct pm_node *old_name, pm_location_t keyword_loc)
Allocate and initialize a new AliasMethodNode node.
PRISM_EXPORTED_FUNCTION pm_instance_variable_read_node_t * pm_instance_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new InstanceVariableReadNode node.
struct pm_global_variable_read_node pm_global_variable_read_node_t
GlobalVariableReadNode.
PRISM_EXPORTED_FUNCTION pm_block_parameter_node_t * pm_block_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc)
Allocate and initialize a new BlockParameterNode node.
PRISM_EXPORTED_FUNCTION pm_else_node_t * pm_else_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t else_keyword_loc, struct pm_statements_node *statements, pm_location_t end_keyword_loc)
Allocate and initialize a new ElseNode node.
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.
PRISM_EXPORTED_FUNCTION pm_index_or_write_node_t * pm_index_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new IndexOrWriteNode node.
PRISM_EXPORTED_FUNCTION pm_it_local_variable_read_node_t * pm_it_local_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new ItLocalVariableReadNode node.
PRISM_EXPORTED_FUNCTION pm_redo_node_t * pm_redo_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new RedoNode node.
struct pm_match_last_line_node pm_match_last_line_node_t
MatchLastLineNode.
enum pm_parentheses_node_flags pm_parentheses_node_flags_t
Flags for parentheses nodes.
struct pm_hash_node pm_hash_node_t
HashNode.
PRISM_EXPORTED_FUNCTION pm_false_node_t * pm_false_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new FalseNode node.
PRISM_EXPORTED_FUNCTION pm_case_match_node_t * pm_case_match_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *predicate, pm_node_list_t conditions, struct pm_else_node *else_clause, pm_location_t case_keyword_loc, pm_location_t end_keyword_loc)
Allocate and initialize a new CaseMatchNode node.
struct pm_block_local_variable_node pm_block_local_variable_node_t
BlockLocalVariableNode.
PRISM_EXPORTED_FUNCTION pm_block_local_variable_node_t * pm_block_local_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new BlockLocalVariableNode node.
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:8020
@ PM_INTEGER_BASE_FLAGS_HEXADECIMAL
0x prefix
Definition ast.h:8031
@ PM_INTEGER_BASE_FLAGS_OCTAL
0o or 0 prefix
Definition ast.h:8028
@ PM_INTEGER_BASE_FLAGS_DECIMAL
0d or no prefix
Definition ast.h:8025
@ PM_INTEGER_BASE_FLAGS_BINARY
0b prefix
Definition ast.h:8022
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.
PRISM_EXPORTED_FUNCTION pm_array_pattern_node_t * pm_array_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, pm_node_list_t requireds, struct pm_node *rest, pm_node_list_t posts, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new ArrayPatternNode node.
struct pm_class_node pm_class_node_t
ClassNode.
PRISM_EXPORTED_FUNCTION pm_flip_flop_node_t * pm_flip_flop_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc)
Allocate and initialize a new FlipFlopNode node.
PRISM_EXPORTED_FUNCTION pm_local_variable_or_write_node_t * pm_local_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value, pm_constant_id_t name, uint32_t depth)
Allocate and initialize a new LocalVariableOrWriteNode node.
struct pm_pinned_expression_node pm_pinned_expression_node_t
PinnedExpressionNode.
PRISM_EXPORTED_FUNCTION pm_embedded_variable_node_t * pm_embedded_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, struct pm_node *variable)
Allocate and initialize a new EmbeddedVariableNode node.
PRISM_EXPORTED_FUNCTION pm_constant_read_node_t * pm_constant_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new ConstantReadNode node.
PRISM_EXPORTED_FUNCTION pm_local_variable_read_node_t * pm_local_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, uint32_t depth)
Allocate and initialize a new LocalVariableReadNode node.
struct pm_constant_operator_write_node pm_constant_operator_write_node_t
ConstantOperatorWriteNode.
PRISM_EXPORTED_FUNCTION pm_class_variable_read_node_t * pm_class_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new ClassVariableReadNode node.
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.
PRISM_EXPORTED_FUNCTION pm_constant_path_and_write_node_t * pm_constant_path_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ConstantPathAndWriteNode node.
PRISM_EXPORTED_FUNCTION pm_local_variable_operator_write_node_t * pm_local_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t name, pm_constant_id_t binary_operator, uint32_t depth)
Allocate and initialize a new LocalVariableOperatorWriteNode node.
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.
PRISM_EXPORTED_FUNCTION pm_constant_path_operator_write_node_t * pm_constant_path_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator)
Allocate and initialize a new ConstantPathOperatorWriteNode node.
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.
PRISM_EXPORTED_FUNCTION pm_symbol_node_t * pm_symbol_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped)
Allocate and initialize a new SymbolNode node.
struct pm_range_node pm_range_node_t
RangeNode.
struct pm_and_node pm_and_node_t
AndNode.
PRISM_EXPORTED_FUNCTION pm_block_parameters_node_t * pm_block_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_parameters_node *parameters, pm_node_list_t locals, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new BlockParametersNode node.
enum pm_arguments_node_flags pm_arguments_node_flags_t
Flags for arguments nodes.
PRISM_EXPORTED_FUNCTION pm_class_variable_target_node_t * pm_class_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new ClassVariableTargetNode node.
struct pm_constant_path_and_write_node pm_constant_path_and_write_node_t
ConstantPathAndWriteNode.
pm_parentheses_node_flags
Flags for parentheses nodes.
Definition ast.h:8082
@ PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS
parentheses that contain multiple potentially void statements
Definition ast.h:8084
PRISM_EXPORTED_FUNCTION pm_integer_node_t * pm_integer_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_integer_t value)
Allocate and initialize a new IntegerNode node.
PRISM_EXPORTED_FUNCTION pm_class_node_t * pm_class_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t class_keyword_loc, struct pm_node *constant_path, pm_location_t inheritance_operator_loc, struct pm_node *superclass, struct pm_node *body, pm_location_t end_keyword_loc, pm_constant_id_t name)
Allocate and initialize a new ClassNode node.
PRISM_EXPORTED_FUNCTION pm_call_and_write_node_t * pm_call_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new CallAndWriteNode node.
struct pm_rest_parameter_node pm_rest_parameter_node_t
RestParameterNode.
PRISM_EXPORTED_FUNCTION pm_constant_or_write_node_t * pm_constant_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ConstantOrWriteNode node.
PRISM_EXPORTED_FUNCTION pm_call_node_t * pm_call_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_constant_id_t name, pm_location_t message_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, pm_location_t equal_loc, struct pm_node *block)
Allocate and initialize a new CallNode node.
PRISM_EXPORTED_FUNCTION pm_index_target_node_t * pm_index_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block)
Allocate and initialize a new IndexTargetNode node.
PRISM_EXPORTED_FUNCTION pm_assoc_node_t * pm_assoc_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *key, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new AssocNode node.
PRISM_EXPORTED_FUNCTION pm_defined_node_t * pm_defined_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t lparen_loc, struct pm_node *value, pm_location_t rparen_loc, pm_location_t keyword_loc)
Allocate and initialize a new DefinedNode node.
struct pm_assoc_splat_node pm_assoc_splat_node_t
AssocSplatNode.
PRISM_EXPORTED_FUNCTION pm_instance_variable_operator_write_node_t * pm_instance_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator)
Allocate and initialize a new InstanceVariableOperatorWriteNode node.
pm_call_node_flags
Flags for call nodes.
Definition ast.h:7988
@ PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
a call that ignores method visibility
Definition ast.h:7999
@ PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
&.
Definition ast.h:7990
@ PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
a call that is an attribute write, so the value being written should be returned
Definition ast.h:7996
@ PM_CALL_NODE_FLAGS_VARIABLE_CALL
a call that could have been a local variable
Definition ast.h:7993
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.
PRISM_EXPORTED_FUNCTION pm_def_node_t * pm_def_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *receiver, struct pm_parameters_node *parameters, struct pm_node *body, pm_constant_id_list_t locals, pm_location_t def_keyword_loc, pm_location_t operator_loc, pm_location_t lparen_loc, pm_location_t rparen_loc, pm_location_t equal_loc, pm_location_t end_keyword_loc)
Allocate and initialize a new DefNode node.
PRISM_EXPORTED_FUNCTION pm_no_block_parameter_node_t * pm_no_block_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, pm_location_t keyword_loc)
Allocate and initialize a new NoBlockParameterNode node.
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:8142
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING
constant writes that should be modified with shareable constant value experimental everything
Definition ast.h:8147
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL
constant writes that should be modified with shareable constant value literal
Definition ast.h:8144
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY
constant writes that should be modified with shareable constant value experimental copy
Definition ast.h:8150
struct pm_until_node pm_until_node_t
UntilNode.
PRISM_EXPORTED_FUNCTION pm_in_node_t * pm_in_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *pattern, struct pm_statements_node *statements, pm_location_t in_keyword_loc, pm_location_t then_keyword_loc)
Allocate and initialize a new InNode node.
struct pm_retry_node pm_retry_node_t
RetryNode.
PRISM_EXPORTED_FUNCTION pm_class_variable_or_write_node_t * pm_class_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ClassVariableOrWriteNode node.
uint16_t pm_node_type_t
This is the type of node embedded in the node struct.
Definition ast.h:1076
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:8052
@ 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:8054
enum pm_keyword_hash_node_flags pm_keyword_hash_node_flags_t
Flags for keyword hash nodes.
PRISM_EXPORTED_FUNCTION pm_rescue_node_t * pm_rescue_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_node_list_t exceptions, pm_location_t operator_loc, struct pm_node *reference, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_rescue_node *subsequent)
Allocate and initialize a new RescueNode node.
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.
PRISM_EXPORTED_FUNCTION pm_source_encoding_node_t * pm_source_encoding_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new SourceEncodingNode node.
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.
PRISM_EXPORTED_FUNCTION pm_implicit_rest_node_t * pm_implicit_rest_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new ImplicitRestNode node.
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.
PRISM_EXPORTED_FUNCTION pm_optional_parameter_node_t * pm_optional_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new OptionalParameterNode node.
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:8102
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8131
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:8134
@ PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
e - forces the EUC-JP encoding
Definition ast.h:8116
@ PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
i - ignores the case of characters when matching
Definition ast.h:8104
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8128
@ PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
n - forces the ASCII-8BIT encoding
Definition ast.h:8119
@ PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
m - allows $ to match the end of lines within strings
Definition ast.h:8110
@ PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
x - ignores whitespace and allows comments in regular expressions
Definition ast.h:8107
@ PM_REGULAR_EXPRESSION_FLAGS_ONCE
o - only interpolates values into the regular expression once
Definition ast.h:8113
@ PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
s - forces the Windows-31J encoding
Definition ast.h:8122
@ PM_REGULAR_EXPRESSION_FLAGS_UTF_8
u - forces the UTF-8 encoding
Definition ast.h:8125
PRISM_EXPORTED_FUNCTION pm_constant_path_target_node_t * pm_constant_path_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *parent, pm_constant_id_t name, pm_location_t delimiter_loc, pm_location_t name_loc)
Allocate and initialize a new ConstantPathTargetNode node.
PRISM_EXPORTED_FUNCTION pm_imaginary_node_t * pm_imaginary_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *numeric)
Allocate and initialize a new ImaginaryNode node.
PRISM_EXPORTED_FUNCTION pm_global_variable_read_node_t * pm_global_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new GlobalVariableReadNode node.
struct pm_forwarding_arguments_node pm_forwarding_arguments_node_t
ForwardingArgumentsNode.
PRISM_EXPORTED_FUNCTION pm_multi_write_node_t * pm_multi_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t lefts, struct pm_node *rest, pm_node_list_t rights, pm_location_t lparen_loc, pm_location_t rparen_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new MultiWriteNode node.
struct pm_instance_variable_read_node pm_instance_variable_read_node_t
InstanceVariableReadNode.
PRISM_EXPORTED_FUNCTION pm_instance_variable_write_node_t * pm_instance_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new InstanceVariableWriteNode node.
struct pm_constant_target_node pm_constant_target_node_t
ConstantTargetNode.
PRISM_EXPORTED_FUNCTION pm_assoc_splat_node_t * pm_assoc_splat_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new AssocSplatNode node.
PRISM_EXPORTED_FUNCTION pm_begin_node_t * pm_begin_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t begin_keyword_loc, struct pm_statements_node *statements, struct pm_rescue_node *rescue_clause, struct pm_else_node *else_clause, struct pm_ensure_node *ensure_clause, pm_location_t end_keyword_loc)
Allocate and initialize a new BeginNode node.
PRISM_EXPORTED_FUNCTION pm_yield_node_t * pm_yield_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_location_t lparen_loc, struct pm_arguments_node *arguments, pm_location_t rparen_loc)
Allocate and initialize a new YieldNode node.
PRISM_EXPORTED_FUNCTION pm_undef_node_t * pm_undef_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t names, pm_location_t keyword_loc)
Allocate and initialize a new UndefNode node.
PRISM_EXPORTED_FUNCTION pm_block_argument_node_t * pm_block_argument_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t operator_loc)
Allocate and initialize a new BlockArgumentNode node.
PRISM_EXPORTED_FUNCTION pm_retry_node_t * pm_retry_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new RetryNode node.
struct pm_node pm_node_t
This is the base structure that represents a node in the syntax tree.
PRISM_EXPORTED_FUNCTION pm_block_node_t * pm_block_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, struct pm_node *parameters, struct pm_node *body, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new BlockNode node.
struct pm_defined_node pm_defined_node_t
DefinedNode.
PRISM_EXPORTED_FUNCTION pm_local_variable_target_node_t * pm_local_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, uint32_t depth)
Allocate and initialize a new LocalVariableTargetNode node.
struct pm_it_local_variable_read_node pm_it_local_variable_read_node_t
ItLocalVariableReadNode.
PRISM_EXPORTED_FUNCTION pm_capture_pattern_node_t * pm_capture_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_local_variable_target_node *target, pm_location_t operator_loc)
Allocate and initialize a new CapturePatternNode node.
PRISM_EXPORTED_FUNCTION pm_error_recovery_node_t * pm_error_recovery_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *unexpected)
Allocate and initialize a new ErrorRecoveryNode node.
struct pm_interpolated_symbol_node pm_interpolated_symbol_node_t
InterpolatedSymbolNode.
PRISM_EXPORTED_FUNCTION pm_no_keywords_parameter_node_t * pm_no_keywords_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, pm_location_t keyword_loc)
Allocate and initialize a new NoKeywordsParameterNode node.
PRISM_EXPORTED_FUNCTION pm_call_target_node_t * pm_call_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_constant_id_t name, pm_location_t message_loc)
Allocate and initialize a new CallTargetNode node.
PRISM_EXPORTED_FUNCTION pm_while_node_t * pm_while_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t while_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc, struct pm_node *predicate, struct pm_statements_node *statements)
Allocate and initialize a new WhileNode node.
struct pm_class_variable_target_node pm_class_variable_target_node_t
ClassVariableTargetNode.
struct pm_def_node pm_def_node_t
DefNode.
PRISM_EXPORTED_FUNCTION pm_float_node_t * pm_float_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, double value)
Allocate and initialize a new FloatNode node.
struct pm_singleton_class_node pm_singleton_class_node_t
SingletonClassNode.
PRISM_EXPORTED_FUNCTION pm_regular_expression_node_t * pm_regular_expression_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped)
Allocate and initialize a new RegularExpressionNode node.
PRISM_EXPORTED_FUNCTION pm_constant_and_write_node_t * pm_constant_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ConstantAndWriteNode node.
PRISM_EXPORTED_FUNCTION pm_call_operator_write_node_t * pm_call_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_constant_id_t binary_operator, pm_location_t binary_operator_loc, struct pm_node *value)
Allocate and initialize a new CallOperatorWriteNode node.
PRISM_EXPORTED_FUNCTION pm_back_reference_read_node_t * pm_back_reference_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new BackReferenceReadNode node.
PRISM_EXPORTED_FUNCTION pm_match_required_node_t * pm_match_required_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_node *pattern, pm_location_t operator_loc)
Allocate and initialize a new MatchRequiredNode node.
uint16_t pm_node_flags_t
These are the flags embedded in the node struct.
Definition ast.h:1082
PRISM_EXPORTED_FUNCTION pm_return_node_t * pm_return_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, struct pm_arguments_node *arguments)
Allocate and initialize a new ReturnNode node.
PRISM_EXPORTED_FUNCTION pm_constant_path_write_node_t * pm_constant_path_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ConstantPathWriteNode node.
PRISM_EXPORTED_FUNCTION pm_forwarding_parameter_node_t * pm_forwarding_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new ForwardingParameterNode node.
struct pm_capture_pattern_node pm_capture_pattern_node_t
CapturePatternNode.
PRISM_EXPORTED_FUNCTION pm_constant_target_node_t * pm_constant_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new ConstantTargetNode node.
struct pm_source_file_node pm_source_file_node_t
SourceFileNode.
PRISM_EXPORTED_FUNCTION pm_statements_node_t * pm_statements_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t body)
Allocate and initialize a new StatementsNode node.
PRISM_EXPORTED_FUNCTION pm_arguments_node_t * pm_arguments_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t arguments)
Allocate and initialize a new ArgumentsNode node.
PRISM_EXPORTED_FUNCTION pm_until_node_t * pm_until_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t until_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc, struct pm_node *predicate, struct pm_statements_node *statements)
Allocate and initialize a new UntilNode node.
PRISM_EXPORTED_FUNCTION pm_interpolated_symbol_node_t * pm_interpolated_symbol_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc)
Allocate and initialize a new InterpolatedSymbolNode node.
struct pm_regular_expression_node pm_regular_expression_node_t
RegularExpressionNode.
PRISM_EXPORTED_FUNCTION pm_global_variable_operator_write_node_t * pm_global_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator)
Allocate and initialize a new GlobalVariableOperatorWriteNode node.
pm_token_type
This enum represents every type of token in the Ruby source.
Definition ast.h:37
@ PM_TOKEN_STAR_STAR
**
Definition ast.h:489
@ PM_TOKEN_DOT_DOT_DOT
the ... range operator or forwarding parameter
Definition ast.h:177
@ PM_TOKEN_MINUS_EQUAL
-=
Definition ast.h:414
@ PM_TOKEN_IGNORED_NEWLINE
an ignored newline
Definition ast.h:246
@ PM_TOKEN_BANG_EQUAL
!=
Definition ast.h:117
@ PM_TOKEN_KEYWORD___FILE__
__FILE__
Definition ast.h:378
@ PM_TOKEN_KEYWORD_WHEN
when
Definition ast.h:75
@ PM_TOKEN_FLOAT
a floating point number
Definition ast.h:210
@ PM_TOKEN_PLUS_EQUAL
+=
Definition ast.h:465
@ PM_TOKEN_DOT_DOT
the .
Definition ast.h:174
@ PM_TOKEN_UDOT_DOT
unary .
Definition ast.h:516
@ PM_TOKEN_AMPERSAND_DOT
&.
Definition ast.h:102
@ PM_TOKEN_NEWLINE
a newline character outside of other tokens
Definition ast.h:78
@ PM_TOKEN_NUMBERED_REFERENCE
a numbered reference to a capture group in the previous regular expression match
Definition ast.h:420
@ PM_TOKEN_KEYWORD_DO_BLOCK
do keyword for a block attached to a command
Definition ast.h:291
@ PM_TOKEN_AMPERSAND
&
Definition ast.h:93
@ PM_TOKEN_KEYWORD_YIELD
yield
Definition ast.h:372
@ PM_TOKEN_KEYWORD_END
end
Definition ast.h:60
@ PM_TOKEN_LAMBDA_BEGIN
{
Definition ast.h:390
@ PM_TOKEN_KEYWORD_UNTIL_MODIFIER
until in the modifier form
Definition ast.h:363
@ PM_TOKEN_BRACE_LEFT_ARGUMENT
{ for a block following a parenthesized argument
Definition ast.h:126
@ PM_TOKEN_EQUAL_EQUAL_EQUAL
===
Definition ast.h:201
@ PM_TOKEN_INTEGER_RATIONAL
an integer with a rational suffix
Definition ast.h:258
@ PM_TOKEN_USTAR
unary *
Definition ast.h:531
@ PM_TOKEN_TILDE
~ or ~@
Definition ast.h:507
@ PM_TOKEN_KEYWORD___ENCODING__
__ENCODING__
Definition ast.h:375
@ PM_TOKEN_REGEXP_END
the end of a regular expression
Definition ast.h:474
@ PM_TOKEN_KEYWORD_UNTIL
until
Definition ast.h:360
@ PM_TOKEN_COMMA
,
Definition ast.h:45
@ PM_TOKEN_MAXIMUM
The maximum token value.
Definition ast.h:549
@ PM_TOKEN_GREATER
>
Definition ast.h:225
@ PM_TOKEN_INTEGER
an integer (any base)
Definition ast.h:252
@ PM_TOKEN_SLASH_EQUAL
/=
Definition ast.h:480
@ PM_TOKEN_UMINUS_NUM
-@ for a number
Definition ast.h:525
@ PM_TOKEN_EMBVAR
#
Definition ast.h:192
@ PM_TOKEN_KEYWORD_UNLESS_MODIFIER
unless in the modifier form
Definition ast.h:357
@ PM_TOKEN_INTEGER_RATIONAL_IMAGINARY
an integer with a rational and imaginary suffix
Definition ast.h:261
@ PM_TOKEN_FLOAT_RATIONAL_IMAGINARY
a floating pointer number with a rational and imaginary suffix
Definition ast.h:219
@ PM_TOKEN_BRACKET_LEFT_RIGHT
[]
Definition ast.h:138
@ PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL
&&=
Definition ast.h:99
@ PM_TOKEN_KEYWORD_CLASS
class
Definition ast.h:282
@ PM_TOKEN_KEYWORD_BEGIN
begin
Definition ast.h:270
@ PM_TOKEN_KEYWORD_DO_LAMBDA
do keyword that opens the body of a lambda literal
Definition ast.h:294
@ PM_TOKEN_USTAR_STAR
unary **
Definition ast.h:534
@ PM_TOKEN_GREATER_GREATER_EQUAL
>>=
Definition ast.h:234
@ PM_TOKEN_PERCENT_EQUAL
%=
Definition ast.h:435
@ PM_TOKEN_PERCENT
%
Definition ast.h:432
@ PM_TOKEN_KEYWORD_IN
in
Definition ast.h:66
@ PM_TOKEN_BANG
! or !@
Definition ast.h:114
@ PM_TOKEN_KEYWORD_NOT
not
Definition ast.h:324
@ PM_TOKEN_BRACKET_LEFT_ARRAY
[ for the beginning of an array
Definition ast.h:135
@ PM_TOKEN_HEREDOC_END
the end of a heredoc
Definition ast.h:237
@ PM_TOKEN_HEREDOC_START
the start of a heredoc
Definition ast.h:240
@ PM_TOKEN_KEYWORD_DEFINED
defined?
Definition ast.h:288
@ PM_TOKEN_UCOLON_COLON
unary ::
Definition ast.h:513
@ PM_TOKEN_LABEL_END
the end of a label
Definition ast.h:387
@ PM_TOKEN_EQUAL_GREATER
=>
Definition ast.h:204
@ PM_TOKEN_KEYWORD_UNLESS
unless
Definition ast.h:354
@ PM_TOKEN_KEYWORD_ENSURE
ensure
Definition ast.h:63
@ PM_TOKEN_AMPERSAND_EQUAL
&=
Definition ast.h:105
@ PM_TOKEN_EQUAL_EQUAL
==
Definition ast.h:198
@ PM_TOKEN_UPLUS
+@
Definition ast.h:528
@ PM_TOKEN_FLOAT_IMAGINARY
a floating pointer number with an imaginary suffix
Definition ast.h:213
@ PM_TOKEN_KEYWORD_BEGIN_UPCASE
BEGIN.
Definition ast.h:273
@ PM_TOKEN_LESS_EQUAL_GREATER
<=>
Definition ast.h:399
@ PM_TOKEN_KEYWORD_RESCUE_MODIFIER
rescue in the modifier form
Definition ast.h:333
@ PM_TOKEN_MINUS_GREATER
->
Definition ast.h:417
@ PM_TOKEN_KEYWORD_FALSE
false
Definition ast.h:303
@ PM_TOKEN_PIPE_PIPE_EQUAL
||=
Definition ast.h:459
@ PM_TOKEN_KEYWORD_IF
if
Definition ast.h:309
@ PM_TOKEN_EMBEXPR_BEGIN
#{
Definition ast.h:189
@ PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES
( for a parentheses node
Definition ast.h:429
@ PM_TOKEN_EMBDOC_END
=end
Definition ast.h:183
@ PM_TOKEN_KEYWORD_ELSE
else
Definition ast.h:54
@ PM_TOKEN_BACK_REFERENCE
a back reference
Definition ast.h:111
@ PM_TOKEN_BRACKET_LEFT
[
Definition ast.h:132
@ PM_TOKEN_EOF
final token in the file
Definition ast.h:39
@ PM_TOKEN_PIPE_PIPE
||
Definition ast.h:456
@ PM_TOKEN_KEYWORD_NIL
nil
Definition ast.h:321
@ PM_TOKEN_PERCENT_UPPER_W
%W
Definition ast.h:450
@ PM_TOKEN_KEYWORD_RETURN
return
Definition ast.h:339
@ PM_TOKEN_CLASS_VARIABLE
a class variable
Definition ast.h:156
@ PM_TOKEN_PIPE
|
Definition ast.h:87
@ PM_TOKEN_PARENTHESIS_LEFT
(
Definition ast.h:423
@ PM_TOKEN_BANG_TILDE
!~
Definition ast.h:120
@ PM_TOKEN_DOT
the .
Definition ast.h:171
@ PM_TOKEN_PARENTHESIS_RIGHT
)
Definition ast.h:84
@ PM_TOKEN_KEYWORD_RESCUE
rescue
Definition ast.h:69
@ PM_TOKEN_INSTANCE_VARIABLE
an instance variable
Definition ast.h:249
@ PM_TOKEN_PIPE_EQUAL
|=
Definition ast.h:453
@ PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL
[]=
Definition ast.h:141
@ PM_TOKEN_UAMPERSAND
unary &
Definition ast.h:510
@ PM_TOKEN_MINUS
-
Definition ast.h:411
@ PM_TOKEN_CONSTANT
a constant
Definition ast.h:168
@ PM_TOKEN_IDENTIFIER
an identifier
Definition ast.h:243
@ PM_TOKEN_EMBDOC_BEGIN
=begin
Definition ast.h:180
@ PM_TOKEN_STAR_EQUAL
*=
Definition ast.h:486
@ PM_TOKEN_KEYWORD_OR
or
Definition ast.h:327
@ PM_TOKEN_KEYWORD_AND
and
Definition ast.h:267
@ PM_TOKEN_LESS
<
Definition ast.h:393
@ PM_TOKEN_KEYWORD_BREAK
break
Definition ast.h:276
@ PM_TOKEN_PERCENT_LOWER_W
%w
Definition ast.h:441
@ PM_TOKEN_SYMBOL_BEGIN
the beginning of a symbol
Definition ast.h:504
@ PM_TOKEN_METHOD_NAME
a method name
Definition ast.h:408
@ PM_TOKEN_KEYWORD_CASE
case
Definition ast.h:279
@ PM_TOKEN_WORDS_SEP
a separator between words in a list
Definition ast.h:537
@ PM_TOKEN_FLOAT_RATIONAL
a floating pointer number with a rational suffix
Definition ast.h:216
@ PM_TOKEN_LESS_LESS_EQUAL
<<=
Definition ast.h:405
@ PM_TOKEN_EMBDOC_LINE
a line inside of embedded documentation
Definition ast.h:186
@ PM_TOKEN_KEYWORD_SUPER
super
Definition ast.h:345
@ PM_TOKEN_KEYWORD_DO
do
Definition ast.h:51
@ PM_TOKEN_KEYWORD_REDO
redo
Definition ast.h:330
@ PM_TOKEN_EQUAL_TILDE
=~
Definition ast.h:207
@ PM_TOKEN_EMBEXPR_END
}
Definition ast.h:48
@ PM_TOKEN_KEYWORD_END_UPCASE
END.
Definition ast.h:300
@ PM_TOKEN_KEYWORD___LINE__
__LINE__
Definition ast.h:381
@ PM_TOKEN_BRACE_LEFT_HASH
{ for a hash literal
Definition ast.h:129
@ PM_TOKEN_STRING_END
the end of a string
Definition ast.h:501
@ PM_TOKEN_WORDS_SEP_IMPLICIT
a separator between words in a list that has no source characters
Definition ast.h:540
@ PM_TOKEN_STRING_CONTENT
the contents of a string
Definition ast.h:498
@ PM_TOKEN_BRACE_LEFT
{
Definition ast.h:123
@ PM_TOKEN_COLON_COLON
::
Definition ast.h:162
@ PM_TOKEN_GREATER_GREATER
>>
Definition ast.h:231
@ PM_TOKEN_PERCENT_LOWER_X
%x
Definition ast.h:444
@ PM_TOKEN_PARENTHESIS_LEFT_GROUPING
( scanned at the beginning of an expression
Definition ast.h:426
@ PM_TOKEN_KEYWORD_SELF
self
Definition ast.h:342
@ PM_TOKEN_PERCENT_LOWER_I
%i
Definition ast.h:438
@ PM_TOKEN_NEWLINE_TERMINATOR
a newline that terminates a construct where a newline is otherwise insignificant
Definition ast.h:81
@ PM_TOKEN_KEYWORD_ALIAS
alias
Definition ast.h:264
@ PM_TOKEN_GLOBAL_VARIABLE
a global variable
Definition ast.h:222
@ PM_TOKEN_KEYWORD_IF_MODIFIER
if in the modifier form
Definition ast.h:312
@ PM_TOKEN_SLASH
/
Definition ast.h:477
@ PM_TOKEN_KEYWORD_RETRY
retry
Definition ast.h:336
@ PM_TOKEN_COLON
:
Definition ast.h:159
@ PM_TOKEN_KEYWORD_UNDEF
undef
Definition ast.h:351
@ PM_TOKEN_BRACKET_RIGHT
]
Definition ast.h:144
@ PM_TOKEN_KEYWORD_FOR
for
Definition ast.h:306
@ PM_TOKEN_KEYWORD_THEN
then
Definition ast.h:72
@ PM_TOKEN_QUESTION_MARK
?
Definition ast.h:468
@ PM_TOKEN___END__
marker for the point in the file at which the parser should stop
Definition ast.h:546
@ PM_TOKEN_KEYWORD_WHILE
while
Definition ast.h:366
@ PM_TOKEN_EQUAL
=
Definition ast.h:195
@ PM_TOKEN_KEYWORD_DEF
def
Definition ast.h:285
@ PM_TOKEN_UDOT_DOT_DOT
unary ... operator
Definition ast.h:519
@ PM_TOKEN_STAR
Definition ast.h:483
@ PM_TOKEN_KEYWORD_WHILE_MODIFIER
while in the modifier form
Definition ast.h:369
@ PM_TOKEN_KEYWORD_TRUE
true
Definition ast.h:348
@ PM_TOKEN_BRACE_RIGHT
}
Definition ast.h:42
@ PM_TOKEN_SEMICOLON
;
Definition ast.h:90
@ PM_TOKEN_REGEXP_BEGIN
the beginning of a regular expression
Definition ast.h:471
@ PM_TOKEN_CARET
^
Definition ast.h:147
@ PM_TOKEN_PERCENT_UPPER_I
%I
Definition ast.h:447
@ PM_TOKEN_KEYWORD_DO_LOOP
do keyword for a predicate in a while, until, or for loop
Definition ast.h:297
@ PM_TOKEN_KEYWORD_MODULE
module
Definition ast.h:315
@ PM_TOKEN_PLUS
+
Definition ast.h:462
@ PM_TOKEN_KEYWORD_NEXT
next
Definition ast.h:318
@ PM_TOKEN_BACKTICK
` as a method name
Definition ast.h:108
@ PM_TOKEN_INTEGER_IMAGINARY
an integer with an imaginary suffix
Definition ast.h:255
@ PM_TOKEN_LABEL
a label
Definition ast.h:384
@ PM_TOKEN_STAR_STAR_EQUAL
**=
Definition ast.h:492
@ PM_TOKEN_CHARACTER_LITERAL
a character literal
Definition ast.h:153
@ PM_TOKEN_XSTRING_BEGIN
the beginning of an execution string
Definition ast.h:543
@ PM_TOKEN_AMPERSAND_AMPERSAND
&&
Definition ast.h:96
@ PM_TOKEN_UMINUS
-@
Definition ast.h:522
@ PM_TOKEN_LESS_LESS
<<
Definition ast.h:402
@ PM_TOKEN_GREATER_EQUAL
>=
Definition ast.h:228
@ PM_TOKEN_COMMENT
a comment
Definition ast.h:165
@ PM_TOKEN_CARET_EQUAL
^=
Definition ast.h:150
@ PM_TOKEN_KEYWORD_ELSIF
elsif
Definition ast.h:57
@ PM_TOKEN_STRING_BEGIN
the beginning of a string
Definition ast.h:495
@ PM_TOKEN_LESS_EQUAL
<=
Definition ast.h:396
struct pm_global_variable_or_write_node pm_global_variable_or_write_node_t
GlobalVariableOrWriteNode.
PRISM_EXPORTED_FUNCTION pm_source_file_node_t * pm_source_file_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_string_t filepath)
Allocate and initialize a new SourceFileNode node.
PRISM_EXPORTED_FUNCTION pm_nil_node_t * pm_nil_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new NilNode node.
enum pm_array_node_flags pm_array_node_flags_t
Flags for array nodes.
struct pm_rescue_node pm_rescue_node_t
RescueNode.
PRISM_EXPORTED_FUNCTION pm_interpolated_string_node_t * pm_interpolated_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc)
Allocate and initialize a new InterpolatedStringNode node.
PRISM_EXPORTED_FUNCTION pm_class_variable_write_node_t * pm_class_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new ClassVariableWriteNode node.
PRISM_EXPORTED_FUNCTION pm_shareable_constant_node_t * pm_shareable_constant_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *write)
Allocate and initialize a new ShareableConstantNode node.
struct pm_array_node pm_array_node_t
ArrayNode.
PRISM_EXPORTED_FUNCTION pm_multi_target_node_t * pm_multi_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t lefts, struct pm_node *rest, pm_node_list_t rights, pm_location_t lparen_loc, pm_location_t rparen_loc)
Allocate and initialize a new MultiTargetNode node.
struct pm_while_node pm_while_node_t
WhileNode.
PRISM_EXPORTED_FUNCTION pm_module_node_t * pm_module_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t module_keyword_loc, struct pm_node *constant_path, struct pm_node *body, pm_location_t end_keyword_loc, pm_constant_id_t name)
Allocate and initialize a new ModuleNode node.
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:8072
@ PM_PARAMETER_FLAGS_REPEATED_PARAMETER
a parameter name that has been repeated in the method signature
Definition ast.h:8074
struct pm_no_block_parameter_node pm_no_block_parameter_node_t
NoBlockParameterNode.
pm_encoding_flags
Flags for nodes that have unescaped content.
Definition ast.h:8007
@ PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8012
@ PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8009
PRISM_EXPORTED_FUNCTION pm_instance_variable_and_write_node_t * pm_instance_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new InstanceVariableAndWriteNode node.
PRISM_EXPORTED_FUNCTION pm_index_and_write_node_t * pm_index_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new IndexAndWriteNode node.
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.
PRISM_EXPORTED_FUNCTION pm_and_node_t * pm_and_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc)
Allocate and initialize a new AndNode node.
struct pm_global_variable_operator_write_node pm_global_variable_operator_write_node_t
GlobalVariableOperatorWriteNode.
PRISM_EXPORTED_FUNCTION pm_interpolated_x_string_node_t * pm_interpolated_x_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc)
Allocate and initialize a new InterpolatedXStringNode node.
PRISM_EXPORTED_FUNCTION pm_true_node_t * pm_true_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new TrueNode node.
PRISM_EXPORTED_FUNCTION pm_match_write_node_t * pm_match_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_call_node *call, pm_node_list_t targets)
Allocate and initialize a new MatchWriteNode node.
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:8062
@ PM_LOOP_FLAGS_BEGIN_MODIFIER
a loop after a begin statement, so the body is executed first before the condition
Definition ast.h:8064
struct pm_pinned_variable_node pm_pinned_variable_node_t
PinnedVariableNode.
PRISM_EXPORTED_FUNCTION pm_program_node_t * pm_program_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, struct pm_statements_node *statements)
Allocate and initialize a new ProgramNode node.
struct pm_instance_variable_and_write_node pm_instance_variable_and_write_node_t
InstanceVariableAndWriteNode.
PRISM_EXPORTED_FUNCTION pm_splat_node_t * pm_splat_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, struct pm_node *expression)
Allocate and initialize a new SplatNode node.
struct pm_program_node pm_program_node_t
ProgramNode.
PRISM_EXPORTED_FUNCTION pm_break_node_t * pm_break_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_arguments_node *arguments, pm_location_t keyword_loc)
Allocate and initialize a new BreakNode node.
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.
Definition constant_pool.h:30
This module provides functions for working with arbitrary-sized integers.
A view of a sequence of bytes owned by someone else.
AliasGlobalVariableNode.
Definition ast.h:1170
PM_NODE_ALIGNAS struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1182
pm_node_t base
The embedded base node.
Definition ast.h:1172
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1202
PM_NODE_ALIGNAS struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1192
AliasMethodNode.
Definition ast.h:1217
PM_NODE_ALIGNAS struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1251
pm_node_t base
The embedded base node.
Definition ast.h:1219
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1261
PM_NODE_ALIGNAS struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1235
AlternationPatternNode.
Definition ast.h:1276
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1308
PM_NODE_ALIGNAS struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1288
pm_node_t base
The embedded base node.
Definition ast.h:1278
PM_NODE_ALIGNAS struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1298
AndNode.
Definition ast.h:1323
PM_NODE_ALIGNAS struct pm_node * left
AndNode::left.
Definition ast.h:1338
PM_NODE_ALIGNAS struct pm_node * right
AndNode::right.
Definition ast.h:1351
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1361
pm_node_t base
The embedded base node.
Definition ast.h:1325
ArgumentsNode.
Definition ast.h:1383
pm_node_t base
The embedded base node.
Definition ast.h:1385
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1395
ArrayNode.
Definition ast.h:1413
pm_node_t base
The embedded base node.
Definition ast.h:1415
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1446
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1422
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1434
ArrayPatternNode.
Definition ast.h:1473
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1501
PM_NODE_ALIGNAS struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1511
PM_NODE_ALIGNAS struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1491
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1531
pm_node_t base
The embedded base node.
Definition ast.h:1475
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1541
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1521
AssocNode.
Definition ast.h:1556
pm_node_t base
The embedded base node.
Definition ast.h:1558
PM_NODE_ALIGNAS struct pm_node * value
AssocNode::value.
Definition ast.h:1587
PM_NODE_ALIGNAS struct pm_node * key
AssocNode::key.
Definition ast.h:1574
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1597
AssocSplatNode.
Definition ast.h:1612
pm_node_t base
The embedded base node.
Definition ast.h:1614
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1634
PM_NODE_ALIGNAS struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1624
BackReferenceReadNode.
Definition ast.h:1649
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1662
pm_node_t base
The embedded base node.
Definition ast.h:1651
BeginNode.
Definition ast.h:1679
PM_NODE_ALIGNAS struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1721
PM_NODE_ALIGNAS struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1731
PM_NODE_ALIGNAS struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1701
PM_NODE_ALIGNAS struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1711
pm_node_t base
The embedded base node.
Definition ast.h:1681
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1741
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1691
BlockArgumentNode.
Definition ast.h:1756
PM_NODE_ALIGNAS struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1768
pm_node_t base
The embedded base node.
Definition ast.h:1758
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1778
BlockLocalVariableNode.
Definition ast.h:1796
pm_node_t base
The embedded base node.
Definition ast.h:1798
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1808
BlockNode.
Definition ast.h:1823
pm_node_t base
The embedded base node.
Definition ast.h:1825
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1879
PM_NODE_ALIGNAS struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1849
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1869
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1835
PM_NODE_ALIGNAS struct pm_node * body
BlockNode::body.
Definition ast.h:1859
BlockParameterNode.
Definition ast.h:1898
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1932
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1921
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1911
pm_node_t base
The embedded base node.
Definition ast.h:1900
BlockParametersNode.
Definition ast.h:1951
pm_node_t base
The embedded base node.
Definition ast.h:1953
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1981
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1967
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:2009
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1995
BreakNode.
Definition ast.h:2024
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2046
pm_node_t base
The embedded base node.
Definition ast.h:2026
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:2036
CallAndWriteNode.
Definition ast.h:2067
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2129
PM_NODE_ALIGNAS struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2079
pm_node_t base
The embedded base node.
Definition ast.h:2069
PM_NODE_ALIGNAS struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2139
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2089
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2099
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2109
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2119
CallNode.
Definition ast.h:2175
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2236
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2256
pm_constant_id_t name
CallNode::name.
Definition ast.h:2216
pm_node_t base
The embedded base node.
Definition ast.h:2177
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2246
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2269
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2206
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2226
PM_NODE_ALIGNAS struct pm_node * block
CallNode::block.
Definition ast.h:2279
PM_NODE_ALIGNAS struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2193
CallOperatorWriteNode.
Definition ast.h:2300
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2342
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2362
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2372
pm_node_t base
The embedded base node.
Definition ast.h:2302
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2352
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2332
PM_NODE_ALIGNAS struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2312
PM_NODE_ALIGNAS struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2382
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2322
CallOrWriteNode.
Definition ast.h:2403
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2465
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2425
PM_NODE_ALIGNAS struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2415
pm_node_t base
The embedded base node.
Definition ast.h:2405
PM_NODE_ALIGNAS struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2475
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2455
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2445
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2435
CallTargetNode.
Definition ast.h:2504
pm_node_t base
The embedded base node.
Definition ast.h:2506
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2536
PM_NODE_ALIGNAS struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2516
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2526
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2546
CapturePatternNode.
Definition ast.h:2561
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2593
pm_node_t base
The embedded base node.
Definition ast.h:2563
PM_NODE_ALIGNAS struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2573
PM_NODE_ALIGNAS struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2583
CaseMatchNode.
Definition ast.h:2610
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2662
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2632
pm_node_t base
The embedded base node.
Definition ast.h:2612
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2652
PM_NODE_ALIGNAS struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2622
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2642
CaseNode.
Definition ast.h:2679
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2711
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2701
PM_NODE_ALIGNAS struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2691
pm_node_t base
The embedded base node.
Definition ast.h:2681
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2721
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2731
ClassNode.
Definition ast.h:2746
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2763
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2808
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2753
PM_NODE_ALIGNAS struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2788
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2778
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2817
pm_node_t base
The embedded base node.
Definition ast.h:2748
PM_NODE_ALIGNAS struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2768
PM_NODE_ALIGNAS struct pm_node * body
ClassNode::body.
Definition ast.h:2798
ClassVariableAndWriteNode.
Definition ast.h:2832
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2874
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2844
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2864
pm_node_t base
The embedded base node.
Definition ast.h:2834
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2854
ClassVariableOperatorWriteNode.
Definition ast.h:2889
pm_node_t base
The embedded base node.
Definition ast.h:2891
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2896
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2911
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2901
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2916
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2906
ClassVariableOrWriteNode.
Definition ast.h:2931
pm_node_t base
The embedded base node.
Definition ast.h:2933
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2953
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2943
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2948
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2938
ClassVariableReadNode.
Definition ast.h:2968
pm_node_t base
The embedded base node.
Definition ast.h:2970
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2981
ClassVariableTargetNode.
Definition ast.h:2996
pm_node_t base
The embedded base node.
Definition ast.h:2998
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:3003
ClassVariableWriteNode.
Definition ast.h:3018
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:3041
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3054
pm_node_t base
The embedded base node.
Definition ast.h:3020
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3064
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:3031
ConstantAndWriteNode.
Definition ast.h:3079
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3096
PM_NODE_ALIGNAS struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3101
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3091
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3086
pm_node_t base
The embedded base node.
Definition ast.h:3081
A list of constant IDs.
Definition constant_pool.h:51
ConstantOperatorWriteNode.
Definition ast.h:3116
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3123
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3128
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3143
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3133
PM_NODE_ALIGNAS struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3138
pm_node_t base
The embedded base node.
Definition ast.h:3118
ConstantOrWriteNode.
Definition ast.h:3158
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3175
PM_NODE_ALIGNAS struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3180
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3170
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3165
pm_node_t base
The embedded base node.
Definition ast.h:3160
ConstantPathAndWriteNode.
Definition ast.h:3195
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3202
pm_node_t base
The embedded base node.
Definition ast.h:3197
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3212
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3207
ConstantPathNode.
Definition ast.h:3227
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3265
pm_node_t base
The embedded base node.
Definition ast.h:3229
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3245
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3278
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3252
ConstantPathOperatorWriteNode.
Definition ast.h:3293
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3300
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3315
pm_node_t base
The embedded base node.
Definition ast.h:3295
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3305
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3310
ConstantPathOrWriteNode.
Definition ast.h:3330
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3342
pm_node_t base
The embedded base node.
Definition ast.h:3332
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3347
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3337
ConstantPathTargetNode.
Definition ast.h:3362
pm_node_t base
The embedded base node.
Definition ast.h:3364
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3379
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3374
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3369
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3384
ConstantPathWriteNode.
Definition ast.h:3405
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3440
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3430
pm_node_t base
The embedded base node.
Definition ast.h:3407
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3420
ConstantReadNode.
Definition ast.h:3455
pm_node_t base
The embedded base node.
Definition ast.h:3457
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3468
ConstantTargetNode.
Definition ast.h:3483
pm_node_t base
The embedded base node.
Definition ast.h:3485
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3490
ConstantWriteNode.
Definition ast.h:3505
pm_node_t base
The embedded base node.
Definition ast.h:3507
PM_NODE_ALIGNAS struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3541
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3518
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3528
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3551
DefNode.
Definition ast.h:3567
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3629
pm_constant_id_t name
DefNode::name.
Definition ast.h:3574
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3579
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3619
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3589
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3624
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3604
pm_node_t base
The embedded base node.
Definition ast.h:3569
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3614
PM_NODE_ALIGNAS struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3584
PM_NODE_ALIGNAS struct pm_node * body
DefNode::body.
Definition ast.h:3594
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3609
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3599
DefinedNode.
Definition ast.h:3644
PM_NODE_ALIGNAS struct pm_node * value
DefinedNode::value.
Definition ast.h:3656
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3651
pm_node_t base
The embedded base node.
Definition ast.h:3646
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3661
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3666
ElseNode.
Definition ast.h:3681
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3688
pm_node_t base
The embedded base node.
Definition ast.h:3683
PM_NODE_ALIGNAS struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3693
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3698
EmbeddedStatementsNode.
Definition ast.h:3713
PM_NODE_ALIGNAS struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3725
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3730
pm_node_t base
The embedded base node.
Definition ast.h:3715
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3720
EmbeddedVariableNode.
Definition ast.h:3745
PM_NODE_ALIGNAS struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3757
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3752
pm_node_t base
The embedded base node.
Definition ast.h:3747
EnsureNode.
Definition ast.h:3776
PM_NODE_ALIGNAS struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3788
pm_node_t base
The embedded base node.
Definition ast.h:3778
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3783
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3793
ErrorRecoveryNode.
Definition ast.h:3805
PM_NODE_ALIGNAS struct pm_node * unexpected
ErrorRecoveryNode::unexpected.
Definition ast.h:3814
pm_node_t base
The embedded base node.
Definition ast.h:3807
FalseNode.
Definition ast.h:3829
pm_node_t base
The embedded base node.
Definition ast.h:3831
FindPatternNode.
Definition ast.h:3855
PM_NODE_ALIGNAS struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3880
PM_NODE_ALIGNAS struct pm_splat_node * right
FindPatternNode::right.
Definition ast.h:3906
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3919
pm_node_t base
The embedded base node.
Definition ast.h:3857
PM_NODE_ALIGNAS struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3867
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3893
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3932
FlipFlopNode.
Definition ast.h:3950
PM_NODE_ALIGNAS struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3957
pm_node_t base
The embedded base node.
Definition ast.h:3952
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3967
PM_NODE_ALIGNAS struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3962
FloatNode.
Definition ast.h:3982
double value
FloatNode::value.
Definition ast.h:3991
pm_node_t base
The embedded base node.
Definition ast.h:3984
ForNode.
Definition ast.h:4006
PM_NODE_ALIGNAS struct pm_node * index
ForNode::index.
Definition ast.h:4018
PM_NODE_ALIGNAS struct pm_node * collection
ForNode::collection.
Definition ast.h:4028
pm_node_t base
The embedded base node.
Definition ast.h:4008
PM_NODE_ALIGNAS struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:4040
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4080
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4050
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4070
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4060
ForwardingArgumentsNode.
Definition ast.h:4097
pm_node_t base
The embedded base node.
Definition ast.h:4099
ForwardingParameterNode.
Definition ast.h:4115
pm_node_t base
The embedded base node.
Definition ast.h:4117
ForwardingSuperNode.
Definition ast.h:4137
pm_node_t base
The embedded base node.
Definition ast.h:4139
PM_NODE_ALIGNAS struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4157
pm_location_t keyword_loc
ForwardingSuperNode::keyword_loc.
Definition ast.h:4150
GlobalVariableAndWriteNode.
Definition ast.h:4172
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4189
pm_node_t base
The embedded base node.
Definition ast.h:4174
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4194
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4184
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4179
GlobalVariableOperatorWriteNode.
Definition ast.h:4209
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4231
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4216
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4236
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4221
pm_node_t base
The embedded base node.
Definition ast.h:4211
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4226
GlobalVariableOrWriteNode.
Definition ast.h:4251
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4258
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4263
pm_node_t base
The embedded base node.
Definition ast.h:4253
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4268
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4273
GlobalVariableReadNode.
Definition ast.h:4288
pm_node_t base
The embedded base node.
Definition ast.h:4290
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4301
GlobalVariableTargetNode.
Definition ast.h:4316
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4323
pm_node_t base
The embedded base node.
Definition ast.h:4318
GlobalVariableWriteNode.
Definition ast.h:4338
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4361
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4384
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4351
pm_node_t base
The embedded base node.
Definition ast.h:4340
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4374
HashNode.
Definition ast.h:4399
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4424
pm_node_t base
The embedded base node.
Definition ast.h:4401
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4434
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4411
HashPatternNode.
Definition ast.h:4458
PM_NODE_ALIGNAS struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4473
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4483
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4512
pm_node_t base
The embedded base node.
Definition ast.h:4460
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4525
PM_NODE_ALIGNAS struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4499
IfNode.
Definition ast.h:4546
PM_NODE_ALIGNAS struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4578
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4636
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4560
PM_NODE_ALIGNAS struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4605
pm_node_t base
The embedded base node.
Definition ast.h:4548
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4591
PM_NODE_ALIGNAS struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4624
ImaginaryNode.
Definition ast.h:4651
pm_node_t base
The embedded base node.
Definition ast.h:4653
PM_NODE_ALIGNAS struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4658
ImplicitNode.
Definition ast.h:4679
pm_node_t base
The embedded base node.
Definition ast.h:4681
PM_NODE_ALIGNAS struct pm_node * value
ImplicitNode::value.
Definition ast.h:4686
ImplicitRestNode.
Definition ast.h:4710
pm_node_t base
The embedded base node.
Definition ast.h:4712
InNode.
Definition ast.h:4727
pm_location_t in_keyword_loc
InNode::in_keyword_loc.
Definition ast.h:4744
PM_NODE_ALIGNAS struct pm_node * pattern
InNode::pattern.
Definition ast.h:4734
PM_NODE_ALIGNAS struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4739
pm_location_t then_keyword_loc
InNode::then_keyword_loc.
Definition ast.h:4749
pm_node_t base
The embedded base node.
Definition ast.h:4729
IndexAndWriteNode.
Definition ast.h:4770
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4792
pm_node_t base
The embedded base node.
Definition ast.h:4772
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4807
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4797
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4787
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4782
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4802
PM_NODE_ALIGNAS struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4777
PM_NODE_ALIGNAS struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4812
IndexOperatorWriteNode.
Definition ast.h:4833
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4865
pm_node_t base
The embedded base node.
Definition ast.h:4835
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4840
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4875
PM_NODE_ALIGNAS struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4880
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4850
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4855
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4845
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4860
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4870
IndexOrWriteNode.
Definition ast.h:4901
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4928
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4913
pm_node_t base
The embedded base node.
Definition ast.h:4903
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4938
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4918
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4923
PM_NODE_ALIGNAS struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4943
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4908
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4933
IndexTargetNode.
Definition ast.h:4972
pm_node_t base
The embedded base node.
Definition ast.h:4974
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4989
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4994
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4999
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4984
PM_NODE_ALIGNAS struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4979
InstanceVariableAndWriteNode.
Definition ast.h:5014
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:5036
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:5031
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:5026
pm_node_t base
The embedded base node.
Definition ast.h:5016
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:5021
InstanceVariableOperatorWriteNode.
Definition ast.h:5051
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5078
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5073
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5068
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5058
pm_node_t base
The embedded base node.
Definition ast.h:5053
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5063
InstanceVariableOrWriteNode.
Definition ast.h:5093
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5110
pm_node_t base
The embedded base node.
Definition ast.h:5095
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5105
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5100
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5115
InstanceVariableReadNode.
Definition ast.h:5130
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5143
pm_node_t base
The embedded base node.
Definition ast.h:5132
InstanceVariableTargetNode.
Definition ast.h:5158
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5165
pm_node_t base
The embedded base node.
Definition ast.h:5160
InstanceVariableWriteNode.
Definition ast.h:5180
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5226
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5216
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5193
pm_node_t base
The embedded base node.
Definition ast.h:5182
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5203
IntegerNode.
Definition ast.h:5247
pm_integer_t value
IntegerNode::value.
Definition ast.h:5256
pm_node_t base
The embedded base node.
Definition ast.h:5249
A structure represents an arbitrary-sized integer.
Definition integer.h:19
InterpolatedMatchLastLineNode.
Definition ast.h:5284
pm_node_t base
The embedded base node.
Definition ast.h:5286
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5301
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5296
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5291
InterpolatedRegularExpressionNode.
Definition ast.h:5329
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5336
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5341
pm_node_t base
The embedded base node.
Definition ast.h:5331
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5346
InterpolatedStringNode.
Definition ast.h:5365
pm_node_t base
The embedded base node.
Definition ast.h:5367
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5382
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5372
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5377
InterpolatedSymbolNode.
Definition ast.h:5397
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5409
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5414
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5404
pm_node_t base
The embedded base node.
Definition ast.h:5399
InterpolatedXStringNode.
Definition ast.h:5429
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5436
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5446
pm_node_t base
The embedded base node.
Definition ast.h:5431
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5441
ItLocalVariableReadNode.
Definition ast.h:5461
pm_node_t base
The embedded base node.
Definition ast.h:5463
ItParametersNode.
Definition ast.h:5478
pm_node_t base
The embedded base node.
Definition ast.h:5480
KeywordHashNode.
Definition ast.h:5498
pm_node_t base
The embedded base node.
Definition ast.h:5500
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5505
KeywordRestParameterNode.
Definition ast.h:5524
pm_node_t base
The embedded base node.
Definition ast.h:5526
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5531
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5541
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5536
LambdaNode.
Definition ast.h:5556
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5578
pm_node_t base
The embedded base node.
Definition ast.h:5558
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5573
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5568
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5563
PM_NODE_ALIGNAS struct pm_node * body
LambdaNode::body.
Definition ast.h:5588
PM_NODE_ALIGNAS struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5583
LocalVariableAndWriteNode.
Definition ast.h:5603
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5625
pm_node_t base
The embedded base node.
Definition ast.h:5605
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5630
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5615
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5620
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5610
LocalVariableOperatorWriteNode.
Definition ast.h:5645
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5677
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5672
pm_node_t base
The embedded base node.
Definition ast.h:5647
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5652
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5657
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5662
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5667
LocalVariableOrWriteNode.
Definition ast.h:5692
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5709
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5719
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5704
pm_node_t base
The embedded base node.
Definition ast.h:5694
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5714
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5699
LocalVariableReadNode.
Definition ast.h:5734
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5764
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5751
pm_node_t base
The embedded base node.
Definition ast.h:5736
LocalVariableTargetNode.
Definition ast.h:5782
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5794
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5789
pm_node_t base
The embedded base node.
Definition ast.h:5784
LocalVariableWriteNode.
Definition ast.h:5809
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5862
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5872
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5845
pm_node_t base
The embedded base node.
Definition ast.h:5811
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5835
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5822
This struct represents a slice in the source code, defined by an offset and a length.
Definition ast.h:584
uint32_t start
The offset of the location from the start of the source.
Definition ast.h:586
uint32_t length
The length of the location.
Definition ast.h:589
MatchLastLineNode.
Definition ast.h:5900
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5912
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5907
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5917
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5922
pm_node_t base
The embedded base node.
Definition ast.h:5902
MatchPredicateNode.
Definition ast.h:5937
pm_location_t keyword_loc
MatchPredicateNode::keyword_loc.
Definition ast.h:5954
PM_NODE_ALIGNAS struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5949
PM_NODE_ALIGNAS struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5944
pm_node_t base
The embedded base node.
Definition ast.h:5939
MatchRequiredNode.
Definition ast.h:5969
pm_node_t base
The embedded base node.
Definition ast.h:5971
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6040
PM_NODE_ALIGNAS struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:6030
PM_NODE_ALIGNAS struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5981
MatchWriteNode.
Definition ast.h:6055
pm_node_t base
The embedded base node.
Definition ast.h:6057
PM_NODE_ALIGNAS struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6062
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6067
ModuleNode.
Definition ast.h:6082
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6109
PM_NODE_ALIGNAS struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6099
PM_NODE_ALIGNAS struct pm_node * body
ModuleNode::body.
Definition ast.h:6104
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6089
pm_node_t base
The embedded base node.
Definition ast.h:6084
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6094
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6114
MultiTargetNode.
Definition ast.h:6134
PM_NODE_ALIGNAS struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6171
pm_node_t base
The embedded base node.
Definition ast.h:6136
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6191
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6151
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6201
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6181
MultiWriteNode.
Definition ast.h:6216
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6283
PM_NODE_ALIGNAS struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6253
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6263
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6293
PM_NODE_ALIGNAS struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6303
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6273
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6233
pm_node_t base
The embedded base node.
Definition ast.h:6218
NextNode.
Definition ast.h:6318
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6325
pm_node_t base
The embedded base node.
Definition ast.h:6320
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6330
NilNode.
Definition ast.h:6345
pm_node_t base
The embedded base node.
Definition ast.h:6347
NoBlockParameterNode.
Definition ast.h:6363
pm_location_t keyword_loc
NoBlockParameterNode::keyword_loc.
Definition ast.h:6375
pm_node_t base
The embedded base node.
Definition ast.h:6365
pm_location_t operator_loc
NoBlockParameterNode::operator_loc.
Definition ast.h:6370
NoKeywordsParameterNode.
Definition ast.h:6391
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6403
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6398
pm_node_t base
The embedded base node.
Definition ast.h:6393
A list of nodes in the source, most often used for lists of children.
Definition ast.h:597
size_t size
The number of nodes in the list.
Definition ast.h:599
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:605
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:602
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1095
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1100
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1114
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1106
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1120
NumberedParametersNode.
Definition ast.h:6418
pm_node_t base
The embedded base node.
Definition ast.h:6420
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6425
NumberedReferenceReadNode.
Definition ast.h:6440
pm_node_t base
The embedded base node.
Definition ast.h:6442
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6455
OptionalKeywordParameterNode.
Definition ast.h:6474
pm_node_t base
The embedded base node.
Definition ast.h:6476
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6481
PM_NODE_ALIGNAS struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6491
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6486
OptionalParameterNode.
Definition ast.h:6510
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6522
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6517
pm_node_t base
The embedded base node.
Definition ast.h:6512
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6527
PM_NODE_ALIGNAS struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6532
OrNode.
Definition ast.h:6547
PM_NODE_ALIGNAS struct pm_node * right
OrNode::right.
Definition ast.h:6575
pm_node_t base
The embedded base node.
Definition ast.h:6549
PM_NODE_ALIGNAS struct pm_node * left
OrNode::left.
Definition ast.h:6562
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6585
ParametersNode.
Definition ast.h:6601
PM_NODE_ALIGNAS struct pm_node * block
ParametersNode::block.
Definition ast.h:6638
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6608
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6613
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6623
pm_node_t base
The embedded base node.
Definition ast.h:6603
PM_NODE_ALIGNAS struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6618
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6628
PM_NODE_ALIGNAS struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6633
ParenthesesNode.
Definition ast.h:6656
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6673
pm_node_t base
The embedded base node.
Definition ast.h:6658
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6668
PM_NODE_ALIGNAS struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6663
PinnedExpressionNode.
Definition ast.h:6688
pm_node_t base
The embedded base node.
Definition ast.h:6690
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6730
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6720
PM_NODE_ALIGNAS struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6700
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6710
PinnedVariableNode.
Definition ast.h:6745
pm_node_t base
The embedded base node.
Definition ast.h:6747
PM_NODE_ALIGNAS struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6757
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6767
PostExecutionNode.
Definition ast.h:6782
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6804
pm_node_t base
The embedded base node.
Definition ast.h:6784
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6799
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6794
PM_NODE_ALIGNAS struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6789
PreExecutionNode.
Definition ast.h:6819
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6841
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6836
PM_NODE_ALIGNAS struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6826
pm_node_t base
The embedded base node.
Definition ast.h:6821
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6831
ProgramNode.
Definition ast.h:6853
pm_node_t base
The embedded base node.
Definition ast.h:6855
PM_NODE_ALIGNAS struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6865
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6860
RangeNode.
Definition ast.h:6886
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6922
pm_node_t base
The embedded base node.
Definition ast.h:6888
PM_NODE_ALIGNAS struct pm_node * right
RangeNode::right.
Definition ast.h:6915
PM_NODE_ALIGNAS struct pm_node * left
RangeNode::left.
Definition ast.h:6901
RationalNode.
Definition ast.h:6943
pm_node_t base
The embedded base node.
Definition ast.h:6945
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6963
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6954
RedoNode.
Definition ast.h:6978
pm_node_t base
The embedded base node.
Definition ast.h:6980
RegularExpressionNode.
Definition ast.h:7008
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:7025
pm_node_t base
The embedded base node.
Definition ast.h:7010
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:7030
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:7015
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:7020
RequiredKeywordParameterNode.
Definition ast.h:7049
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7061
pm_node_t base
The embedded base node.
Definition ast.h:7051
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7056
RequiredParameterNode.
Definition ast.h:7080
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7087
pm_node_t base
The embedded base node.
Definition ast.h:7082
RescueModifierNode.
Definition ast.h:7102
PM_NODE_ALIGNAS struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7109
pm_node_t base
The embedded base node.
Definition ast.h:7104
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7114
PM_NODE_ALIGNAS struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7119
RescueNode.
Definition ast.h:7139
PM_NODE_ALIGNAS struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7171
PM_NODE_ALIGNAS struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7176
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7146
PM_NODE_ALIGNAS struct pm_node * reference
RescueNode::reference.
Definition ast.h:7161
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7166
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7156
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7151
pm_node_t base
The embedded base node.
Definition ast.h:7141
RestParameterNode.
Definition ast.h:7195
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7202
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7207
pm_node_t base
The embedded base node.
Definition ast.h:7197
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7212
RetryNode.
Definition ast.h:7227
pm_node_t base
The embedded base node.
Definition ast.h:7229
ReturnNode.
Definition ast.h:7244
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7256
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7251
pm_node_t base
The embedded base node.
Definition ast.h:7246
SelfNode.
Definition ast.h:7271
pm_node_t base
The embedded base node.
Definition ast.h:7273
ShareableConstantNode.
Definition ast.h:7294
PM_NODE_ALIGNAS struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7303
pm_node_t base
The embedded base node.
Definition ast.h:7296
SingletonClassNode.
Definition ast.h:7318
PM_NODE_ALIGNAS struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7345
pm_node_t base
The embedded base node.
Definition ast.h:7320
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7325
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7335
PM_NODE_ALIGNAS struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7340
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7350
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7330
SourceEncodingNode.
Definition ast.h:7365
pm_node_t base
The embedded base node.
Definition ast.h:7367
SourceFileNode.
Definition ast.h:7388
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7397
pm_node_t base
The embedded base node.
Definition ast.h:7390
SourceLineNode.
Definition ast.h:7412
pm_node_t base
The embedded base node.
Definition ast.h:7414
SplatNode.
Definition ast.h:7429
pm_node_t base
The embedded base node.
Definition ast.h:7431
PM_NODE_ALIGNAS struct pm_node * expression
SplatNode::expression.
Definition ast.h:7441
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7436
StatementsNode.
Definition ast.h:7456
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7463
pm_node_t base
The embedded base node.
Definition ast.h:7458
StringNode.
Definition ast.h:7490
pm_node_t base
The embedded base node.
Definition ast.h:7492
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7512
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7502
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7507
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7497
A view of a sequence of bytes.
Definition stringy.h:23
SuperNode.
Definition ast.h:7532
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7551
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7544
pm_node_t base
The embedded base node.
Definition ast.h:7534
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7539
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7556
PM_NODE_ALIGNAS struct pm_node * block
SuperNode::block.
Definition ast.h:7561
SymbolNode.
Definition ast.h:7584
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7591
pm_location_t content_loc
SymbolNode::content_loc.
Definition ast.h:7596
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7601
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7606
pm_node_t base
The embedded base node.
Definition ast.h:7586
This struct represents a token in the Ruby source.
Definition ast.h:556
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:564
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:561
pm_token_type_t type
The type of the token.
Definition ast.h:558
TrueNode.
Definition ast.h:7621
pm_node_t base
The embedded base node.
Definition ast.h:7623
UndefNode.
Definition ast.h:7638
pm_node_t base
The embedded base node.
Definition ast.h:7640
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7650
struct pm_node_list names
UndefNode::names.
Definition ast.h:7645
UnlessNode.
Definition ast.h:7668
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7706
PM_NODE_ALIGNAS struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7696
PM_NODE_ALIGNAS struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7717
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7737
PM_NODE_ALIGNAS struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7727
pm_node_t base
The embedded base node.
Definition ast.h:7670
pm_location_t unless_keyword_loc
UnlessNode::unless_keyword_loc.
Definition ast.h:7683
UntilNode.
Definition ast.h:7758
pm_location_t end_keyword_loc
UntilNode::end_keyword_loc.
Definition ast.h:7775
pm_location_t until_keyword_loc
UntilNode::until_keyword_loc.
Definition ast.h:7765
pm_node_t base
The embedded base node.
Definition ast.h:7760
PM_NODE_ALIGNAS struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7785
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7770
PM_NODE_ALIGNAS struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7780
WhenNode.
Definition ast.h:7802
pm_location_t when_keyword_loc
WhenNode::when_keyword_loc.
Definition ast.h:7809
pm_node_t base
The embedded base node.
Definition ast.h:7804
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7819
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7824
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7814
WhileNode.
Definition ast.h:7845
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7872
pm_location_t while_keyword_loc
WhileNode::while_keyword_loc.
Definition ast.h:7852
pm_location_t end_keyword_loc
WhileNode::end_keyword_loc.
Definition ast.h:7862
pm_node_t base
The embedded base node.
Definition ast.h:7847
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7857
PM_NODE_ALIGNAS struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7867
XStringNode.
Definition ast.h:7891
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7908
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7898
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7903
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7913
pm_node_t base
The embedded base node.
Definition ast.h:7893
YieldNode.
Definition ast.h:7928
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7935
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7940
pm_node_t base
The embedded base node.
Definition ast.h:7930
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7950
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7945