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
33typedef enum pm_token_type {
36
39
42
45
48
51
54
57
60
63
66
69
72
75
78
81
84
87
90
93
96
99
102
105
108
111
114
117
120
123
126
129
132
135
138
141
144
147
150
153
156
159
162
165
168
171
174
177
180
183
186
189
192
195
198
201
204
207
210
213
216
219
222
225
228
231
234
237
240
243
246
249
252
255
258
261
264
267
270
273
276
279
282
285
288
291
294
297
300
303
306
309
312
315
318
321
324
327
330
333
336
339
342
345
348
351
354
357
360
363
366
369
372
375
378
381
384
387
390
393
396
399
402
405
408
411
414
417
420
423
426
429
432
435
438
441
444
447
450
453
456
459
462
465
468
471
474
477
480
483
486
489
492
495
498
501
504
507
510
513
516
519
522
525
528
531
534
537
540
543
547
552typedef struct {
555
557 const uint8_t *start;
558
560 const uint8_t *end;
561} pm_token_t;
562
570PRISM_EXPORTED_FUNCTION const char * pm_token_type(pm_token_type_t token_type);
571
580typedef struct {
582 uint32_t start;
583
585 uint32_t length;
587
588struct pm_node;
589
593typedef struct pm_node_list {
595 size_t size;
596
598 size_t capacity;
599
601 struct pm_node **nodes;
603
610
613
616
619
622
625
628
631
634
637
640
643
646
649
652
655
658
661
664
667
670
673
676
679
682
685
688
691
694
697
700
703
706
709
712
715
718
721
724
727
730
733
736
739
742
745
748
751
754
757
760
763
766
769
772
775
778
781
784
787
790
793
796
799
802
805
808
811
814
817
820
823
826
829
832
835
838
841
844
847
850
853
856
859
862
865
868
871
874
877
880
883
886
889
892
895
898
901
904
907
910
913
916
919
922
925
928
931
934
937
940
943
946
949
952
955
958
961
964
967
970
973
976
979
982
985
988
991
994
997
1000
1003
1006
1009
1012
1015
1018
1021
1024
1027
1030
1033
1036
1039
1042
1045
1048
1051
1054
1057
1060
1063
1067
1072typedef uint16_t pm_node_type_t;
1073
1078typedef uint16_t pm_node_flags_t;
1079
1084static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1085static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1086
1116
1120#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1121
1126#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1127
1131#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1132
1136#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1137
1141#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1142
1146#ifdef _MSC_VER
1147#define PM_NODE_ALIGNAS __declspec(align(8))
1148#else
1149#define PM_NODE_ALIGNAS PRISM_ALIGNAS(PRISM_ALIGNOF(void *))
1150#endif
1151
1198
1257
1304
1357
1391
1442
1537
1593
1630
1658
1737
1774
1804
1875
1928
2005
2042
2135
2275
2378
2471
2542
2589
2658
2727
2813
2870
2912
2949
2977
2999
3060
3097
3139
3176
3208
3274
3311
3343
3380
3436
3464
3486
3547
3625
3662
3694
3726
3753
3789
3810
3827
3928
3963
3987
4076
4095
4113
4153
4190
4232
4269
4297
4319
4380
4430
4521
4632
4654
4682
4708
4745
4808
4876
4939
4995
5032
5074
5111
5139
5161
5222
5252
5297
5342
5378
5410
5442
5459
5476
5501
5537
5584
5626
5673
5715
5760
5790
5868
5918
5950
6036
6063
6110
6197
6299
6326
6343
6371
6399
6421
6451
6487
6528
6581
6634
6669
6726
6763
6800
6837
6861
6918
6959
6976
7026
7057
7083
7115
7172
7208
7225
7252
7269
7299
7346
7363
7393
7410
7437
7459
7508
7557
7602
7619
7646
7733
7781
7820
7868
7909
7946
7968
7975
7976 PM_ARRAY_NODE_FLAGS_LAST,
7978
7997
8010
8029
8042
8052
8056typedef enum pm_loop_flags {
8059
8060 PM_LOOP_FLAGS_LAST,
8062
8069
8070 PM_PARAMETER_FLAGS_LAST,
8072
8082
8086typedef enum pm_range_flags {
8089
8090 PM_RANGE_FLAGS_LAST,
8092
8132
8148
8167
8183
8196PRISM_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);
8197
8210PRISM_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);
8211
8224PRISM_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);
8225
8238PRISM_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);
8239
8251
8264PRISM_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);
8265
8281PRISM_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);
8282
8295PRISM_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);
8296
8308PRISM_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);
8309
8321
8337PRISM_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);
8338
8350PRISM_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);
8351
8363
8378PRISM_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);
8379
8393
8408
8421
8438PRISM_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);
8439
8458PRISM_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);
8459
8477PRISM_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);
8478
8495PRISM_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);
8496
8510PRISM_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);
8511
8525
8540PRISM_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);
8541
8556PRISM_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);
8557
8575PRISM_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);
8576
8591
8607
8622
8634
8646
8661
8676
8692
8707
8721
8736
8751
8765
8780
8794
8806
8818
8833
8855PRISM_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);
8856
8870PRISM_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);
8871
8884PRISM_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);
8885
8899
8912
8925PRISM_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);
8926
8938
8949
8965PRISM_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);
8966
8979PRISM_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);
8980
8991PRISM_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);
8992
9009PRISM_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);
9010
9021
9032
9045
9060
9076
9091
9103
9115
9130
9143PRISM_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);
9144
9159PRISM_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);
9160
9176PRISM_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);
9177
9189
9201
9212
9226PRISM_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);
9227
9245PRISM_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);
9246
9265PRISM_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);
9266
9284PRISM_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);
9285
9300PRISM_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);
9301
9316
9332
9347
9359
9371
9386
9398
9412
9426
9440
9454
9468
9479
9490
9502
9516
9532PRISM_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);
9533
9549
9565PRISM_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);
9566
9582
9595
9608
9623PRISM_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);
9624
9639
9652PRISM_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);
9653
9666PRISM_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);
9667
9680
9696PRISM_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);
9697
9713
9730PRISM_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);
9731
9744
9755
9768
9781
9793
9805
9819
9834
9847PRISM_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);
9848
9865PRISM_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);
9866
9879PRISM_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);
9880
9894PRISM_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);
9895
9908
9922PRISM_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);
9923
9937PRISM_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);
9938
9951
9964PRISM_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);
9965
9978
9989
10004
10017
10029
10042PRISM_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);
10043
10060PRISM_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);
10061
10075
10086
10099
10110
10122
10138PRISM_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);
10139
10150
10162
10173
10185PRISM_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);
10186
10198
10212PRISM_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);
10213
10228PRISM_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);
10229
10243PRISM_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);
10244
10255
10268
10284PRISM_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);
10285
10300PRISM_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);
10301
10315PRISM_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);
10316
10331PRISM_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);
10332
10346PRISM_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);
10347
10362
10369#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
10370
10371#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:18
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:1149
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:8033
@ 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:8038
@ 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:8035
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:8086
@ PM_RANGE_FLAGS_EXCLUDE_END
... operator
Definition ast.h:8088
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:607
@ PM_DEFINED_NODE
DefinedNode.
Definition ast.h:744
@ PM_PRE_EXECUTION_NODE
PreExecutionNode.
Definition ast.h:969
@ PM_RETRY_NODE
RetryNode.
Definition ast.h:1002
@ PM_REDO_NODE
RedoNode.
Definition ast.h:981
@ PM_CONSTANT_PATH_WRITE_NODE
ConstantPathWriteNode.
Definition ast.h:729
@ PM_INDEX_AND_WRITE_NODE
IndexAndWriteNode.
Definition ast.h:825
@ PM_SOURCE_LINE_NODE
SourceLineNode.
Definition ast.h:1023
@ PM_UNLESS_NODE
UnlessNode.
Definition ast.h:1047
@ PM_EMBEDDED_VARIABLE_NODE
EmbeddedVariableNode.
Definition ast.h:753
@ PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOperatorWriteNode.
Definition ast.h:789
@ PM_CALL_NODE
CallNode.
Definition ast.h:663
@ PM_NIL_NODE
NilNode.
Definition ast.h:930
@ PM_GLOBAL_VARIABLE_READ_NODE
GlobalVariableReadNode.
Definition ast.h:795
@ PM_RATIONAL_NODE
RationalNode.
Definition ast.h:978
@ PM_YIELD_NODE
YieldNode.
Definition ast.h:1062
@ PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableAndWriteNode.
Definition ast.h:888
@ PM_CONSTANT_AND_WRITE_NODE
ConstantAndWriteNode.
Definition ast.h:705
@ PM_CLASS_NODE
ClassNode.
Definition ast.h:684
@ PM_FIND_PATTERN_NODE
FindPatternNode.
Definition ast.h:765
@ PM_CALL_OPERATOR_WRITE_NODE
CallOperatorWriteNode.
Definition ast.h:666
@ PM_MATCH_WRITE_NODE
MatchWriteNode.
Definition ast.h:915
@ PM_ARRAY_NODE
ArrayNode.
Definition ast.h:624
@ PM_CONSTANT_PATH_TARGET_NODE
ConstantPathTargetNode.
Definition ast.h:726
@ PM_PROGRAM_NODE
ProgramNode.
Definition ast.h:972
@ PM_OR_NODE
OrNode.
Definition ast.h:951
@ PM_MULTI_WRITE_NODE
MultiWriteNode.
Definition ast.h:924
@ PM_IF_NODE
IfNode.
Definition ast.h:810
@ PM_IMPLICIT_NODE
ImplicitNode.
Definition ast.h:816
@ PM_ARGUMENTS_NODE
ArgumentsNode.
Definition ast.h:621
@ PM_FORWARDING_SUPER_NODE
ForwardingSuperNode.
Definition ast.h:783
@ PM_WHILE_NODE
WhileNode.
Definition ast.h:1056
@ PM_INTERPOLATED_STRING_NODE
InterpolatedStringNode.
Definition ast.h:864
@ PM_FALSE_NODE
FalseNode.
Definition ast.h:762
@ PM_FORWARDING_PARAMETER_NODE
ForwardingParameterNode.
Definition ast.h:780
@ PM_BLOCK_LOCAL_VARIABLE_NODE
BlockLocalVariableNode.
Definition ast.h:645
@ PM_HASH_NODE
HashNode.
Definition ast.h:804
@ PM_UNTIL_NODE
UntilNode.
Definition ast.h:1050
@ PM_MATCH_PREDICATE_NODE
MatchPredicateNode.
Definition ast.h:909
@ PM_X_STRING_NODE
XStringNode.
Definition ast.h:1059
@ PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
LocalVariableOperatorWriteNode.
Definition ast.h:891
@ PM_LOCAL_VARIABLE_OR_WRITE_NODE
LocalVariableOrWriteNode.
Definition ast.h:894
@ PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableAndWriteNode.
Definition ast.h:837
@ PM_GLOBAL_VARIABLE_TARGET_NODE
GlobalVariableTargetNode.
Definition ast.h:798
@ PM_AND_NODE
AndNode.
Definition ast.h:618
@ PM_CONSTANT_TARGET_NODE
ConstantTargetNode.
Definition ast.h:735
@ PM_IT_LOCAL_VARIABLE_READ_NODE
ItLocalVariableReadNode.
Definition ast.h:873
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
Definition ast.h:714
@ PM_IN_NODE
InNode.
Definition ast.h:822
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
Definition ast.h:651
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
Definition ast.h:675
@ PM_SOURCE_FILE_NODE
SourceFileNode.
Definition ast.h:1020
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
Definition ast.h:936
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
Definition ast.h:720
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
Definition ast.h:921
@ PM_SPLAT_NODE
SplatNode.
Definition ast.h:1026
@ PM_LAMBDA_NODE
LambdaNode.
Definition ast.h:885
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
Definition ast.h:696
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
Definition ast.h:987
@ PM_CALL_TARGET_NODE
CallTargetNode.
Definition ast.h:672
@ PM_ELSE_NODE
ElseNode.
Definition ast.h:747
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
Definition ast.h:858
@ PM_WHEN_NODE
WhenNode.
Definition ast.h:1053
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
Definition ast.h:939
@ PM_SYMBOL_NODE
SymbolNode.
Definition ast.h:1038
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
Definition ast.h:993
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
Definition ast.h:612
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
Definition ast.h:912
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
Definition ast.h:777
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
Definition ast.h:636
@ PM_SCOPE_NODE
A special kind of node used for compilation.
Definition ast.h:1065
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
Definition ast.h:642
@ PM_SELF_NODE
SelfNode.
Definition ast.h:1008
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
Definition ast.h:819
@ PM_TRUE_NODE
TrueNode.
Definition ast.h:1041
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
Definition ast.h:633
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
Definition ast.h:687
@ PM_RANGE_NODE
RangeNode.
Definition ast.h:975
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
Definition ast.h:840
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
Definition ast.h:897
@ PM_SHAREABLE_CONSTANT_NODE
ShareableConstantNode.
Definition ast.h:1011
@ PM_NEXT_NODE
NextNode.
Definition ast.h:927
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
Definition ast.h:843
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
Definition ast.h:984
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
Definition ast.h:693
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
Definition ast.h:654
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
Definition ast.h:738
@ PM_HASH_PATTERN_NODE
HashPatternNode.
Definition ast.h:807
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
Definition ast.h:828
@ PM_UNDEF_NODE
UndefNode.
Definition ast.h:1044
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
Definition ast.h:615
@ PM_ENSURE_NODE
EnsureNode.
Definition ast.h:756
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
Definition ast.h:903
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
Definition ast.h:1014
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
Definition ast.h:879
@ PM_PARENTHESES_NODE
ParenthesesNode.
Definition ast.h:957
@ PM_FOR_NODE
ForNode.
Definition ast.h:774
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
Definition ast.h:702
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
Definition ast.h:966
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
Definition ast.h:708
@ PM_RETURN_NODE
ReturnNode.
Definition ast.h:1005
@ PM_MODULE_NODE
ModuleNode.
Definition ast.h:918
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
Definition ast.h:627
@ PM_SUPER_NODE
SuperNode.
Definition ast.h:1035
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
Definition ast.h:906
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
Definition ast.h:717
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
Definition ast.h:867
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
Definition ast.h:660
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
Definition ast.h:945
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
Definition ast.h:699
@ PM_CASE_MATCH_NODE
CaseMatchNode.
Definition ast.h:678
@ PM_BREAK_NODE
BreakNode.
Definition ast.h:657
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
Definition ast.h:669
@ PM_IMAGINARY_NODE
ImaginaryNode.
Definition ast.h:813
@ PM_DEF_NODE
DefNode.
Definition ast.h:741
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
Definition ast.h:732
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
Definition ast.h:801
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
Definition ast.h:1017
@ PM_BEGIN_NODE
BeginNode.
Definition ast.h:639
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
Definition ast.h:870
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
Definition ast.h:846
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
Definition ast.h:768
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
Definition ast.h:963
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
Definition ast.h:990
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
Definition ast.h:852
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
Definition ast.h:849
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
Definition ast.h:786
@ PM_CASE_NODE
CaseNode.
Definition ast.h:681
@ PM_RESCUE_NODE
RescueNode.
Definition ast.h:996
@ PM_FLOAT_NODE
FloatNode.
Definition ast.h:771
@ PM_ASSOC_NODE
AssocNode.
Definition ast.h:630
@ PM_IT_PARAMETERS_NODE
ItParametersNode.
Definition ast.h:876
@ PM_INTEGER_NODE
IntegerNode.
Definition ast.h:855
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
Definition ast.h:900
@ PM_STRING_NODE
StringNode.
Definition ast.h:1032
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
Definition ast.h:831
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
Definition ast.h:609
@ PM_PARAMETERS_NODE
ParametersNode.
Definition ast.h:954
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
Definition ast.h:942
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
Definition ast.h:723
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
Definition ast.h:792
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
Definition ast.h:711
@ PM_STATEMENTS_NODE
StatementsNode.
Definition ast.h:1029
@ PM_ERROR_RECOVERY_NODE
ErrorRecoveryNode.
Definition ast.h:759
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
Definition ast.h:948
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
Definition ast.h:960
@ PM_BLOCK_NODE
BlockNode.
Definition ast.h:648
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
Definition ast.h:690
@ PM_REST_PARAMETER_NODE
RestParameterNode.
Definition ast.h:999
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
Definition ast.h:750
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
Definition ast.h:861
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
Definition ast.h:834
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
Definition ast.h:882
@ PM_NO_BLOCK_PARAMETER_NODE
NoBlockParameterNode.
Definition ast.h:933
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:8171
@ PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8173
@ PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:8179
@ PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8176
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:8152
@ PM_STRING_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal
Definition ast.h:8160
@ PM_STRING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8157
@ PM_STRING_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal
Definition ast.h:8163
@ PM_STRING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8154
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:7950
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT
if the arguments contain a splat
Definition ast.h:7961
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING
if the arguments contain forwarding
Definition ast.h:7952
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS
if the arguments contain keywords
Definition ast.h:7955
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
if the arguments contain a keyword splat
Definition ast.h:7958
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS
if the arguments contain multiple splats
Definition ast.h:7964
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:7972
@ PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
if array contains splat nodes
Definition ast.h:7974
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:8014
@ PM_INTEGER_BASE_FLAGS_HEXADECIMAL
0x prefix
Definition ast.h:8025
@ PM_INTEGER_BASE_FLAGS_OCTAL
0o or 0 prefix
Definition ast.h:8022
@ PM_INTEGER_BASE_FLAGS_DECIMAL
0d or no prefix
Definition ast.h:8019
@ PM_INTEGER_BASE_FLAGS_BINARY
0b prefix
Definition ast.h:8016
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:8076
@ PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS
parentheses that contain multiple potentially void statements
Definition ast.h:8078
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:7982
@ PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
a call that ignores method visibility
Definition ast.h:7993
@ PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
&.
Definition ast.h:7984
@ PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
a call that is an attribute write, so the value being written should be returned
Definition ast.h:7990
@ PM_CALL_NODE_FLAGS_VARIABLE_CALL
a call that could have been a local variable
Definition ast.h:7987
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:8136
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING
constant writes that should be modified with shareable constant value experimental everything
Definition ast.h:8141
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL
constant writes that should be modified with shareable constant value literal
Definition ast.h:8138
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY
constant writes that should be modified with shareable constant value experimental copy
Definition ast.h:8144
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:1072
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:8046
@ 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:8048
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:8096
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8125
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:8128
@ PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
e - forces the EUC-JP encoding
Definition ast.h:8110
@ PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
i - ignores the case of characters when matching
Definition ast.h:8098
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8122
@ PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
n - forces the ASCII-8BIT encoding
Definition ast.h:8113
@ PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
m - allows $ to match the end of lines within strings
Definition ast.h:8104
@ PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
x - ignores whitespace and allows comments in regular expressions
Definition ast.h:8101
@ PM_REGULAR_EXPRESSION_FLAGS_ONCE
o - only interpolates values into the regular expression once
Definition ast.h:8107
@ PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
s - forces the Windows-31J encoding
Definition ast.h:8116
@ PM_REGULAR_EXPRESSION_FLAGS_UTF_8
u - forces the UTF-8 encoding
Definition ast.h:8119
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:1078
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:33
@ PM_TOKEN_STAR_STAR
**
Definition ast.h:485
@ PM_TOKEN_DOT_DOT_DOT
the ... range operator or forwarding parameter
Definition ast.h:173
@ PM_TOKEN_MINUS_EQUAL
-=
Definition ast.h:410
@ PM_TOKEN_IGNORED_NEWLINE
an ignored newline
Definition ast.h:242
@ PM_TOKEN_BANG_EQUAL
!=
Definition ast.h:113
@ PM_TOKEN_KEYWORD___FILE__
__FILE__
Definition ast.h:374
@ PM_TOKEN_KEYWORD_WHEN
when
Definition ast.h:71
@ PM_TOKEN_FLOAT
a floating point number
Definition ast.h:206
@ PM_TOKEN_PLUS_EQUAL
+=
Definition ast.h:461
@ PM_TOKEN_DOT_DOT
the .
Definition ast.h:170
@ PM_TOKEN_UDOT_DOT
unary .
Definition ast.h:512
@ PM_TOKEN_AMPERSAND_DOT
&.
Definition ast.h:98
@ PM_TOKEN_NEWLINE
a newline character outside of other tokens
Definition ast.h:74
@ PM_TOKEN_NUMBERED_REFERENCE
a numbered reference to a capture group in the previous regular expression match
Definition ast.h:416
@ PM_TOKEN_KEYWORD_DO_BLOCK
do keyword for a block attached to a command
Definition ast.h:287
@ PM_TOKEN_AMPERSAND
&
Definition ast.h:89
@ PM_TOKEN_KEYWORD_YIELD
yield
Definition ast.h:368
@ PM_TOKEN_KEYWORD_END
end
Definition ast.h:56
@ PM_TOKEN_LAMBDA_BEGIN
{
Definition ast.h:386
@ PM_TOKEN_KEYWORD_UNTIL_MODIFIER
until in the modifier form
Definition ast.h:359
@ PM_TOKEN_BRACE_LEFT_ARGUMENT
{ for a block following a parenthesized argument
Definition ast.h:122
@ PM_TOKEN_EQUAL_EQUAL_EQUAL
===
Definition ast.h:197
@ PM_TOKEN_INTEGER_RATIONAL
an integer with a rational suffix
Definition ast.h:254
@ PM_TOKEN_USTAR
unary *
Definition ast.h:527
@ PM_TOKEN_TILDE
~ or ~@
Definition ast.h:503
@ PM_TOKEN_KEYWORD___ENCODING__
__ENCODING__
Definition ast.h:371
@ PM_TOKEN_REGEXP_END
the end of a regular expression
Definition ast.h:470
@ PM_TOKEN_KEYWORD_UNTIL
until
Definition ast.h:356
@ PM_TOKEN_COMMA
,
Definition ast.h:41
@ PM_TOKEN_MAXIMUM
The maximum token value.
Definition ast.h:545
@ PM_TOKEN_GREATER
>
Definition ast.h:221
@ PM_TOKEN_INTEGER
an integer (any base)
Definition ast.h:248
@ PM_TOKEN_SLASH_EQUAL
/=
Definition ast.h:476
@ PM_TOKEN_UMINUS_NUM
-@ for a number
Definition ast.h:521
@ PM_TOKEN_EMBVAR
#
Definition ast.h:188
@ PM_TOKEN_KEYWORD_UNLESS_MODIFIER
unless in the modifier form
Definition ast.h:353
@ PM_TOKEN_INTEGER_RATIONAL_IMAGINARY
an integer with a rational and imaginary suffix
Definition ast.h:257
@ PM_TOKEN_FLOAT_RATIONAL_IMAGINARY
a floating pointer number with a rational and imaginary suffix
Definition ast.h:215
@ PM_TOKEN_BRACKET_LEFT_RIGHT
[]
Definition ast.h:134
@ PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL
&&=
Definition ast.h:95
@ PM_TOKEN_KEYWORD_CLASS
class
Definition ast.h:278
@ PM_TOKEN_KEYWORD_BEGIN
begin
Definition ast.h:266
@ PM_TOKEN_KEYWORD_DO_LAMBDA
do keyword that opens the body of a lambda literal
Definition ast.h:290
@ PM_TOKEN_USTAR_STAR
unary **
Definition ast.h:530
@ PM_TOKEN_GREATER_GREATER_EQUAL
>>=
Definition ast.h:230
@ PM_TOKEN_PERCENT_EQUAL
%=
Definition ast.h:431
@ PM_TOKEN_PERCENT
%
Definition ast.h:428
@ PM_TOKEN_KEYWORD_IN
in
Definition ast.h:62
@ PM_TOKEN_BANG
! or !@
Definition ast.h:110
@ PM_TOKEN_KEYWORD_NOT
not
Definition ast.h:320
@ PM_TOKEN_BRACKET_LEFT_ARRAY
[ for the beginning of an array
Definition ast.h:131
@ PM_TOKEN_HEREDOC_END
the end of a heredoc
Definition ast.h:233
@ PM_TOKEN_HEREDOC_START
the start of a heredoc
Definition ast.h:236
@ PM_TOKEN_KEYWORD_DEFINED
defined?
Definition ast.h:284
@ PM_TOKEN_UCOLON_COLON
unary ::
Definition ast.h:509
@ PM_TOKEN_LABEL_END
the end of a label
Definition ast.h:383
@ PM_TOKEN_EQUAL_GREATER
=>
Definition ast.h:200
@ PM_TOKEN_KEYWORD_UNLESS
unless
Definition ast.h:350
@ PM_TOKEN_KEYWORD_ENSURE
ensure
Definition ast.h:59
@ PM_TOKEN_AMPERSAND_EQUAL
&=
Definition ast.h:101
@ PM_TOKEN_EQUAL_EQUAL
==
Definition ast.h:194
@ PM_TOKEN_UPLUS
+@
Definition ast.h:524
@ PM_TOKEN_FLOAT_IMAGINARY
a floating pointer number with an imaginary suffix
Definition ast.h:209
@ PM_TOKEN_KEYWORD_BEGIN_UPCASE
BEGIN.
Definition ast.h:269
@ PM_TOKEN_LESS_EQUAL_GREATER
<=>
Definition ast.h:395
@ PM_TOKEN_KEYWORD_RESCUE_MODIFIER
rescue in the modifier form
Definition ast.h:329
@ PM_TOKEN_MINUS_GREATER
->
Definition ast.h:413
@ PM_TOKEN_KEYWORD_FALSE
false
Definition ast.h:299
@ PM_TOKEN_PIPE_PIPE_EQUAL
||=
Definition ast.h:455
@ PM_TOKEN_KEYWORD_IF
if
Definition ast.h:305
@ PM_TOKEN_EMBEXPR_BEGIN
#{
Definition ast.h:185
@ PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES
( for a parentheses node
Definition ast.h:425
@ PM_TOKEN_EMBDOC_END
=end
Definition ast.h:179
@ PM_TOKEN_KEYWORD_ELSE
else
Definition ast.h:50
@ PM_TOKEN_BACK_REFERENCE
a back reference
Definition ast.h:107
@ PM_TOKEN_BRACKET_LEFT
[
Definition ast.h:128
@ PM_TOKEN_EOF
final token in the file
Definition ast.h:35
@ PM_TOKEN_PIPE_PIPE
||
Definition ast.h:452
@ PM_TOKEN_KEYWORD_NIL
nil
Definition ast.h:317
@ PM_TOKEN_PERCENT_UPPER_W
%W
Definition ast.h:446
@ PM_TOKEN_KEYWORD_RETURN
return
Definition ast.h:335
@ PM_TOKEN_CLASS_VARIABLE
a class variable
Definition ast.h:152
@ PM_TOKEN_PIPE
|
Definition ast.h:83
@ PM_TOKEN_PARENTHESIS_LEFT
(
Definition ast.h:419
@ PM_TOKEN_BANG_TILDE
!~
Definition ast.h:116
@ PM_TOKEN_DOT
the .
Definition ast.h:167
@ PM_TOKEN_PARENTHESIS_RIGHT
)
Definition ast.h:80
@ PM_TOKEN_KEYWORD_RESCUE
rescue
Definition ast.h:65
@ PM_TOKEN_INSTANCE_VARIABLE
an instance variable
Definition ast.h:245
@ PM_TOKEN_PIPE_EQUAL
|=
Definition ast.h:449
@ PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL
[]=
Definition ast.h:137
@ PM_TOKEN_UAMPERSAND
unary &
Definition ast.h:506
@ PM_TOKEN_MINUS
-
Definition ast.h:407
@ PM_TOKEN_CONSTANT
a constant
Definition ast.h:164
@ PM_TOKEN_IDENTIFIER
an identifier
Definition ast.h:239
@ PM_TOKEN_EMBDOC_BEGIN
=begin
Definition ast.h:176
@ PM_TOKEN_STAR_EQUAL
*=
Definition ast.h:482
@ PM_TOKEN_KEYWORD_OR
or
Definition ast.h:323
@ PM_TOKEN_KEYWORD_AND
and
Definition ast.h:263
@ PM_TOKEN_LESS
<
Definition ast.h:389
@ PM_TOKEN_KEYWORD_BREAK
break
Definition ast.h:272
@ PM_TOKEN_PERCENT_LOWER_W
%w
Definition ast.h:437
@ PM_TOKEN_SYMBOL_BEGIN
the beginning of a symbol
Definition ast.h:500
@ PM_TOKEN_METHOD_NAME
a method name
Definition ast.h:404
@ PM_TOKEN_KEYWORD_CASE
case
Definition ast.h:275
@ PM_TOKEN_WORDS_SEP
a separator between words in a list
Definition ast.h:533
@ PM_TOKEN_FLOAT_RATIONAL
a floating pointer number with a rational suffix
Definition ast.h:212
@ PM_TOKEN_LESS_LESS_EQUAL
<<=
Definition ast.h:401
@ PM_TOKEN_EMBDOC_LINE
a line inside of embedded documentation
Definition ast.h:182
@ PM_TOKEN_KEYWORD_SUPER
super
Definition ast.h:341
@ PM_TOKEN_KEYWORD_DO
do
Definition ast.h:47
@ PM_TOKEN_KEYWORD_REDO
redo
Definition ast.h:326
@ PM_TOKEN_EQUAL_TILDE
=~
Definition ast.h:203
@ PM_TOKEN_EMBEXPR_END
}
Definition ast.h:44
@ PM_TOKEN_KEYWORD_END_UPCASE
END.
Definition ast.h:296
@ PM_TOKEN_KEYWORD___LINE__
__LINE__
Definition ast.h:377
@ PM_TOKEN_BRACE_LEFT_HASH
{ for a hash literal
Definition ast.h:125
@ PM_TOKEN_STRING_END
the end of a string
Definition ast.h:497
@ PM_TOKEN_WORDS_SEP_IMPLICIT
a separator between words in a list that has no source characters
Definition ast.h:536
@ PM_TOKEN_STRING_CONTENT
the contents of a string
Definition ast.h:494
@ PM_TOKEN_BRACE_LEFT
{
Definition ast.h:119
@ PM_TOKEN_COLON_COLON
::
Definition ast.h:158
@ PM_TOKEN_GREATER_GREATER
>>
Definition ast.h:227
@ PM_TOKEN_PERCENT_LOWER_X
%x
Definition ast.h:440
@ PM_TOKEN_PARENTHESIS_LEFT_GROUPING
( scanned at the beginning of an expression
Definition ast.h:422
@ PM_TOKEN_KEYWORD_SELF
self
Definition ast.h:338
@ PM_TOKEN_PERCENT_LOWER_I
%i
Definition ast.h:434
@ PM_TOKEN_NEWLINE_TERMINATOR
a newline that terminates a construct where a newline is otherwise insignificant
Definition ast.h:77
@ PM_TOKEN_KEYWORD_ALIAS
alias
Definition ast.h:260
@ PM_TOKEN_GLOBAL_VARIABLE
a global variable
Definition ast.h:218
@ PM_TOKEN_KEYWORD_IF_MODIFIER
if in the modifier form
Definition ast.h:308
@ PM_TOKEN_SLASH
/
Definition ast.h:473
@ PM_TOKEN_KEYWORD_RETRY
retry
Definition ast.h:332
@ PM_TOKEN_COLON
:
Definition ast.h:155
@ PM_TOKEN_KEYWORD_UNDEF
undef
Definition ast.h:347
@ PM_TOKEN_BRACKET_RIGHT
]
Definition ast.h:140
@ PM_TOKEN_KEYWORD_FOR
for
Definition ast.h:302
@ PM_TOKEN_KEYWORD_THEN
then
Definition ast.h:68
@ PM_TOKEN_QUESTION_MARK
?
Definition ast.h:464
@ PM_TOKEN___END__
marker for the point in the file at which the parser should stop
Definition ast.h:542
@ PM_TOKEN_KEYWORD_WHILE
while
Definition ast.h:362
@ PM_TOKEN_EQUAL
=
Definition ast.h:191
@ PM_TOKEN_KEYWORD_DEF
def
Definition ast.h:281
@ PM_TOKEN_UDOT_DOT_DOT
unary ... operator
Definition ast.h:515
@ PM_TOKEN_STAR
Definition ast.h:479
@ PM_TOKEN_KEYWORD_WHILE_MODIFIER
while in the modifier form
Definition ast.h:365
@ PM_TOKEN_KEYWORD_TRUE
true
Definition ast.h:344
@ PM_TOKEN_BRACE_RIGHT
}
Definition ast.h:38
@ PM_TOKEN_SEMICOLON
;
Definition ast.h:86
@ PM_TOKEN_REGEXP_BEGIN
the beginning of a regular expression
Definition ast.h:467
@ PM_TOKEN_CARET
^
Definition ast.h:143
@ PM_TOKEN_PERCENT_UPPER_I
%I
Definition ast.h:443
@ PM_TOKEN_KEYWORD_DO_LOOP
do keyword for a predicate in a while, until, or for loop
Definition ast.h:293
@ PM_TOKEN_KEYWORD_MODULE
module
Definition ast.h:311
@ PM_TOKEN_PLUS
+
Definition ast.h:458
@ PM_TOKEN_KEYWORD_NEXT
next
Definition ast.h:314
@ PM_TOKEN_BACKTICK
` as a method name
Definition ast.h:104
@ PM_TOKEN_INTEGER_IMAGINARY
an integer with an imaginary suffix
Definition ast.h:251
@ PM_TOKEN_LABEL
a label
Definition ast.h:380
@ PM_TOKEN_STAR_STAR_EQUAL
**=
Definition ast.h:488
@ PM_TOKEN_CHARACTER_LITERAL
a character literal
Definition ast.h:149
@ PM_TOKEN_XSTRING_BEGIN
the beginning of an execution string
Definition ast.h:539
@ PM_TOKEN_AMPERSAND_AMPERSAND
&&
Definition ast.h:92
@ PM_TOKEN_UMINUS
-@
Definition ast.h:518
@ PM_TOKEN_LESS_LESS
<<
Definition ast.h:398
@ PM_TOKEN_GREATER_EQUAL
>=
Definition ast.h:224
@ PM_TOKEN_COMMENT
a comment
Definition ast.h:161
@ PM_TOKEN_CARET_EQUAL
^=
Definition ast.h:146
@ PM_TOKEN_KEYWORD_ELSIF
elsif
Definition ast.h:53
@ PM_TOKEN_STRING_BEGIN
the beginning of a string
Definition ast.h:491
@ PM_TOKEN_LESS_EQUAL
<=
Definition ast.h:392
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:8066
@ PM_PARAMETER_FLAGS_REPEATED_PARAMETER
a parameter name that has been repeated in the method signature
Definition ast.h:8068
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:8001
@ PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8006
@ PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8003
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:8056
@ PM_LOOP_FLAGS_BEGIN_MODIFIER
a loop after a begin statement, so the body is executed first before the condition
Definition ast.h:8058
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:25
This module provides functions for working with arbitrary-sized integers.
A generic string type that can have various ownership semantics.
AliasGlobalVariableNode.
Definition ast.h:1164
PM_NODE_ALIGNAS struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1176
pm_node_t base
The embedded base node.
Definition ast.h:1166
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1196
PM_NODE_ALIGNAS struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1186
AliasMethodNode.
Definition ast.h:1211
PM_NODE_ALIGNAS struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1245
pm_node_t base
The embedded base node.
Definition ast.h:1213
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1255
PM_NODE_ALIGNAS struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1229
AlternationPatternNode.
Definition ast.h:1270
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1302
PM_NODE_ALIGNAS struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1282
pm_node_t base
The embedded base node.
Definition ast.h:1272
PM_NODE_ALIGNAS struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1292
AndNode.
Definition ast.h:1317
PM_NODE_ALIGNAS struct pm_node * left
AndNode::left.
Definition ast.h:1332
PM_NODE_ALIGNAS struct pm_node * right
AndNode::right.
Definition ast.h:1345
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1355
pm_node_t base
The embedded base node.
Definition ast.h:1319
ArgumentsNode.
Definition ast.h:1377
pm_node_t base
The embedded base node.
Definition ast.h:1379
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1389
ArrayNode.
Definition ast.h:1407
pm_node_t base
The embedded base node.
Definition ast.h:1409
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1440
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1416
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1428
ArrayPatternNode.
Definition ast.h:1467
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1495
PM_NODE_ALIGNAS struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1505
PM_NODE_ALIGNAS struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1485
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1525
pm_node_t base
The embedded base node.
Definition ast.h:1469
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1535
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1515
AssocNode.
Definition ast.h:1550
pm_node_t base
The embedded base node.
Definition ast.h:1552
PM_NODE_ALIGNAS struct pm_node * value
AssocNode::value.
Definition ast.h:1581
PM_NODE_ALIGNAS struct pm_node * key
AssocNode::key.
Definition ast.h:1568
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1591
AssocSplatNode.
Definition ast.h:1606
pm_node_t base
The embedded base node.
Definition ast.h:1608
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1628
PM_NODE_ALIGNAS struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1618
BackReferenceReadNode.
Definition ast.h:1643
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1656
pm_node_t base
The embedded base node.
Definition ast.h:1645
BeginNode.
Definition ast.h:1673
PM_NODE_ALIGNAS struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1715
PM_NODE_ALIGNAS struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1725
PM_NODE_ALIGNAS struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1695
PM_NODE_ALIGNAS struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1705
pm_node_t base
The embedded base node.
Definition ast.h:1675
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1735
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1685
BlockArgumentNode.
Definition ast.h:1750
PM_NODE_ALIGNAS struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1762
pm_node_t base
The embedded base node.
Definition ast.h:1752
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1772
BlockLocalVariableNode.
Definition ast.h:1790
pm_node_t base
The embedded base node.
Definition ast.h:1792
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1802
BlockNode.
Definition ast.h:1817
pm_node_t base
The embedded base node.
Definition ast.h:1819
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1873
PM_NODE_ALIGNAS struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1843
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1863
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1829
PM_NODE_ALIGNAS struct pm_node * body
BlockNode::body.
Definition ast.h:1853
BlockParameterNode.
Definition ast.h:1892
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1926
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1915
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1905
pm_node_t base
The embedded base node.
Definition ast.h:1894
BlockParametersNode.
Definition ast.h:1945
pm_node_t base
The embedded base node.
Definition ast.h:1947
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1975
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1961
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:2003
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1989
BreakNode.
Definition ast.h:2018
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2040
pm_node_t base
The embedded base node.
Definition ast.h:2020
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:2030
CallAndWriteNode.
Definition ast.h:2061
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2123
PM_NODE_ALIGNAS struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2073
pm_node_t base
The embedded base node.
Definition ast.h:2063
PM_NODE_ALIGNAS struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2133
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2083
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2093
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2103
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2113
CallNode.
Definition ast.h:2169
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2230
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2250
pm_constant_id_t name
CallNode::name.
Definition ast.h:2210
pm_node_t base
The embedded base node.
Definition ast.h:2171
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2240
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2263
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2200
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2220
PM_NODE_ALIGNAS struct pm_node * block
CallNode::block.
Definition ast.h:2273
PM_NODE_ALIGNAS struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2187
CallOperatorWriteNode.
Definition ast.h:2294
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2336
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2356
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2366
pm_node_t base
The embedded base node.
Definition ast.h:2296
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2346
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2326
PM_NODE_ALIGNAS struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2306
PM_NODE_ALIGNAS struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2376
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2316
CallOrWriteNode.
Definition ast.h:2397
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2459
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2419
PM_NODE_ALIGNAS struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2409
pm_node_t base
The embedded base node.
Definition ast.h:2399
PM_NODE_ALIGNAS struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2469
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2449
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2439
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2429
CallTargetNode.
Definition ast.h:2498
pm_node_t base
The embedded base node.
Definition ast.h:2500
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2530
PM_NODE_ALIGNAS struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2510
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2520
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2540
CapturePatternNode.
Definition ast.h:2555
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2587
pm_node_t base
The embedded base node.
Definition ast.h:2557
PM_NODE_ALIGNAS struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2567
PM_NODE_ALIGNAS struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2577
CaseMatchNode.
Definition ast.h:2604
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2656
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2626
pm_node_t base
The embedded base node.
Definition ast.h:2606
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2646
PM_NODE_ALIGNAS struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2616
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2636
CaseNode.
Definition ast.h:2673
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2705
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2695
PM_NODE_ALIGNAS struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2685
pm_node_t base
The embedded base node.
Definition ast.h:2675
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2715
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2725
ClassNode.
Definition ast.h:2740
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2757
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2802
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2747
PM_NODE_ALIGNAS struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2782
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2772
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2811
pm_node_t base
The embedded base node.
Definition ast.h:2742
PM_NODE_ALIGNAS struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2762
PM_NODE_ALIGNAS struct pm_node * body
ClassNode::body.
Definition ast.h:2792
ClassVariableAndWriteNode.
Definition ast.h:2826
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2868
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2838
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2858
pm_node_t base
The embedded base node.
Definition ast.h:2828
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2848
ClassVariableOperatorWriteNode.
Definition ast.h:2883
pm_node_t base
The embedded base node.
Definition ast.h:2885
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2890
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2905
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2895
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2910
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2900
ClassVariableOrWriteNode.
Definition ast.h:2925
pm_node_t base
The embedded base node.
Definition ast.h:2927
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2947
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2937
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2942
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2932
ClassVariableReadNode.
Definition ast.h:2962
pm_node_t base
The embedded base node.
Definition ast.h:2964
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2975
ClassVariableTargetNode.
Definition ast.h:2990
pm_node_t base
The embedded base node.
Definition ast.h:2992
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2997
ClassVariableWriteNode.
Definition ast.h:3012
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:3035
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3048
pm_node_t base
The embedded base node.
Definition ast.h:3014
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3058
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:3025
ConstantAndWriteNode.
Definition ast.h:3073
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3090
PM_NODE_ALIGNAS struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3095
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3085
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3080
pm_node_t base
The embedded base node.
Definition ast.h:3075
A list of constant IDs.
Definition constant_pool.h:30
ConstantOperatorWriteNode.
Definition ast.h:3110
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3117
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3122
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3137
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3127
PM_NODE_ALIGNAS struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3132
pm_node_t base
The embedded base node.
Definition ast.h:3112
ConstantOrWriteNode.
Definition ast.h:3152
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3169
PM_NODE_ALIGNAS struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3174
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3164
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3159
pm_node_t base
The embedded base node.
Definition ast.h:3154
ConstantPathAndWriteNode.
Definition ast.h:3189
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3196
pm_node_t base
The embedded base node.
Definition ast.h:3191
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3206
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3201
ConstantPathNode.
Definition ast.h:3221
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3259
pm_node_t base
The embedded base node.
Definition ast.h:3223
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3239
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3272
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3246
ConstantPathOperatorWriteNode.
Definition ast.h:3287
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3294
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3309
pm_node_t base
The embedded base node.
Definition ast.h:3289
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3299
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3304
ConstantPathOrWriteNode.
Definition ast.h:3324
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3336
pm_node_t base
The embedded base node.
Definition ast.h:3326
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3341
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3331
ConstantPathTargetNode.
Definition ast.h:3356
pm_node_t base
The embedded base node.
Definition ast.h:3358
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3373
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3368
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3363
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3378
ConstantPathWriteNode.
Definition ast.h:3399
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3434
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3424
pm_node_t base
The embedded base node.
Definition ast.h:3401
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3414
ConstantReadNode.
Definition ast.h:3449
pm_node_t base
The embedded base node.
Definition ast.h:3451
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3462
ConstantTargetNode.
Definition ast.h:3477
pm_node_t base
The embedded base node.
Definition ast.h:3479
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3484
ConstantWriteNode.
Definition ast.h:3499
pm_node_t base
The embedded base node.
Definition ast.h:3501
PM_NODE_ALIGNAS struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3535
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3512
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3522
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3545
DefNode.
Definition ast.h:3561
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3623
pm_constant_id_t name
DefNode::name.
Definition ast.h:3568
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3573
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3613
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3583
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3618
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3598
pm_node_t base
The embedded base node.
Definition ast.h:3563
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3608
PM_NODE_ALIGNAS struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3578
PM_NODE_ALIGNAS struct pm_node * body
DefNode::body.
Definition ast.h:3588
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3603
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3593
DefinedNode.
Definition ast.h:3638
PM_NODE_ALIGNAS struct pm_node * value
DefinedNode::value.
Definition ast.h:3650
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3645
pm_node_t base
The embedded base node.
Definition ast.h:3640
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3655
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3660
ElseNode.
Definition ast.h:3675
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3682
pm_node_t base
The embedded base node.
Definition ast.h:3677
PM_NODE_ALIGNAS struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3687
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3692
EmbeddedStatementsNode.
Definition ast.h:3707
PM_NODE_ALIGNAS struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3719
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3724
pm_node_t base
The embedded base node.
Definition ast.h:3709
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3714
EmbeddedVariableNode.
Definition ast.h:3739
PM_NODE_ALIGNAS struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3751
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3746
pm_node_t base
The embedded base node.
Definition ast.h:3741
EnsureNode.
Definition ast.h:3770
PM_NODE_ALIGNAS struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3782
pm_node_t base
The embedded base node.
Definition ast.h:3772
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3777
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3787
ErrorRecoveryNode.
Definition ast.h:3799
PM_NODE_ALIGNAS struct pm_node * unexpected
ErrorRecoveryNode::unexpected.
Definition ast.h:3808
pm_node_t base
The embedded base node.
Definition ast.h:3801
FalseNode.
Definition ast.h:3823
pm_node_t base
The embedded base node.
Definition ast.h:3825
FindPatternNode.
Definition ast.h:3849
PM_NODE_ALIGNAS struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3874
PM_NODE_ALIGNAS struct pm_splat_node * right
FindPatternNode::right.
Definition ast.h:3900
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3913
pm_node_t base
The embedded base node.
Definition ast.h:3851
PM_NODE_ALIGNAS struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3861
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3887
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3926
FlipFlopNode.
Definition ast.h:3944
PM_NODE_ALIGNAS struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3951
pm_node_t base
The embedded base node.
Definition ast.h:3946
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3961
PM_NODE_ALIGNAS struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3956
FloatNode.
Definition ast.h:3976
double value
FloatNode::value.
Definition ast.h:3985
pm_node_t base
The embedded base node.
Definition ast.h:3978
ForNode.
Definition ast.h:4000
PM_NODE_ALIGNAS struct pm_node * index
ForNode::index.
Definition ast.h:4012
PM_NODE_ALIGNAS struct pm_node * collection
ForNode::collection.
Definition ast.h:4022
pm_node_t base
The embedded base node.
Definition ast.h:4002
PM_NODE_ALIGNAS struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:4034
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4074
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4044
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4064
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4054
ForwardingArgumentsNode.
Definition ast.h:4091
pm_node_t base
The embedded base node.
Definition ast.h:4093
ForwardingParameterNode.
Definition ast.h:4109
pm_node_t base
The embedded base node.
Definition ast.h:4111
ForwardingSuperNode.
Definition ast.h:4131
pm_node_t base
The embedded base node.
Definition ast.h:4133
PM_NODE_ALIGNAS struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4151
pm_location_t keyword_loc
ForwardingSuperNode::keyword_loc.
Definition ast.h:4144
GlobalVariableAndWriteNode.
Definition ast.h:4166
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4183
pm_node_t base
The embedded base node.
Definition ast.h:4168
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4188
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4178
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4173
GlobalVariableOperatorWriteNode.
Definition ast.h:4203
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4225
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4210
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4230
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4215
pm_node_t base
The embedded base node.
Definition ast.h:4205
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4220
GlobalVariableOrWriteNode.
Definition ast.h:4245
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4252
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4257
pm_node_t base
The embedded base node.
Definition ast.h:4247
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4262
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4267
GlobalVariableReadNode.
Definition ast.h:4282
pm_node_t base
The embedded base node.
Definition ast.h:4284
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4295
GlobalVariableTargetNode.
Definition ast.h:4310
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4317
pm_node_t base
The embedded base node.
Definition ast.h:4312
GlobalVariableWriteNode.
Definition ast.h:4332
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4355
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4378
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4345
pm_node_t base
The embedded base node.
Definition ast.h:4334
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4368
HashNode.
Definition ast.h:4393
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4418
pm_node_t base
The embedded base node.
Definition ast.h:4395
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4428
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4405
HashPatternNode.
Definition ast.h:4452
PM_NODE_ALIGNAS struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4467
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4477
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4506
pm_node_t base
The embedded base node.
Definition ast.h:4454
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4519
PM_NODE_ALIGNAS struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4493
IfNode.
Definition ast.h:4540
PM_NODE_ALIGNAS struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4572
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4630
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4554
PM_NODE_ALIGNAS struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4599
pm_node_t base
The embedded base node.
Definition ast.h:4542
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4585
PM_NODE_ALIGNAS struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4618
ImaginaryNode.
Definition ast.h:4645
pm_node_t base
The embedded base node.
Definition ast.h:4647
PM_NODE_ALIGNAS struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4652
ImplicitNode.
Definition ast.h:4673
pm_node_t base
The embedded base node.
Definition ast.h:4675
PM_NODE_ALIGNAS struct pm_node * value
ImplicitNode::value.
Definition ast.h:4680
ImplicitRestNode.
Definition ast.h:4704
pm_node_t base
The embedded base node.
Definition ast.h:4706
InNode.
Definition ast.h:4721
pm_location_t in_keyword_loc
InNode::in_keyword_loc.
Definition ast.h:4738
PM_NODE_ALIGNAS struct pm_node * pattern
InNode::pattern.
Definition ast.h:4728
PM_NODE_ALIGNAS struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4733
pm_location_t then_keyword_loc
InNode::then_keyword_loc.
Definition ast.h:4743
pm_node_t base
The embedded base node.
Definition ast.h:4723
IndexAndWriteNode.
Definition ast.h:4764
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4786
pm_node_t base
The embedded base node.
Definition ast.h:4766
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4801
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4791
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4781
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4776
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4796
PM_NODE_ALIGNAS struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4771
PM_NODE_ALIGNAS struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4806
IndexOperatorWriteNode.
Definition ast.h:4827
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4859
pm_node_t base
The embedded base node.
Definition ast.h:4829
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4834
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4869
PM_NODE_ALIGNAS struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4874
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4844
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4849
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4839
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4854
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4864
IndexOrWriteNode.
Definition ast.h:4895
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4922
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4907
pm_node_t base
The embedded base node.
Definition ast.h:4897
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4932
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4912
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4917
PM_NODE_ALIGNAS struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4937
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4902
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4927
IndexTargetNode.
Definition ast.h:4966
pm_node_t base
The embedded base node.
Definition ast.h:4968
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4983
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4988
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4993
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4978
PM_NODE_ALIGNAS struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4973
InstanceVariableAndWriteNode.
Definition ast.h:5008
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:5030
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:5025
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:5020
pm_node_t base
The embedded base node.
Definition ast.h:5010
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:5015
InstanceVariableOperatorWriteNode.
Definition ast.h:5045
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5072
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5067
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5062
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5052
pm_node_t base
The embedded base node.
Definition ast.h:5047
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5057
InstanceVariableOrWriteNode.
Definition ast.h:5087
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5104
pm_node_t base
The embedded base node.
Definition ast.h:5089
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5099
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5094
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5109
InstanceVariableReadNode.
Definition ast.h:5124
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5137
pm_node_t base
The embedded base node.
Definition ast.h:5126
InstanceVariableTargetNode.
Definition ast.h:5152
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5159
pm_node_t base
The embedded base node.
Definition ast.h:5154
InstanceVariableWriteNode.
Definition ast.h:5174
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5220
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5210
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5187
pm_node_t base
The embedded base node.
Definition ast.h:5176
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5197
IntegerNode.
Definition ast.h:5241
pm_integer_t value
IntegerNode::value.
Definition ast.h:5250
pm_node_t base
The embedded base node.
Definition ast.h:5243
A structure represents an arbitrary-sized integer.
Definition integer.h:16
InterpolatedMatchLastLineNode.
Definition ast.h:5278
pm_node_t base
The embedded base node.
Definition ast.h:5280
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5295
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5290
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5285
InterpolatedRegularExpressionNode.
Definition ast.h:5323
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5330
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5335
pm_node_t base
The embedded base node.
Definition ast.h:5325
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5340
InterpolatedStringNode.
Definition ast.h:5359
pm_node_t base
The embedded base node.
Definition ast.h:5361
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5376
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5366
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5371
InterpolatedSymbolNode.
Definition ast.h:5391
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5403
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5408
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5398
pm_node_t base
The embedded base node.
Definition ast.h:5393
InterpolatedXStringNode.
Definition ast.h:5423
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5430
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5440
pm_node_t base
The embedded base node.
Definition ast.h:5425
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5435
ItLocalVariableReadNode.
Definition ast.h:5455
pm_node_t base
The embedded base node.
Definition ast.h:5457
ItParametersNode.
Definition ast.h:5472
pm_node_t base
The embedded base node.
Definition ast.h:5474
KeywordHashNode.
Definition ast.h:5492
pm_node_t base
The embedded base node.
Definition ast.h:5494
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5499
KeywordRestParameterNode.
Definition ast.h:5518
pm_node_t base
The embedded base node.
Definition ast.h:5520
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5525
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5535
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5530
LambdaNode.
Definition ast.h:5550
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5572
pm_node_t base
The embedded base node.
Definition ast.h:5552
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5567
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5562
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5557
PM_NODE_ALIGNAS struct pm_node * body
LambdaNode::body.
Definition ast.h:5582
PM_NODE_ALIGNAS struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5577
LocalVariableAndWriteNode.
Definition ast.h:5597
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5619
pm_node_t base
The embedded base node.
Definition ast.h:5599
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5624
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5609
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5614
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5604
LocalVariableOperatorWriteNode.
Definition ast.h:5639
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5671
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5666
pm_node_t base
The embedded base node.
Definition ast.h:5641
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5646
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5651
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5656
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5661
LocalVariableOrWriteNode.
Definition ast.h:5686
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5703
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5713
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5698
pm_node_t base
The embedded base node.
Definition ast.h:5688
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5708
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5693
LocalVariableReadNode.
Definition ast.h:5728
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5758
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5745
pm_node_t base
The embedded base node.
Definition ast.h:5730
LocalVariableTargetNode.
Definition ast.h:5776
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5788
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5783
pm_node_t base
The embedded base node.
Definition ast.h:5778
LocalVariableWriteNode.
Definition ast.h:5803
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5856
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5866
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5839
pm_node_t base
The embedded base node.
Definition ast.h:5805
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5829
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5816
This struct represents a slice in the source code, defined by an offset and a length.
Definition ast.h:580
uint32_t start
The offset of the location from the start of the source.
Definition ast.h:582
uint32_t length
The length of the location.
Definition ast.h:585
MatchLastLineNode.
Definition ast.h:5894
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5906
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5901
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5911
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5916
pm_node_t base
The embedded base node.
Definition ast.h:5896
MatchPredicateNode.
Definition ast.h:5931
pm_location_t keyword_loc
MatchPredicateNode::keyword_loc.
Definition ast.h:5948
PM_NODE_ALIGNAS struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5943
PM_NODE_ALIGNAS struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5938
pm_node_t base
The embedded base node.
Definition ast.h:5933
MatchRequiredNode.
Definition ast.h:5963
pm_node_t base
The embedded base node.
Definition ast.h:5965
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6034
PM_NODE_ALIGNAS struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:6024
PM_NODE_ALIGNAS struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5975
MatchWriteNode.
Definition ast.h:6049
pm_node_t base
The embedded base node.
Definition ast.h:6051
PM_NODE_ALIGNAS struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6056
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6061
ModuleNode.
Definition ast.h:6076
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6103
PM_NODE_ALIGNAS struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6093
PM_NODE_ALIGNAS struct pm_node * body
ModuleNode::body.
Definition ast.h:6098
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6083
pm_node_t base
The embedded base node.
Definition ast.h:6078
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6088
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6108
MultiTargetNode.
Definition ast.h:6128
PM_NODE_ALIGNAS struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6165
pm_node_t base
The embedded base node.
Definition ast.h:6130
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6185
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6145
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6195
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6175
MultiWriteNode.
Definition ast.h:6210
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6277
PM_NODE_ALIGNAS struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6247
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6257
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6287
PM_NODE_ALIGNAS struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6297
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6267
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6227
pm_node_t base
The embedded base node.
Definition ast.h:6212
NextNode.
Definition ast.h:6312
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6319
pm_node_t base
The embedded base node.
Definition ast.h:6314
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6324
NilNode.
Definition ast.h:6339
pm_node_t base
The embedded base node.
Definition ast.h:6341
NoBlockParameterNode.
Definition ast.h:6357
pm_location_t keyword_loc
NoBlockParameterNode::keyword_loc.
Definition ast.h:6369
pm_node_t base
The embedded base node.
Definition ast.h:6359
pm_location_t operator_loc
NoBlockParameterNode::operator_loc.
Definition ast.h:6364
NoKeywordsParameterNode.
Definition ast.h:6385
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6397
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6392
pm_node_t base
The embedded base node.
Definition ast.h:6387
A list of nodes in the source, most often used for lists of children.
Definition ast.h:593
size_t size
The number of nodes in the list.
Definition ast.h:595
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:601
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:598
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1091
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1096
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1108
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1102
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1114
NumberedParametersNode.
Definition ast.h:6412
pm_node_t base
The embedded base node.
Definition ast.h:6414
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6419
NumberedReferenceReadNode.
Definition ast.h:6434
pm_node_t base
The embedded base node.
Definition ast.h:6436
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6449
OptionalKeywordParameterNode.
Definition ast.h:6468
pm_node_t base
The embedded base node.
Definition ast.h:6470
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6475
PM_NODE_ALIGNAS struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6485
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6480
OptionalParameterNode.
Definition ast.h:6504
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6516
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6511
pm_node_t base
The embedded base node.
Definition ast.h:6506
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6521
PM_NODE_ALIGNAS struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6526
OrNode.
Definition ast.h:6541
PM_NODE_ALIGNAS struct pm_node * right
OrNode::right.
Definition ast.h:6569
pm_node_t base
The embedded base node.
Definition ast.h:6543
PM_NODE_ALIGNAS struct pm_node * left
OrNode::left.
Definition ast.h:6556
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6579
ParametersNode.
Definition ast.h:6595
PM_NODE_ALIGNAS struct pm_node * block
ParametersNode::block.
Definition ast.h:6632
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6602
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6607
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6617
pm_node_t base
The embedded base node.
Definition ast.h:6597
PM_NODE_ALIGNAS struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6612
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6622
PM_NODE_ALIGNAS struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6627
ParenthesesNode.
Definition ast.h:6650
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6667
pm_node_t base
The embedded base node.
Definition ast.h:6652
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6662
PM_NODE_ALIGNAS struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6657
PinnedExpressionNode.
Definition ast.h:6682
pm_node_t base
The embedded base node.
Definition ast.h:6684
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6724
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6714
PM_NODE_ALIGNAS struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6694
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6704
PinnedVariableNode.
Definition ast.h:6739
pm_node_t base
The embedded base node.
Definition ast.h:6741
PM_NODE_ALIGNAS struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6751
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6761
PostExecutionNode.
Definition ast.h:6776
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6798
pm_node_t base
The embedded base node.
Definition ast.h:6778
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6793
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6788
PM_NODE_ALIGNAS struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6783
PreExecutionNode.
Definition ast.h:6813
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6835
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6830
PM_NODE_ALIGNAS struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6820
pm_node_t base
The embedded base node.
Definition ast.h:6815
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6825
ProgramNode.
Definition ast.h:6847
pm_node_t base
The embedded base node.
Definition ast.h:6849
PM_NODE_ALIGNAS struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6859
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6854
RangeNode.
Definition ast.h:6880
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6916
pm_node_t base
The embedded base node.
Definition ast.h:6882
PM_NODE_ALIGNAS struct pm_node * right
RangeNode::right.
Definition ast.h:6909
PM_NODE_ALIGNAS struct pm_node * left
RangeNode::left.
Definition ast.h:6895
RationalNode.
Definition ast.h:6937
pm_node_t base
The embedded base node.
Definition ast.h:6939
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6957
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6948
RedoNode.
Definition ast.h:6972
pm_node_t base
The embedded base node.
Definition ast.h:6974
RegularExpressionNode.
Definition ast.h:7002
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:7019
pm_node_t base
The embedded base node.
Definition ast.h:7004
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:7024
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:7009
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:7014
RequiredKeywordParameterNode.
Definition ast.h:7043
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7055
pm_node_t base
The embedded base node.
Definition ast.h:7045
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7050
RequiredParameterNode.
Definition ast.h:7074
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7081
pm_node_t base
The embedded base node.
Definition ast.h:7076
RescueModifierNode.
Definition ast.h:7096
PM_NODE_ALIGNAS struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7103
pm_node_t base
The embedded base node.
Definition ast.h:7098
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7108
PM_NODE_ALIGNAS struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7113
RescueNode.
Definition ast.h:7133
PM_NODE_ALIGNAS struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7165
PM_NODE_ALIGNAS struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7170
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7140
PM_NODE_ALIGNAS struct pm_node * reference
RescueNode::reference.
Definition ast.h:7155
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7160
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7150
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7145
pm_node_t base
The embedded base node.
Definition ast.h:7135
RestParameterNode.
Definition ast.h:7189
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7196
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7201
pm_node_t base
The embedded base node.
Definition ast.h:7191
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7206
RetryNode.
Definition ast.h:7221
pm_node_t base
The embedded base node.
Definition ast.h:7223
ReturnNode.
Definition ast.h:7238
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7250
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7245
pm_node_t base
The embedded base node.
Definition ast.h:7240
SelfNode.
Definition ast.h:7265
pm_node_t base
The embedded base node.
Definition ast.h:7267
ShareableConstantNode.
Definition ast.h:7288
PM_NODE_ALIGNAS struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7297
pm_node_t base
The embedded base node.
Definition ast.h:7290
SingletonClassNode.
Definition ast.h:7312
PM_NODE_ALIGNAS struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7339
pm_node_t base
The embedded base node.
Definition ast.h:7314
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7319
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7329
PM_NODE_ALIGNAS struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7334
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7344
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7324
SourceEncodingNode.
Definition ast.h:7359
pm_node_t base
The embedded base node.
Definition ast.h:7361
SourceFileNode.
Definition ast.h:7382
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7391
pm_node_t base
The embedded base node.
Definition ast.h:7384
SourceLineNode.
Definition ast.h:7406
pm_node_t base
The embedded base node.
Definition ast.h:7408
SplatNode.
Definition ast.h:7423
pm_node_t base
The embedded base node.
Definition ast.h:7425
PM_NODE_ALIGNAS struct pm_node * expression
SplatNode::expression.
Definition ast.h:7435
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7430
StatementsNode.
Definition ast.h:7450
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7457
pm_node_t base
The embedded base node.
Definition ast.h:7452
StringNode.
Definition ast.h:7484
pm_node_t base
The embedded base node.
Definition ast.h:7486
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7506
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7496
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7501
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7491
A generic string type that can have various ownership semantics.
Definition stringy.h:18
SuperNode.
Definition ast.h:7526
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7545
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7538
pm_node_t base
The embedded base node.
Definition ast.h:7528
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7533
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7550
PM_NODE_ALIGNAS struct pm_node * block
SuperNode::block.
Definition ast.h:7555
SymbolNode.
Definition ast.h:7578
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7585
pm_location_t content_loc
SymbolNode::content_loc.
Definition ast.h:7590
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7595
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7600
pm_node_t base
The embedded base node.
Definition ast.h:7580
This struct represents a token in the Ruby source.
Definition ast.h:552
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:560
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:557
pm_token_type_t type
The type of the token.
Definition ast.h:554
TrueNode.
Definition ast.h:7615
pm_node_t base
The embedded base node.
Definition ast.h:7617
UndefNode.
Definition ast.h:7632
pm_node_t base
The embedded base node.
Definition ast.h:7634
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7644
struct pm_node_list names
UndefNode::names.
Definition ast.h:7639
UnlessNode.
Definition ast.h:7662
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7700
PM_NODE_ALIGNAS struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7690
PM_NODE_ALIGNAS struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7711
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7731
PM_NODE_ALIGNAS struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7721
pm_node_t base
The embedded base node.
Definition ast.h:7664
pm_location_t unless_keyword_loc
UnlessNode::unless_keyword_loc.
Definition ast.h:7677
UntilNode.
Definition ast.h:7752
pm_location_t end_keyword_loc
UntilNode::end_keyword_loc.
Definition ast.h:7769
pm_location_t until_keyword_loc
UntilNode::until_keyword_loc.
Definition ast.h:7759
pm_node_t base
The embedded base node.
Definition ast.h:7754
PM_NODE_ALIGNAS struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7779
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7764
PM_NODE_ALIGNAS struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7774
WhenNode.
Definition ast.h:7796
pm_location_t when_keyword_loc
WhenNode::when_keyword_loc.
Definition ast.h:7803
pm_node_t base
The embedded base node.
Definition ast.h:7798
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7813
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7818
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7808
WhileNode.
Definition ast.h:7839
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7866
pm_location_t while_keyword_loc
WhileNode::while_keyword_loc.
Definition ast.h:7846
pm_location_t end_keyword_loc
WhileNode::end_keyword_loc.
Definition ast.h:7856
pm_node_t base
The embedded base node.
Definition ast.h:7841
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7851
PM_NODE_ALIGNAS struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7861
XStringNode.
Definition ast.h:7885
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7902
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7892
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7897
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7907
pm_node_t base
The embedded base node.
Definition ast.h:7887
YieldNode.
Definition ast.h:7922
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7929
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7934
pm_node_t base
The embedded base node.
Definition ast.h:7924
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7944
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7939