Ruby 3.3.0p0 (2023-12-25 revision 5124f9ac7513eb590c37717337c430cb93caa151)
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/******************************************************************************/
13#ifndef PRISM_AST_H
14#define PRISM_AST_H
15
16#include "prism/defines.h"
19
20#include <assert.h>
21#include <stddef.h>
22#include <stdint.h>
23
27typedef enum pm_token_type {
30
33
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
523
528typedef struct {
531
533 const uint8_t *start;
534
536 const uint8_t *end;
537} pm_token_t;
538
543typedef struct {
545 const uint8_t *start;
546
548 const uint8_t *end;
550
551struct pm_node;
552
556typedef struct pm_node_list {
558 size_t size;
559
561 size_t capacity;
562
564 struct pm_node **nodes;
566
573
576
579
582
585
588
591
594
597
600
603
606
609
612
615
618
621
624
627
630
633
636
639
642
645
648
651
654
657
660
663
666
669
672
675
678
681
684
687
690
693
696
699
702
705
708
711
714
717
720
723
726
729
732
735
738
741
744
747
750
753
756
759
762
765
768
771
774
777
780
783
786
789
792
795
798
801
804
807
810
813
816
819
822
825
828
831
834
837
840
843
846
849
852
855
858
861
864
867
870
873
876
879
882
885
888
891
894
897
900
903
906
909
912
915
918
921
924
927
930
933
936
939
942
945
948
951
954
957
960
963
966
969
972
975
978
981
984
987
990
993
996
999
1002
1005
1008
1011
1014
1018
1023typedef uint16_t pm_node_type_t;
1024
1029typedef uint16_t pm_node_flags_t;
1030
1035#define PM_NODE_FLAG_BITS (sizeof(pm_node_flags_t) * 8)
1036
1037static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = (1 << (PM_NODE_FLAG_BITS - 1));
1038static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = (1 << (PM_NODE_FLAG_BITS - 2));
1039static const pm_node_flags_t PM_NODE_FLAG_COMMON_MASK = (1 << (PM_NODE_FLAG_BITS - 1)) | (1 << (PM_NODE_FLAG_BITS - 2));
1040
1045#define PM_NODE_TYPE(node) ((enum pm_node_type) node->type)
1046
1050#define PM_NODE_TYPE_P(node, type) (PM_NODE_TYPE(node) == (type))
1051
1055#define PM_NODE_FLAG_P(node, flag) ((((pm_node_t *)(node))->flags & (flag)) != 0)
1056
1080
1101
1122
1143
1164
1181
1204
1234
1255
1273
1288
1318
1336
1351
1381
1402
1426
1444
1481
1521
1561
1598
1626
1647
1674
1701
1737
1761
1788
1812
1827
1842
1866
1890
1917
1941
1962
1983
2007
2028
2049
2070
2085
2100
2124
2175
2199
2220
2241
2259
2280
2292
2322
2345
2357
2390
2402
2414
2429
2453
2480
2504
2519
2534
2558
2579
2606
2636
2651
2666
2678
2702
2742
2785
2825
2856
2880
2907
2931
2946
2961
2985
3002
3035
3068
3089
3110
3131
3148
3169
3202
3229
3259
3286
3304
3322
3349
3385
3406
3427
3445
3457
3487
3514
3547
3565
3577
3595
3610
3625
3646
3670
3691
3724
3745
3769
3787
3811
3835
3853
3876
3891
3903
3939
3957
3972
3993
4023
4044
4056
4074
4086
4116
4128
4143
4155
4173
4188
4216
4243
4271
4283
4301
4331
4357
4378
4404
4431
4455
4463
4471
4485
4496
4513
4521
4529
4537
4575
4589
4603
4610#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS false
4611
4612#endif
struct pm_block_parameter_node pm_block_parameter_node_t
BlockParameterNode.
struct pm_call_target_node pm_call_target_node_t
CallTargetNode.
struct pm_else_node pm_else_node_t
ElseNode.
struct pm_assoc_node pm_assoc_node_t
AssocNode.
struct pm_undef_node pm_undef_node_t
UndefNode.
struct pm_class_variable_and_write_node pm_class_variable_and_write_node_t
ClassVariableAndWriteNode.
struct pm_index_and_write_node pm_index_and_write_node_t
IndexAndWriteNode.
struct pm_index_target_node pm_index_target_node_t
IndexTargetNode.
struct pm_local_variable_target_node pm_local_variable_target_node_t
LocalVariableTargetNode.
struct pm_constant_path_or_write_node pm_constant_path_or_write_node_t
ConstantPathOrWriteNode.
struct pm_missing_node pm_missing_node_t
MissingNode.
struct pm_embedded_statements_node pm_embedded_statements_node_t
EmbeddedStatementsNode.
struct pm_block_node pm_block_node_t
BlockNode.
struct pm_hash_pattern_node pm_hash_pattern_node_t
HashPatternNode.
struct pm_optional_parameter_node pm_optional_parameter_node_t
OptionalParameterNode.
struct pm_x_string_node pm_x_string_node_t
XStringNode.
struct pm_forwarding_super_node pm_forwarding_super_node_t
ForwardingSuperNode.
struct pm_self_node pm_self_node_t
SelfNode.
struct pm_numbered_reference_read_node pm_numbered_reference_read_node_t
NumberedReferenceReadNode.
struct pm_embedded_variable_node pm_embedded_variable_node_t
EmbeddedVariableNode.
struct pm_class_variable_write_node pm_class_variable_write_node_t
ClassVariableWriteNode.
struct pm_interpolated_string_node pm_interpolated_string_node_t
InterpolatedStringNode.
struct pm_class_variable_or_write_node pm_class_variable_or_write_node_t
ClassVariableOrWriteNode.
struct pm_optional_keyword_parameter_node pm_optional_keyword_parameter_node_t
OptionalKeywordParameterNode.
struct pm_call_or_write_node pm_call_or_write_node_t
CallOrWriteNode.
struct pm_call_node pm_call_node_t
CallNode.
struct pm_class_variable_read_node pm_class_variable_read_node_t
ClassVariableReadNode.
struct pm_match_required_node pm_match_required_node_t
MatchRequiredNode.
struct pm_constant_and_write_node pm_constant_and_write_node_t
ConstantAndWriteNode.
struct pm_constant_path_operator_write_node pm_constant_path_operator_write_node_t
ConstantPathOperatorWriteNode.
struct pm_implicit_rest_node pm_implicit_rest_node_t
ImplicitRestNode.
pm_range_flags
Flags for range and flip-flop nodes.
Definition ast.h:4533
@ PM_RANGE_FLAGS_EXCLUDE_END
... operator
Definition ast.h:4535
struct pm_local_variable_or_write_node pm_local_variable_or_write_node_t
LocalVariableOrWriteNode.
struct pm_local_variable_read_node pm_local_variable_read_node_t
LocalVariableReadNode.
struct pm_global_variable_and_write_node pm_global_variable_and_write_node_t
GlobalVariableAndWriteNode.
struct pm_arguments_node pm_arguments_node_t
ArgumentsNode.
pm_node_type
This enum represents every type of node in the Ruby syntax tree.
Definition ast.h:570
@ PM_DEFINED_NODE
DefinedNode.
Definition ast.h:707
@ PM_PRE_EXECUTION_NODE
PreExecutionNode.
Definition ast.h:923
@ PM_RETRY_NODE
RetryNode.
Definition ast.h:956
@ PM_REDO_NODE
RedoNode.
Definition ast.h:935
@ PM_CONSTANT_PATH_WRITE_NODE
ConstantPathWriteNode.
Definition ast.h:692
@ PM_INDEX_AND_WRITE_NODE
IndexAndWriteNode.
Definition ast.h:785
@ PM_SOURCE_LINE_NODE
SourceLineNode.
Definition ast.h:974
@ PM_UNLESS_NODE
UnlessNode.
Definition ast.h:998
@ PM_EMBEDDED_VARIABLE_NODE
EmbeddedVariableNode.
Definition ast.h:716
@ PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOperatorWriteNode.
Definition ast.h:749
@ PM_CALL_NODE
CallNode.
Definition ast.h:626
@ PM_NIL_NODE
NilNode.
Definition ast.h:887
@ PM_GLOBAL_VARIABLE_READ_NODE
GlobalVariableReadNode.
Definition ast.h:755
@ PM_RATIONAL_NODE
RationalNode.
Definition ast.h:932
@ PM_YIELD_NODE
YieldNode.
Definition ast.h:1013
@ PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableAndWriteNode.
Definition ast.h:842
@ PM_CONSTANT_AND_WRITE_NODE
ConstantAndWriteNode.
Definition ast.h:668
@ PM_CLASS_NODE
ClassNode.
Definition ast.h:647
@ PM_FIND_PATTERN_NODE
FindPatternNode.
Definition ast.h:725
@ PM_CALL_OPERATOR_WRITE_NODE
CallOperatorWriteNode.
Definition ast.h:629
@ PM_MATCH_WRITE_NODE
MatchWriteNode.
Definition ast.h:869
@ PM_ARRAY_NODE
ArrayNode.
Definition ast.h:587
@ PM_CONSTANT_PATH_TARGET_NODE
ConstantPathTargetNode.
Definition ast.h:689
@ PM_PROGRAM_NODE
ProgramNode.
Definition ast.h:926
@ PM_OR_NODE
OrNode.
Definition ast.h:905
@ PM_MULTI_WRITE_NODE
MultiWriteNode.
Definition ast.h:881
@ PM_IF_NODE
IfNode.
Definition ast.h:770
@ PM_IMPLICIT_NODE
ImplicitNode.
Definition ast.h:776
@ PM_ARGUMENTS_NODE
ArgumentsNode.
Definition ast.h:584
@ PM_FORWARDING_SUPER_NODE
ForwardingSuperNode.
Definition ast.h:743
@ PM_WHILE_NODE
WhileNode.
Definition ast.h:1007
@ PM_INTERPOLATED_STRING_NODE
InterpolatedStringNode.
Definition ast.h:824
@ PM_FALSE_NODE
FalseNode.
Definition ast.h:722
@ PM_FORWARDING_PARAMETER_NODE
ForwardingParameterNode.
Definition ast.h:740
@ PM_BLOCK_LOCAL_VARIABLE_NODE
BlockLocalVariableNode.
Definition ast.h:608
@ PM_HASH_NODE
HashNode.
Definition ast.h:764
@ PM_UNTIL_NODE
UntilNode.
Definition ast.h:1001
@ PM_MATCH_PREDICATE_NODE
MatchPredicateNode.
Definition ast.h:863
@ PM_X_STRING_NODE
XStringNode.
Definition ast.h:1010
@ PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
LocalVariableOperatorWriteNode.
Definition ast.h:845
@ PM_LOCAL_VARIABLE_OR_WRITE_NODE
LocalVariableOrWriteNode.
Definition ast.h:848
@ PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableAndWriteNode.
Definition ast.h:797
@ PM_GLOBAL_VARIABLE_TARGET_NODE
GlobalVariableTargetNode.
Definition ast.h:758
@ PM_AND_NODE
AndNode.
Definition ast.h:581
@ PM_CONSTANT_TARGET_NODE
ConstantTargetNode.
Definition ast.h:698
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
Definition ast.h:677
@ PM_IN_NODE
InNode.
Definition ast.h:782
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
Definition ast.h:614
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
Definition ast.h:638
@ PM_SOURCE_FILE_NODE
SourceFileNode.
Definition ast.h:971
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
Definition ast.h:890
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
Definition ast.h:683
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
Definition ast.h:878
@ PM_SPLAT_NODE
SplatNode.
Definition ast.h:977
@ PM_LAMBDA_NODE
LambdaNode.
Definition ast.h:839
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
Definition ast.h:659
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
Definition ast.h:941
@ PM_CALL_TARGET_NODE
CallTargetNode.
Definition ast.h:635
@ PM_ELSE_NODE
ElseNode.
Definition ast.h:710
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
Definition ast.h:818
@ PM_WHEN_NODE
WhenNode.
Definition ast.h:1004
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
Definition ast.h:893
@ PM_SYMBOL_NODE
SymbolNode.
Definition ast.h:989
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
Definition ast.h:947
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
Definition ast.h:575
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
Definition ast.h:866
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
Definition ast.h:737
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
Definition ast.h:599
@ PM_SCOPE_NODE
A special kind of node used for compilation.
Definition ast.h:1016
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
Definition ast.h:605
@ PM_MISSING_NODE
MissingNode.
Definition ast.h:872
@ PM_SELF_NODE
SelfNode.
Definition ast.h:962
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
Definition ast.h:779
@ PM_TRUE_NODE
TrueNode.
Definition ast.h:992
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
Definition ast.h:596
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
Definition ast.h:650
@ PM_RANGE_NODE
RangeNode.
Definition ast.h:929
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
Definition ast.h:800
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
Definition ast.h:851
@ PM_NEXT_NODE
NextNode.
Definition ast.h:884
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
Definition ast.h:803
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
Definition ast.h:938
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
Definition ast.h:656
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
Definition ast.h:617
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
Definition ast.h:701
@ PM_HASH_PATTERN_NODE
HashPatternNode.
Definition ast.h:767
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
Definition ast.h:788
@ PM_UNDEF_NODE
UndefNode.
Definition ast.h:995
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
Definition ast.h:578
@ PM_ENSURE_NODE
EnsureNode.
Definition ast.h:719
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
Definition ast.h:857
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
Definition ast.h:965
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
Definition ast.h:833
@ PM_PARENTHESES_NODE
ParenthesesNode.
Definition ast.h:911
@ PM_FOR_NODE
ForNode.
Definition ast.h:734
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
Definition ast.h:665
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
Definition ast.h:920
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
Definition ast.h:671
@ PM_RETURN_NODE
ReturnNode.
Definition ast.h:959
@ PM_MODULE_NODE
ModuleNode.
Definition ast.h:875
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
Definition ast.h:590
@ PM_SUPER_NODE
SuperNode.
Definition ast.h:986
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
Definition ast.h:860
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
Definition ast.h:680
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
Definition ast.h:827
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
Definition ast.h:623
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
Definition ast.h:899
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
Definition ast.h:662
@ PM_CASE_MATCH_NODE
CaseMatchNode.
Definition ast.h:641
@ PM_BREAK_NODE
BreakNode.
Definition ast.h:620
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
Definition ast.h:632
@ PM_IMAGINARY_NODE
ImaginaryNode.
Definition ast.h:773
@ PM_DEF_NODE
DefNode.
Definition ast.h:704
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
Definition ast.h:695
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
Definition ast.h:761
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
Definition ast.h:968
@ PM_BEGIN_NODE
BeginNode.
Definition ast.h:602
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
Definition ast.h:830
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
Definition ast.h:806
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
Definition ast.h:728
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
Definition ast.h:917
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
Definition ast.h:944
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
Definition ast.h:812
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
Definition ast.h:809
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
Definition ast.h:746
@ PM_CASE_NODE
CaseNode.
Definition ast.h:644
@ PM_RESCUE_NODE
RescueNode.
Definition ast.h:950
@ PM_FLOAT_NODE
FloatNode.
Definition ast.h:731
@ PM_ASSOC_NODE
AssocNode.
Definition ast.h:593
@ PM_INTEGER_NODE
IntegerNode.
Definition ast.h:815
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
Definition ast.h:854
@ PM_STRING_NODE
StringNode.
Definition ast.h:983
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
Definition ast.h:791
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
Definition ast.h:572
@ PM_PARAMETERS_NODE
ParametersNode.
Definition ast.h:908
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
Definition ast.h:896
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
Definition ast.h:686
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
Definition ast.h:752
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
Definition ast.h:674
@ PM_STATEMENTS_NODE
StatementsNode.
Definition ast.h:980
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
Definition ast.h:902
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
Definition ast.h:914
@ PM_BLOCK_NODE
BlockNode.
Definition ast.h:611
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
Definition ast.h:653
@ PM_REST_PARAMETER_NODE
RestParameterNode.
Definition ast.h:953
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
Definition ast.h:713
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
Definition ast.h:821
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
Definition ast.h:794
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
Definition ast.h:836
struct pm_nil_node pm_nil_node_t
NilNode.
struct pm_begin_node pm_begin_node_t
BeginNode.
struct pm_statements_node pm_statements_node_t
StatementsNode.
struct pm_instance_variable_write_node pm_instance_variable_write_node_t
InstanceVariableWriteNode.
struct pm_false_node pm_false_node_t
FalseNode.
struct pm_keyword_hash_node pm_keyword_hash_node_t
KeywordHashNode.
struct pm_return_node pm_return_node_t
ReturnNode.
pm_symbol_flags
Flags for symbol nodes.
Definition ast.h:4593
@ PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:4595
@ PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:4601
@ PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:4598
struct pm_constant_path_node pm_constant_path_node_t
ConstantPathNode.
struct pm_local_variable_write_node pm_local_variable_write_node_t
LocalVariableWriteNode.
pm_string_flags
Flags for string nodes.
Definition ast.h:4579
@ PM_STRING_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal comment
Definition ast.h:4587
@ PM_STRING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:4584
@ PM_STRING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:4581
struct pm_implicit_node pm_implicit_node_t
ImplicitNode.
struct pm_yield_node pm_yield_node_t
YieldNode.
pm_arguments_node_flags
Flags for arguments nodes.
Definition ast.h:4459
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
if arguments contain keyword splat
Definition ast.h:4461
enum pm_symbol_flags pm_symbol_flags_t
Flags for symbol nodes.
enum pm_encoding_flags pm_encoding_flags_t
Flags for nodes that have unescaped content.
struct pm_local_variable_and_write_node pm_local_variable_and_write_node_t
LocalVariableAndWriteNode.
struct pm_parameters_node pm_parameters_node_t
ParametersNode.
enum pm_integer_base_flags pm_integer_base_flags_t
Flags for integer nodes that correspond to the base of the integer.
struct pm_lambda_node pm_lambda_node_t
LambdaNode.
struct pm_module_node pm_module_node_t
ModuleNode.
struct pm_case_node pm_case_node_t
CaseNode.
struct pm_in_node pm_in_node_t
InNode.
struct pm_if_node pm_if_node_t
IfNode.
struct pm_constant_path_write_node pm_constant_path_write_node_t
ConstantPathWriteNode.
struct pm_pre_execution_node pm_pre_execution_node_t
PreExecutionNode.
struct pm_rescue_modifier_node pm_rescue_modifier_node_t
RescueModifierNode.
struct pm_splat_node pm_splat_node_t
SplatNode.
struct pm_match_write_node pm_match_write_node_t
MatchWriteNode.
enum pm_call_node_flags pm_call_node_flags_t
Flags for call nodes.
struct pm_multi_write_node pm_multi_write_node_t
MultiWriteNode.
struct pm_local_variable_operator_write_node pm_local_variable_operator_write_node_t
LocalVariableOperatorWriteNode.
struct pm_block_argument_node pm_block_argument_node_t
BlockArgumentNode.
struct pm_interpolated_x_string_node pm_interpolated_x_string_node_t
InterpolatedXStringNode.
struct pm_constant_write_node pm_constant_write_node_t
ConstantWriteNode.
struct pm_flip_flop_node pm_flip_flop_node_t
FlipFlopNode.
struct pm_required_keyword_parameter_node pm_required_keyword_parameter_node_t
RequiredKeywordParameterNode.
struct pm_no_keywords_parameter_node pm_no_keywords_parameter_node_t
NoKeywordsParameterNode.
struct pm_alias_global_variable_node pm_alias_global_variable_node_t
AliasGlobalVariableNode.
struct pm_post_execution_node pm_post_execution_node_t
PostExecutionNode.
#define PM_NODE_FLAG_BITS
We store the flags enum in every node in the tree.
Definition ast.h:1035
pm_array_node_flags
Flags for array nodes.
Definition ast.h:4467
@ PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
if array contains splat nodes
Definition ast.h:4469
enum pm_string_flags pm_string_flags_t
Flags for string nodes.
struct pm_alias_method_node pm_alias_method_node_t
AliasMethodNode.
struct pm_keyword_rest_parameter_node pm_keyword_rest_parameter_node_t
KeywordRestParameterNode.
struct pm_global_variable_read_node pm_global_variable_read_node_t
GlobalVariableReadNode.
struct pm_back_reference_read_node pm_back_reference_read_node_t
BackReferenceReadNode.
enum pm_regular_expression_flags pm_regular_expression_flags_t
Flags for regular expression and match last line nodes.
struct pm_match_last_line_node pm_match_last_line_node_t
MatchLastLineNode.
struct pm_hash_node pm_hash_node_t
HashNode.
struct pm_block_local_variable_node pm_block_local_variable_node_t
BlockLocalVariableNode.
struct pm_multi_target_node pm_multi_target_node_t
MultiTargetNode.
pm_integer_base_flags
Flags for integer nodes that correspond to the base of the integer.
Definition ast.h:4500
@ PM_INTEGER_BASE_FLAGS_HEXADECIMAL
0x prefix
Definition ast.h:4511
@ PM_INTEGER_BASE_FLAGS_OCTAL
0o or 0 prefix
Definition ast.h:4508
@ PM_INTEGER_BASE_FLAGS_DECIMAL
0d or no prefix
Definition ast.h:4505
@ PM_INTEGER_BASE_FLAGS_BINARY
0b prefix
Definition ast.h:4502
struct pm_rational_node pm_rational_node_t
RationalNode.
struct pm_class_node pm_class_node_t
ClassNode.
struct pm_pinned_expression_node pm_pinned_expression_node_t
PinnedExpressionNode.
struct pm_constant_operator_write_node pm_constant_operator_write_node_t
ConstantOperatorWriteNode.
enum pm_loop_flags pm_loop_flags_t
Flags for while and until loop nodes.
struct pm_ensure_node pm_ensure_node_t
EnsureNode.
struct pm_index_or_write_node pm_index_or_write_node_t
IndexOrWriteNode.
struct pm_forwarding_parameter_node pm_forwarding_parameter_node_t
ForwardingParameterNode.
struct pm_constant_or_write_node pm_constant_or_write_node_t
ConstantOrWriteNode.
struct pm_index_operator_write_node pm_index_operator_write_node_t
IndexOperatorWriteNode.
struct pm_when_node pm_when_node_t
WhenNode.
enum pm_token_type pm_token_type_t
This enum represents every type of token in the Ruby source.
struct pm_super_node pm_super_node_t
SuperNode.
struct pm_range_node pm_range_node_t
RangeNode.
struct pm_and_node pm_and_node_t
AndNode.
enum pm_arguments_node_flags pm_arguments_node_flags_t
Flags for arguments nodes.
struct pm_constant_path_and_write_node pm_constant_path_and_write_node_t
ConstantPathAndWriteNode.
struct pm_rest_parameter_node pm_rest_parameter_node_t
RestParameterNode.
struct pm_assoc_splat_node pm_assoc_splat_node_t
AssocSplatNode.
pm_call_node_flags
Flags for call nodes.
Definition ast.h:4475
@ PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
&.
Definition ast.h:4477
@ PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
a call that is an attribute write, so the value being written should be returned
Definition ast.h:4483
@ PM_CALL_NODE_FLAGS_VARIABLE_CALL
a call that could have been a local variable
Definition ast.h:4480
struct pm_constant_read_node pm_constant_read_node_t
ConstantReadNode.
struct pm_match_predicate_node pm_match_predicate_node_t
MatchPredicateNode.
struct pm_or_node pm_or_node_t
OrNode.
struct pm_case_match_node pm_case_match_node_t
CaseMatchNode.
struct pm_call_and_write_node pm_call_and_write_node_t
CallAndWriteNode.
struct pm_until_node pm_until_node_t
UntilNode.
struct pm_retry_node pm_retry_node_t
RetryNode.
uint16_t pm_node_type_t
This is the type of node embedded in the node struct.
Definition ast.h:1023
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:4517
@ PM_KEYWORD_HASH_NODE_FLAGS_STATIC_KEYS
a keyword hash which only has AssocNode elements all with static literal keys, which means the elemen...
Definition ast.h:4519
enum pm_keyword_hash_node_flags pm_keyword_hash_node_flags_t
Flags for keyword hash nodes.
struct pm_redo_node pm_redo_node_t
RedoNode.
struct pm_source_encoding_node pm_source_encoding_node_t
SourceEncodingNode.
struct pm_true_node pm_true_node_t
TrueNode.
struct pm_break_node pm_break_node_t
BreakNode.
struct pm_integer_node pm_integer_node_t
IntegerNode.
struct pm_constant_path_target_node pm_constant_path_target_node_t
ConstantPathTargetNode.
struct pm_call_operator_write_node pm_call_operator_write_node_t
CallOperatorWriteNode.
struct pm_for_node pm_for_node_t
ForNode.
enum pm_range_flags pm_range_flags_t
Flags for range and flip-flop nodes.
struct pm_global_variable_target_node pm_global_variable_target_node_t
GlobalVariableTargetNode.
struct pm_node_list pm_node_list_t
A list of nodes in the source, most often used for lists of children.
struct pm_required_parameter_node pm_required_parameter_node_t
RequiredParameterNode.
struct pm_symbol_node pm_symbol_node_t
SymbolNode.
struct pm_block_parameters_node pm_block_parameters_node_t
BlockParametersNode.
struct pm_alternation_pattern_node pm_alternation_pattern_node_t
AlternationPatternNode.
struct pm_parentheses_node pm_parentheses_node_t
ParenthesesNode.
pm_regular_expression_flags
Flags for regular expression and match last line nodes.
Definition ast.h:4541
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:4570
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:4573
@ PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
e - forces the EUC-JP encoding
Definition ast.h:4555
@ PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
i - ignores the case of characters when matching
Definition ast.h:4543
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:4567
@ PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
n - forces the ASCII-8BIT encoding
Definition ast.h:4558
@ PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
m - allows $ to match the end of lines within strings
Definition ast.h:4549
@ PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
x - ignores whitespace and allows comments in regular expressions
Definition ast.h:4546
@ PM_REGULAR_EXPRESSION_FLAGS_ONCE
o - only interpolates values into the regular expression once
Definition ast.h:4552
@ PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
s - forces the Windows-31J encoding
Definition ast.h:4561
@ PM_REGULAR_EXPRESSION_FLAGS_UTF_8
u - forces the UTF-8 encoding
Definition ast.h:4564
struct pm_forwarding_arguments_node pm_forwarding_arguments_node_t
ForwardingArgumentsNode.
struct pm_instance_variable_read_node pm_instance_variable_read_node_t
InstanceVariableReadNode.
struct pm_constant_target_node pm_constant_target_node_t
ConstantTargetNode.
struct pm_node pm_node_t
This is the base structure that represents a node in the syntax tree.
struct pm_defined_node pm_defined_node_t
DefinedNode.
struct pm_interpolated_symbol_node pm_interpolated_symbol_node_t
InterpolatedSymbolNode.
struct pm_class_variable_target_node pm_class_variable_target_node_t
ClassVariableTargetNode.
struct pm_def_node pm_def_node_t
DefNode.
struct pm_singleton_class_node pm_singleton_class_node_t
SingletonClassNode.
uint16_t pm_node_flags_t
These are the flags embedded in the node struct.
Definition ast.h:1029
struct pm_capture_pattern_node pm_capture_pattern_node_t
CapturePatternNode.
struct pm_source_file_node pm_source_file_node_t
SourceFileNode.
struct pm_regular_expression_node pm_regular_expression_node_t
RegularExpressionNode.
pm_token_type
This enum represents every type of token in the Ruby source.
Definition ast.h:27
@ PM_TOKEN_STAR_STAR
**
Definition ast.h:467
@ PM_TOKEN_DOT_DOT_DOT
the ... range operator or forwarding parameter
Definition ast.h:122
@ PM_TOKEN_MINUS_EQUAL
-=
Definition ast.h:383
@ PM_TOKEN_IGNORED_NEWLINE
an ignored newline
Definition ast.h:194
@ PM_TOKEN_BANG_EQUAL
!=
Definition ast.h:62
@ PM_TOKEN_KEYWORD___FILE__
FILE
Definition ast.h:347
@ PM_TOKEN_KEYWORD_WHEN
when
Definition ast.h:332
@ PM_TOKEN_FLOAT
a floating point number
Definition ast.h:158
@ PM_TOKEN_PLUS_EQUAL
+=
Definition ast.h:440
@ PM_TOKEN_DOT_DOT
the .
Definition ast.h:119
@ PM_TOKEN_UDOT_DOT
unary .
Definition ast.h:494
@ PM_TOKEN_AMPERSAND_DOT
&.
Definition ast.h:47
@ PM_TOKEN_NEWLINE
a newline character outside of other tokens
Definition ast.h:389
@ PM_TOKEN_NUMBERED_REFERENCE
a numbered reference to a capture group in the previous regular expression match
Definition ast.h:392
@ PM_TOKEN_AMPERSAND
&
Definition ast.h:38
@ PM_TOKEN_KEYWORD_YIELD
yield
Definition ast.h:341
@ PM_TOKEN_KEYWORD_END
end
Definition ast.h:251
@ PM_TOKEN_LAMBDA_BEGIN
{
Definition ast.h:359
@ PM_TOKEN_KEYWORD_UNTIL_MODIFIER
until in the modifier form
Definition ast.h:329
@ PM_TOKEN_EQUAL_EQUAL_EQUAL
===
Definition ast.h:149
@ PM_TOKEN_INTEGER_RATIONAL
an integer with a rational suffix
Definition ast.h:206
@ PM_TOKEN_USTAR
unary *
Definition ast.h:509
@ PM_TOKEN_TILDE
~ or ~@
Definition ast.h:485
@ PM_TOKEN_KEYWORD___ENCODING__
ENCODING
Definition ast.h:344
@ PM_TOKEN_REGEXP_END
the end of a regular expression
Definition ast.h:449
@ PM_TOKEN_KEYWORD_UNTIL
until
Definition ast.h:326
@ PM_TOKEN_COMMA
,
Definition ast.h:107
@ PM_TOKEN_MAXIMUM
The maximum token value.
Definition ast.h:521
@ PM_TOKEN_GREATER
Definition ast.h:173
@ PM_TOKEN_INTEGER
an integer (any base)
Definition ast.h:200
@ PM_TOKEN_SLASH_EQUAL
/=
Definition ast.h:458
@ PM_TOKEN_UMINUS_NUM
-@ for a number
Definition ast.h:503
@ PM_TOKEN_EMBVAR
Definition ast.h:140
@ PM_TOKEN_KEYWORD_UNLESS_MODIFIER
unless in the modifier form
Definition ast.h:323
@ PM_TOKEN_INTEGER_RATIONAL_IMAGINARY
an integer with a rational and imaginary suffix
Definition ast.h:209
@ PM_TOKEN_FLOAT_RATIONAL_IMAGINARY
a floating pointer number with a rational and imaginary suffix
Definition ast.h:167
@ PM_TOKEN_BRACKET_LEFT_RIGHT
[]
Definition ast.h:80
@ PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL
&&=
Definition ast.h:44
@ PM_TOKEN_KEYWORD_CLASS
class
Definition ast.h:230
@ PM_TOKEN_KEYWORD_BEGIN
begin
Definition ast.h:218
@ PM_TOKEN_NOT_PROVIDED
a token that was not present but it is okay
Definition ast.h:35
@ PM_TOKEN_USTAR_STAR
unary **
Definition ast.h:512
@ PM_TOKEN_GREATER_GREATER_EQUAL
‍>=
Definition ast.h:182
@ PM_TOKEN_PERCENT_EQUAL
%=
Definition ast.h:407
@ PM_TOKEN_PERCENT
%
Definition ast.h:404
@ PM_TOKEN_KEYWORD_IN
in
Definition ast.h:272
@ PM_TOKEN_BANG
! or !@
Definition ast.h:59
@ PM_TOKEN_KEYWORD_NOT
not
Definition ast.h:284
@ PM_TOKEN_BRACKET_LEFT_ARRAY
[ for the beginning of an array
Definition ast.h:77
@ PM_TOKEN_HEREDOC_END
the end of a heredoc
Definition ast.h:185
@ PM_TOKEN_HEREDOC_START
the start of a heredoc
Definition ast.h:188
@ PM_TOKEN_KEYWORD_DEFINED
defined?
Definition ast.h:236
@ PM_TOKEN_UCOLON_COLON
unary ::
Definition ast.h:491
@ PM_TOKEN_LABEL_END
the end of a label
Definition ast.h:356
@ PM_TOKEN_EQUAL_GREATER
=>
Definition ast.h:152
@ PM_TOKEN_KEYWORD_UNLESS
unless
Definition ast.h:320
@ PM_TOKEN_KEYWORD_ENSURE
ensure
Definition ast.h:257
@ PM_TOKEN_AMPERSAND_EQUAL
&=
Definition ast.h:50
@ PM_TOKEN_EQUAL_EQUAL
==
Definition ast.h:146
@ PM_TOKEN_UPLUS
+@
Definition ast.h:506
@ PM_TOKEN_FLOAT_IMAGINARY
a floating pointer number with an imaginary suffix
Definition ast.h:161
@ PM_TOKEN_KEYWORD_BEGIN_UPCASE
BEGIN.
Definition ast.h:221
@ PM_TOKEN_LESS_EQUAL_GREATER
<=>
Definition ast.h:368
@ PM_TOKEN_KEYWORD_RESCUE_MODIFIER
rescue in the modifier form
Definition ast.h:296
@ PM_TOKEN_MISSING
a token that was expected but not found
Definition ast.h:32
@ PM_TOKEN_MINUS_GREATER
->
Definition ast.h:386
@ PM_TOKEN_KEYWORD_FALSE
false
Definition ast.h:260
@ PM_TOKEN_PIPE_PIPE_EQUAL
||=
Definition ast.h:434
@ PM_TOKEN_KEYWORD_IF
if
Definition ast.h:266
@ PM_TOKEN_EMBEXPR_BEGIN
#{
Definition ast.h:134
@ PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES
( for a parentheses node
Definition ast.h:398
@ PM_TOKEN_EMBDOC_END
=end
Definition ast.h:128
@ PM_TOKEN_KEYWORD_ELSE
else
Definition ast.h:245
@ PM_TOKEN_BACK_REFERENCE
a back reference
Definition ast.h:56
@ PM_TOKEN_BRACKET_LEFT
[
Definition ast.h:74
@ PM_TOKEN_EOF
final token in the file
Definition ast.h:29
@ PM_TOKEN_PIPE_PIPE
||
Definition ast.h:431
@ PM_TOKEN_KEYWORD_NIL
nil
Definition ast.h:281
@ PM_TOKEN_PERCENT_UPPER_W
W
Definition ast.h:422
@ PM_TOKEN_KEYWORD_RETURN
return
Definition ast.h:302
@ PM_TOKEN_CLASS_VARIABLE
a class variable
Definition ast.h:98
@ PM_TOKEN_PIPE
|
Definition ast.h:425
@ PM_TOKEN_PARENTHESIS_LEFT
(
Definition ast.h:395
@ PM_TOKEN_BANG_TILDE
!~
Definition ast.h:65
@ PM_TOKEN_DOT
the .
Definition ast.h:116
@ PM_TOKEN_PARENTHESIS_RIGHT
)
Definition ast.h:401
@ PM_TOKEN_KEYWORD_RESCUE
rescue
Definition ast.h:293
@ PM_TOKEN_INSTANCE_VARIABLE
an instance variable
Definition ast.h:197
@ PM_TOKEN_PIPE_EQUAL
|=
Definition ast.h:428
@ PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL
[]=
Definition ast.h:83
@ PM_TOKEN_UAMPERSAND
unary &
Definition ast.h:488
@ PM_TOKEN_MINUS
Definition ast.h:380
@ PM_TOKEN_CONSTANT
a constant
Definition ast.h:113
@ PM_TOKEN_IDENTIFIER
an identifier
Definition ast.h:191
@ PM_TOKEN_EMBDOC_BEGIN
=begin
Definition ast.h:125
@ PM_TOKEN_STAR_EQUAL
*=
Definition ast.h:464
@ PM_TOKEN_KEYWORD_OR
or
Definition ast.h:287
@ PM_TOKEN_KEYWORD_AND
and
Definition ast.h:215
@ PM_TOKEN_LESS
<
Definition ast.h:362
@ PM_TOKEN_KEYWORD_BREAK
break
Definition ast.h:224
@ PM_TOKEN_PERCENT_LOWER_W
w
Definition ast.h:413
@ PM_TOKEN_SYMBOL_BEGIN
the beginning of a symbol
Definition ast.h:482
@ PM_TOKEN_METHOD_NAME
a method name
Definition ast.h:377
@ PM_TOKEN_KEYWORD_CASE
case
Definition ast.h:227
@ PM_TOKEN_WORDS_SEP
a separator between words in a list
Definition ast.h:515
@ PM_TOKEN_FLOAT_RATIONAL
a floating pointer number with a rational suffix
Definition ast.h:164
@ PM_TOKEN_LESS_LESS_EQUAL
<<=
Definition ast.h:374
@ PM_TOKEN_EMBDOC_LINE
a line inside of embedded documentation
Definition ast.h:131
@ PM_TOKEN_KEYWORD_SUPER
super
Definition ast.h:308
@ PM_TOKEN_KEYWORD_DO
do
Definition ast.h:239
@ PM_TOKEN_KEYWORD_REDO
redo
Definition ast.h:290
@ PM_TOKEN_EQUAL_TILDE
=~
Definition ast.h:155
@ PM_TOKEN_EMBEXPR_END
}
Definition ast.h:137
@ PM_TOKEN_KEYWORD_END_UPCASE
END.
Definition ast.h:254
@ PM_TOKEN_KEYWORD___LINE__
LINE
Definition ast.h:350
@ PM_TOKEN_STRING_END
the end of a string
Definition ast.h:479
@ PM_TOKEN_STRING_CONTENT
the contents of a string
Definition ast.h:476
@ PM_TOKEN_BRACE_LEFT
{
Definition ast.h:68
@ PM_TOKEN_COLON_COLON
::
Definition ast.h:104
@ PM_TOKEN_GREATER_GREATER
Definition ast.h:179
@ PM_TOKEN_PERCENT_LOWER_X
x
Definition ast.h:416
@ PM_TOKEN_KEYWORD_SELF
self
Definition ast.h:305
@ PM_TOKEN_PERCENT_LOWER_I
i
Definition ast.h:410
@ PM_TOKEN_KEYWORD_ALIAS
alias
Definition ast.h:212
@ PM_TOKEN_GLOBAL_VARIABLE
a global variable
Definition ast.h:170
@ PM_TOKEN_KEYWORD_IF_MODIFIER
if in the modifier form
Definition ast.h:269
@ PM_TOKEN_SLASH
/
Definition ast.h:455
@ PM_TOKEN_KEYWORD_RETRY
retry
Definition ast.h:299
@ PM_TOKEN_COLON
:
Definition ast.h:101
@ PM_TOKEN_KEYWORD_UNDEF
undef
Definition ast.h:317
@ PM_TOKEN_BRACKET_RIGHT
]
Definition ast.h:86
@ PM_TOKEN_KEYWORD_FOR
for
Definition ast.h:263
@ PM_TOKEN_KEYWORD_THEN
then
Definition ast.h:311
@ PM_TOKEN_QUESTION_MARK
?
Definition ast.h:443
@ PM_TOKEN___END__
marker for the point in the file at which the parser should stop
Definition ast.h:518
@ PM_TOKEN_KEYWORD_WHILE
while
Definition ast.h:335
@ PM_TOKEN_EQUAL
=
Definition ast.h:143
@ PM_TOKEN_KEYWORD_DEF
def
Definition ast.h:233
@ PM_TOKEN_UDOT_DOT_DOT
unary ... operator
Definition ast.h:497
@ PM_TOKEN_STAR
Definition ast.h:461
@ PM_TOKEN_KEYWORD_WHILE_MODIFIER
while in the modifier form
Definition ast.h:338
@ PM_TOKEN_KEYWORD_TRUE
true
Definition ast.h:314
@ PM_TOKEN_BRACE_RIGHT
}
Definition ast.h:71
@ PM_TOKEN_SEMICOLON
;
Definition ast.h:452
@ PM_TOKEN_REGEXP_BEGIN
the beginning of a regular expression
Definition ast.h:446
@ PM_TOKEN_CARET
^
Definition ast.h:89
@ PM_TOKEN_PERCENT_UPPER_I
I
Definition ast.h:419
@ PM_TOKEN_KEYWORD_DO_LOOP
do keyword for a predicate in a while, until, or for loop
Definition ast.h:242
@ PM_TOKEN_KEYWORD_MODULE
module
Definition ast.h:275
@ PM_TOKEN_PLUS
Definition ast.h:437
@ PM_TOKEN_KEYWORD_NEXT
next
Definition ast.h:278
@ PM_TOKEN_BACKTICK
`
Definition ast.h:53
@ PM_TOKEN_INTEGER_IMAGINARY
an integer with an imaginary suffix
Definition ast.h:203
@ PM_TOKEN_LABEL
a label
Definition ast.h:353
@ PM_TOKEN_STAR_STAR_EQUAL
**=
Definition ast.h:470
@ PM_TOKEN_CHARACTER_LITERAL
a character literal
Definition ast.h:95
@ PM_TOKEN_AMPERSAND_AMPERSAND
&&
Definition ast.h:41
@ PM_TOKEN_UMINUS
-@
Definition ast.h:500
@ PM_TOKEN_LESS_LESS
<<
Definition ast.h:371
@ PM_TOKEN_GREATER_EQUAL
>=
Definition ast.h:176
@ PM_TOKEN_COMMENT
a comment
Definition ast.h:110
@ PM_TOKEN_CARET_EQUAL
^=
Definition ast.h:92
@ PM_TOKEN_KEYWORD_ELSIF
elsif
Definition ast.h:248
@ PM_TOKEN_STRING_BEGIN
the beginning of a string
Definition ast.h:473
@ PM_TOKEN_LESS_EQUAL
<=
Definition ast.h:365
struct pm_global_variable_or_write_node pm_global_variable_or_write_node_t
GlobalVariableOrWriteNode.
enum pm_array_node_flags pm_array_node_flags_t
Flags for array nodes.
struct pm_rescue_node pm_rescue_node_t
RescueNode.
struct pm_array_node pm_array_node_t
ArrayNode.
struct pm_while_node pm_while_node_t
WhileNode.
struct pm_global_variable_write_node pm_global_variable_write_node_t
GlobalVariableWriteNode.
struct pm_instance_variable_or_write_node pm_instance_variable_or_write_node_t
InstanceVariableOrWriteNode.
struct pm_source_line_node pm_source_line_node_t
SourceLineNode.
pm_encoding_flags
Flags for nodes that have unescaped content.
Definition ast.h:4489
@ PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:4494
@ PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:4491
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.
struct pm_string_node pm_string_node_t
StringNode.
struct pm_float_node pm_float_node_t
FloatNode.
struct pm_global_variable_operator_write_node pm_global_variable_operator_write_node_t
GlobalVariableOperatorWriteNode.
struct pm_instance_variable_operator_write_node pm_instance_variable_operator_write_node_t
InstanceVariableOperatorWriteNode.
pm_loop_flags
Flags for while and until loop nodes.
Definition ast.h:4525
@ PM_LOOP_FLAGS_BEGIN_MODIFIER
a loop after a begin statement, so the body is executed first before the condition
Definition ast.h:4527
struct pm_pinned_variable_node pm_pinned_variable_node_t
PinnedVariableNode.
struct pm_instance_variable_and_write_node pm_instance_variable_and_write_node_t
InstanceVariableAndWriteNode.
struct pm_program_node pm_program_node_t
ProgramNode.
struct pm_find_pattern_node pm_find_pattern_node_t
FindPatternNode.
A data structure that stores a set of strings.
uint32_t pm_constant_id_t
A constant id is a unique identifier for a constant in the constant pool.
A generic string type that can have various ownership semantics.
Macro definitions used throughout the prism library.
AliasGlobalVariableNode.
Definition ast.h:1088
struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1096
pm_node_t base
The embedded base node.
Definition ast.h:1090
struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1093
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1099
AliasMethodNode.
Definition ast.h:1109
struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1117
struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1114
pm_node_t base
The embedded base node.
Definition ast.h:1111
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1120
AlternationPatternNode.
Definition ast.h:1130
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1141
struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1135
struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1138
pm_node_t base
The embedded base node.
Definition ast.h:1132
AndNode.
Definition ast.h:1151
struct pm_node * left
AndNode::left.
Definition ast.h:1156
struct pm_node * right
AndNode::right.
Definition ast.h:1159
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1162
pm_node_t base
The embedded base node.
Definition ast.h:1153
ArgumentsNode.
Definition ast.h:1174
pm_node_t base
The embedded base node.
Definition ast.h:1176
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1179
ArrayNode.
Definition ast.h:1191
pm_node_t base
The embedded base node.
Definition ast.h:1193
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1202
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1196
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1199
ArrayPatternNode.
Definition ast.h:1212
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1220
struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1223
struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1217
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1229
pm_node_t base
The embedded base node.
Definition ast.h:1214
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1232
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1226
AssocNode.
Definition ast.h:1242
pm_node_t base
The embedded base node.
Definition ast.h:1244
struct pm_node * value
AssocNode::value.
Definition ast.h:1250
struct pm_node * key
AssocNode::key.
Definition ast.h:1247
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1253
AssocSplatNode.
Definition ast.h:1263
struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1268
pm_node_t base
The embedded base node.
Definition ast.h:1265
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1271
BackReferenceReadNode.
Definition ast.h:1281
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1286
pm_node_t base
The embedded base node.
Definition ast.h:1283
BeginNode.
Definition ast.h:1296
struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1313
struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1307
struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1304
pm_node_t base
The embedded base node.
Definition ast.h:1298
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1316
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1301
struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1310
BlockArgumentNode.
Definition ast.h:1326
pm_node_t base
The embedded base node.
Definition ast.h:1328
struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1331
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1334
BlockLocalVariableNode.
Definition ast.h:1344
pm_node_t base
The embedded base node.
Definition ast.h:1346
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1349
BlockNode.
Definition ast.h:1359
pm_node_t base
The embedded base node.
Definition ast.h:1361
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1379
struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1370
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1376
struct pm_node * body
BlockNode::body.
Definition ast.h:1373
uint32_t locals_body_index
BlockNode::locals_body_index.
Definition ast.h:1367
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1364
BlockParameterNode.
Definition ast.h:1389
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1400
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1397
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1394
pm_node_t base
The embedded base node.
Definition ast.h:1391
BlockParametersNode.
Definition ast.h:1410
struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1415
pm_node_t base
The embedded base node.
Definition ast.h:1412
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1418
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1424
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1421
BreakNode.
Definition ast.h:1434
struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:1439
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:1442
pm_node_t base
The embedded base node.
Definition ast.h:1436
CallAndWriteNode.
Definition ast.h:1456
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:1476
struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:1479
pm_node_t base
The embedded base node.
Definition ast.h:1458
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:1464
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:1467
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:1470
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:1473
struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:1461
CallNode.
Definition ast.h:1493
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:1510
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:1516
struct pm_node * receiver
CallNode::receiver.
Definition ast.h:1498
pm_constant_id_t name
CallNode::name.
Definition ast.h:1504
pm_node_t base
The embedded base node.
Definition ast.h:1495
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:1501
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:1507
struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:1513
struct pm_node * block
CallNode::block.
Definition ast.h:1519
CallOperatorWriteNode.
Definition ast.h:1533
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:1547
struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:1538
pm_node_t base
The embedded base node.
Definition ast.h:1535
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:1550
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:1544
pm_location_t operator_loc
CallOperatorWriteNode::operator_loc.
Definition ast.h:1556
struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:1559
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:1541
CallOrWriteNode.
Definition ast.h:1573
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:1593
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:1581
pm_node_t base
The embedded base node.
Definition ast.h:1575
struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:1578
struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:1596
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:1590
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:1587
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:1584
CallTargetNode.
Definition ast.h:1610
pm_node_t base
The embedded base node.
Definition ast.h:1612
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:1621
struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:1615
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:1618
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:1624
CapturePatternNode.
Definition ast.h:1634
struct pm_node * target
CapturePatternNode::target.
Definition ast.h:1642
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:1645
struct pm_node * value
CapturePatternNode::value.
Definition ast.h:1639
pm_node_t base
The embedded base node.
Definition ast.h:1636
CaseMatchNode.
Definition ast.h:1655
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:1672
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:1663
struct pm_else_node * consequent
CaseMatchNode::consequent.
Definition ast.h:1666
pm_node_t base
The embedded base node.
Definition ast.h:1657
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:1669
struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:1660
CaseNode.
Definition ast.h:1682
struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:1687
struct pm_else_node * consequent
CaseNode::consequent.
Definition ast.h:1693
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:1690
pm_node_t base
The embedded base node.
Definition ast.h:1684
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:1696
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:1699
ClassNode.
Definition ast.h:1709
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:1717
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:1732
struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:1720
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:1714
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:1723
pm_constant_id_t name
ClassNode::name.
Definition ast.h:1735
pm_node_t base
The embedded base node.
Definition ast.h:1711
struct pm_node * body
ClassNode::body.
Definition ast.h:1729
struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:1726
ClassVariableAndWriteNode.
Definition ast.h:1745
struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:1759
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:1750
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:1756
pm_node_t base
The embedded base node.
Definition ast.h:1747
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:1753
ClassVariableOperatorWriteNode.
Definition ast.h:1769
pm_location_t operator_loc
ClassVariableOperatorWriteNode::operator_loc.
Definition ast.h:1780
pm_node_t base
The embedded base node.
Definition ast.h:1771
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:1774
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:1777
struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:1783
ClassVariableOrWriteNode.
Definition ast.h:1796
pm_node_t base
The embedded base node.
Definition ast.h:1798
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:1804
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:1807
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:1801
struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:1810
ClassVariableReadNode.
Definition ast.h:1820
pm_node_t base
The embedded base node.
Definition ast.h:1822
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:1825
ClassVariableTargetNode.
Definition ast.h:1835
pm_node_t base
The embedded base node.
Definition ast.h:1837
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:1840
ClassVariableWriteNode.
Definition ast.h:1850
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:1858
pm_node_t base
The embedded base node.
Definition ast.h:1852
struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:1861
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:1864
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:1855
ConstantAndWriteNode.
Definition ast.h:1874
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:1885
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:1882
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:1879
struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:1888
pm_node_t base
The embedded base node.
Definition ast.h:1876
A list of constant IDs.
ConstantOperatorWriteNode.
Definition ast.h:1898
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:1903
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:1906
struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:1912
pm_node_t base
The embedded base node.
Definition ast.h:1900
pm_location_t operator_loc
ConstantOperatorWriteNode::operator_loc.
Definition ast.h:1909
ConstantOrWriteNode.
Definition ast.h:1925
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:1936
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:1933
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:1930
pm_node_t base
The embedded base node.
Definition ast.h:1927
struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:1939
ConstantPathAndWriteNode.
Definition ast.h:1949
pm_node_t base
The embedded base node.
Definition ast.h:1951
struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:1954
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:1957
struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:1960
ConstantPathNode.
Definition ast.h:1970
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:1981
pm_node_t base
The embedded base node.
Definition ast.h:1972
struct pm_node * child
ConstantPathNode::child.
Definition ast.h:1978
struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:1975
ConstantPathOperatorWriteNode.
Definition ast.h:1991
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:1996
struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:2002
pm_node_t base
The embedded base node.
Definition ast.h:1993
pm_location_t operator_loc
ConstantPathOperatorWriteNode::operator_loc.
Definition ast.h:1999
ConstantPathOrWriteNode.
Definition ast.h:2015
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:2023
pm_node_t base
The embedded base node.
Definition ast.h:2017
struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:2026
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:2020
ConstantPathTargetNode.
Definition ast.h:2036
pm_node_t base
The embedded base node.
Definition ast.h:2038
struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:2041
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:2047
struct pm_node * child
ConstantPathTargetNode::child.
Definition ast.h:2044
ConstantPathWriteNode.
Definition ast.h:2057
struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:2062
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:2065
pm_node_t base
The embedded base node.
Definition ast.h:2059
struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:2068
ConstantReadNode.
Definition ast.h:2078
pm_node_t base
The embedded base node.
Definition ast.h:2080
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:2083
ConstantTargetNode.
Definition ast.h:2093
pm_node_t base
The embedded base node.
Definition ast.h:2095
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:2098
ConstantWriteNode.
Definition ast.h:2108
pm_node_t base
The embedded base node.
Definition ast.h:2110
struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:2119
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:2113
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:2116
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:2122
DefNode.
Definition ast.h:2132
struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:2146
uint32_t locals_body_index
DefNode::locals_body_index.
Definition ast.h:2155
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:2173
pm_constant_id_t name
DefNode::name.
Definition ast.h:2137
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:2140
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:2167
struct pm_node * body
DefNode::body.
Definition ast.h:2149
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:2170
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:2158
struct pm_node * receiver
DefNode::receiver.
Definition ast.h:2143
pm_node_t base
The embedded base node.
Definition ast.h:2134
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:2164
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:2161
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:2152
DefinedNode.
Definition ast.h:2183
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:2188
pm_node_t base
The embedded base node.
Definition ast.h:2185
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:2194
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:2197
struct pm_node * value
DefinedNode::value.
Definition ast.h:2191
ElseNode.
Definition ast.h:2207
struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:2215
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:2212
pm_node_t base
The embedded base node.
Definition ast.h:2209
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:2218
EmbeddedStatementsNode.
Definition ast.h:2228
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:2239
struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:2236
pm_node_t base
The embedded base node.
Definition ast.h:2230
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:2233
EmbeddedVariableNode.
Definition ast.h:2249
struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:2257
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:2254
pm_node_t base
The embedded base node.
Definition ast.h:2251
EnsureNode.
Definition ast.h:2267
struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:2275
pm_node_t base
The embedded base node.
Definition ast.h:2269
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:2272
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:2278
FalseNode.
Definition ast.h:2288
pm_node_t base
The embedded base node.
Definition ast.h:2290
FindPatternNode.
Definition ast.h:2300
struct pm_node * left
FindPatternNode::left.
Definition ast.h:2308
struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:2305
struct pm_node * right
FindPatternNode::right.
Definition ast.h:2314
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:2317
pm_node_t base
The embedded base node.
Definition ast.h:2302
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:2311
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:2320
FlipFlopNode.
Definition ast.h:2332
pm_node_t base
The embedded base node.
Definition ast.h:2334
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:2343
struct pm_node * left
FlipFlopNode::left.
Definition ast.h:2337
struct pm_node * right
FlipFlopNode::right.
Definition ast.h:2340
FloatNode.
Definition ast.h:2353
pm_node_t base
The embedded base node.
Definition ast.h:2355
ForNode.
Definition ast.h:2365
struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:2376
struct pm_node * index
ForNode::index.
Definition ast.h:2370
struct pm_node * collection
ForNode::collection.
Definition ast.h:2373
pm_node_t base
The embedded base node.
Definition ast.h:2367
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:2388
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:2379
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:2385
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:2382
ForwardingArgumentsNode.
Definition ast.h:2398
pm_node_t base
The embedded base node.
Definition ast.h:2400
ForwardingParameterNode.
Definition ast.h:2410
pm_node_t base
The embedded base node.
Definition ast.h:2412
ForwardingSuperNode.
Definition ast.h:2422
pm_node_t base
The embedded base node.
Definition ast.h:2424
struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:2427
GlobalVariableAndWriteNode.
Definition ast.h:2437
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:2448
pm_node_t base
The embedded base node.
Definition ast.h:2439
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:2445
struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:2451
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:2442
GlobalVariableOperatorWriteNode.
Definition ast.h:2461
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:2466
pm_location_t operator_loc
GlobalVariableOperatorWriteNode::operator_loc.
Definition ast.h:2472
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:2475
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:2469
pm_node_t base
The embedded base node.
Definition ast.h:2463
GlobalVariableOrWriteNode.
Definition ast.h:2488
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:2493
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:2496
pm_node_t base
The embedded base node.
Definition ast.h:2490
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:2499
struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:2502
GlobalVariableReadNode.
Definition ast.h:2512
pm_node_t base
The embedded base node.
Definition ast.h:2514
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:2517
GlobalVariableTargetNode.
Definition ast.h:2527
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:2532
pm_node_t base
The embedded base node.
Definition ast.h:2529
GlobalVariableWriteNode.
Definition ast.h:2542
struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:2553
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:2550
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:2556
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:2547
pm_node_t base
The embedded base node.
Definition ast.h:2544
HashNode.
Definition ast.h:2566
struct pm_node_list elements
HashNode::elements.
Definition ast.h:2574
pm_node_t base
The embedded base node.
Definition ast.h:2568
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:2577
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:2571
HashPatternNode.
Definition ast.h:2587
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:2595
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:2601
pm_node_t base
The embedded base node.
Definition ast.h:2589
struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:2598
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:2604
struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:2592
IfNode.
Definition ast.h:2614
struct pm_node * consequent
IfNode::consequent.
Definition ast.h:2631
struct pm_node * predicate
IfNode::predicate.
Definition ast.h:2622
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:2634
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:2619
struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:2628
pm_node_t base
The embedded base node.
Definition ast.h:2616
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:2625
ImaginaryNode.
Definition ast.h:2644
struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:2649
pm_node_t base
The embedded base node.
Definition ast.h:2646
ImplicitNode.
Definition ast.h:2659
struct pm_node * value
ImplicitNode::value.
Definition ast.h:2664
pm_node_t base
The embedded base node.
Definition ast.h:2661
ImplicitRestNode.
Definition ast.h:2674
pm_node_t base
The embedded base node.
Definition ast.h:2676
InNode.
Definition ast.h:2686
struct pm_statements_node * statements
InNode::statements.
Definition ast.h:2694
struct pm_node * pattern
InNode::pattern.
Definition ast.h:2691
pm_node_t base
The embedded base node.
Definition ast.h:2688
pm_location_t then_loc
InNode::then_loc.
Definition ast.h:2700
pm_location_t in_loc
InNode::in_loc.
Definition ast.h:2697
IndexAndWriteNode.
Definition ast.h:2714
struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:2728
struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:2719
pm_node_t base
The embedded base node.
Definition ast.h:2716
struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:2740
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:2737
struct pm_node * block
IndexAndWriteNode::block.
Definition ast.h:2734
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:2731
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:2725
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:2722
IndexOperatorWriteNode.
Definition ast.h:2754
pm_node_t base
The embedded base node.
Definition ast.h:2756
struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:2783
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:2765
struct pm_node * block
IndexOperatorWriteNode::block.
Definition ast.h:2774
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:2762
pm_location_t operator_loc
IndexOperatorWriteNode::operator_loc.
Definition ast.h:2780
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:2771
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:2768
struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:2759
IndexOrWriteNode.
Definition ast.h:2797
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:2814
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:2805
pm_node_t base
The embedded base node.
Definition ast.h:2799
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:2820
struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:2802
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:2808
struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:2823
struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:2811
struct pm_node * block
IndexOrWriteNode::block.
Definition ast.h:2817
IndexTargetNode.
Definition ast.h:2837
pm_node_t base
The embedded base node.
Definition ast.h:2839
struct pm_node * block
IndexTargetNode::block.
Definition ast.h:2854
struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:2842
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:2851
struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:2848
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:2845
InstanceVariableAndWriteNode.
Definition ast.h:2864
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:2875
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:2872
struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:2878
pm_node_t base
The embedded base node.
Definition ast.h:2866
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:2869
InstanceVariableOperatorWriteNode.
Definition ast.h:2888
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:2902
pm_location_t operator_loc
InstanceVariableOperatorWriteNode::operator_loc.
Definition ast.h:2899
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:2893
pm_node_t base
The embedded base node.
Definition ast.h:2890
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:2896
InstanceVariableOrWriteNode.
Definition ast.h:2915
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:2926
struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:2929
pm_node_t base
The embedded base node.
Definition ast.h:2917
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:2923
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:2920
InstanceVariableReadNode.
Definition ast.h:2939
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:2944
pm_node_t base
The embedded base node.
Definition ast.h:2941
InstanceVariableTargetNode.
Definition ast.h:2954
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:2959
pm_node_t base
The embedded base node.
Definition ast.h:2956
InstanceVariableWriteNode.
Definition ast.h:2969
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:2983
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:2974
pm_node_t base
The embedded base node.
Definition ast.h:2971
struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:2980
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:2977
IntegerNode.
Definition ast.h:2998
pm_node_t base
The embedded base node.
Definition ast.h:3000
InterpolatedMatchLastLineNode.
Definition ast.h:3022
pm_node_t base
The embedded base node.
Definition ast.h:3024
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:3033
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:3030
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:3027
InterpolatedRegularExpressionNode.
Definition ast.h:3055
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:3060
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:3063
pm_node_t base
The embedded base node.
Definition ast.h:3057
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:3066
InterpolatedStringNode.
Definition ast.h:3076
pm_node_t base
The embedded base node.
Definition ast.h:3078
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:3087
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:3081
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:3084
InterpolatedSymbolNode.
Definition ast.h:3097
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:3105
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:3108
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:3102
pm_node_t base
The embedded base node.
Definition ast.h:3099
InterpolatedXStringNode.
Definition ast.h:3118
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:3123
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:3129
pm_node_t base
The embedded base node.
Definition ast.h:3120
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:3126
KeywordHashNode.
Definition ast.h:3141
pm_node_t base
The embedded base node.
Definition ast.h:3143
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:3146
KeywordRestParameterNode.
Definition ast.h:3156
pm_node_t base
The embedded base node.
Definition ast.h:3158
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:3161
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:3167
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:3164
LambdaNode.
Definition ast.h:3177
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:3194
pm_node_t base
The embedded base node.
Definition ast.h:3179
struct pm_node * body
LambdaNode::body.
Definition ast.h:3200
uint32_t locals_body_index
LambdaNode::locals_body_index.
Definition ast.h:3185
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:3191
struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:3197
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:3188
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:3182
LocalVariableAndWriteNode.
Definition ast.h:3210
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:3224
pm_node_t base
The embedded base node.
Definition ast.h:3212
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:3227
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:3218
struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:3221
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:3215
LocalVariableOperatorWriteNode.
Definition ast.h:3237
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:3257
pm_node_t base
The embedded base node.
Definition ast.h:3239
struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:3248
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:3242
pm_location_t operator_loc
LocalVariableOperatorWriteNode::operator_loc.
Definition ast.h:3245
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:3251
LocalVariableOrWriteNode.
Definition ast.h:3267
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:3284
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:3275
struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:3278
pm_node_t base
The embedded base node.
Definition ast.h:3269
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:3281
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:3272
LocalVariableReadNode.
Definition ast.h:3294
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:3302
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:3299
pm_node_t base
The embedded base node.
Definition ast.h:3296
LocalVariableTargetNode.
Definition ast.h:3312
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:3320
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:3317
pm_node_t base
The embedded base node.
Definition ast.h:3314
LocalVariableWriteNode.
Definition ast.h:3330
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:3347
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:3341
pm_node_t base
The embedded base node.
Definition ast.h:3332
struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:3344
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:3338
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:3335
This represents a range of bytes in the source string to which a node or token corresponds.
Definition ast.h:543
const uint8_t * start
A pointer to the start location of the range in the source.
Definition ast.h:545
const uint8_t * end
A pointer to the end location of the range in the source.
Definition ast.h:548
MatchLastLineNode.
Definition ast.h:3369
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:3377
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:3374
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:3380
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:3383
pm_node_t base
The embedded base node.
Definition ast.h:3371
MatchPredicateNode.
Definition ast.h:3393
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition ast.h:3404
struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:3401
struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:3398
pm_node_t base
The embedded base node.
Definition ast.h:3395
MatchRequiredNode.
Definition ast.h:3414
pm_node_t base
The embedded base node.
Definition ast.h:3416
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:3425
struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:3419
struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:3422
MatchWriteNode.
Definition ast.h:3435
pm_node_t base
The embedded base node.
Definition ast.h:3437
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:3443
struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:3440
MissingNode.
Definition ast.h:3453
pm_node_t base
The embedded base node.
Definition ast.h:3455
ModuleNode.
Definition ast.h:3465
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:3482
struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:3476
struct pm_node * body
ModuleNode::body.
Definition ast.h:3479
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:3470
pm_node_t base
The embedded base node.
Definition ast.h:3467
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:3473
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:3485
MultiTargetNode.
Definition ast.h:3495
pm_node_t base
The embedded base node.
Definition ast.h:3497
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:3509
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:3500
struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:3503
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:3512
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:3506
MultiWriteNode.
Definition ast.h:3522
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:3539
struct pm_node * value
MultiWriteNode::value.
Definition ast.h:3545
struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:3530
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:3533
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:3542
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:3536
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:3527
pm_node_t base
The embedded base node.
Definition ast.h:3524
NextNode.
Definition ast.h:3555
struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:3560
pm_node_t base
The embedded base node.
Definition ast.h:3557
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:3563
NilNode.
Definition ast.h:3573
pm_node_t base
The embedded base node.
Definition ast.h:3575
NoKeywordsParameterNode.
Definition ast.h:3585
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:3593
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:3590
pm_node_t base
The embedded base node.
Definition ast.h:3587
A list of nodes in the source, most often used for lists of children.
Definition ast.h:556
size_t size
The number of nodes in the list.
Definition ast.h:558
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:564
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:561
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1061
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1066
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1072
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1078
NumberedParametersNode.
Definition ast.h:3603
pm_node_t base
The embedded base node.
Definition ast.h:3605
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:3608
NumberedReferenceReadNode.
Definition ast.h:3618
pm_node_t base
The embedded base node.
Definition ast.h:3620
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:3623
OptionalKeywordParameterNode.
Definition ast.h:3633
pm_node_t base
The embedded base node.
Definition ast.h:3635
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:3638
struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:3644
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:3641
OptionalParameterNode.
Definition ast.h:3654
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:3662
struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:3668
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:3659
pm_node_t base
The embedded base node.
Definition ast.h:3656
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:3665
OrNode.
Definition ast.h:3678
struct pm_node * left
OrNode::left.
Definition ast.h:3683
struct pm_node * right
OrNode::right.
Definition ast.h:3686
pm_node_t base
The embedded base node.
Definition ast.h:3680
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:3689
ParametersNode.
Definition ast.h:3699
struct pm_node * rest
ParametersNode::rest.
Definition ast.h:3710
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:3704
struct pm_block_parameter_node * block
ParametersNode::block.
Definition ast.h:3722
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:3707
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:3713
pm_node_t base
The embedded base node.
Definition ast.h:3701
struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:3719
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:3716
ParenthesesNode.
Definition ast.h:3732
struct pm_node * body
ParenthesesNode::body.
Definition ast.h:3737
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:3743
pm_node_t base
The embedded base node.
Definition ast.h:3734
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:3740
PinnedExpressionNode.
Definition ast.h:3753
pm_node_t base
The embedded base node.
Definition ast.h:3755
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:3767
struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:3758
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:3764
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:3761
PinnedVariableNode.
Definition ast.h:3777
struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:3782
pm_node_t base
The embedded base node.
Definition ast.h:3779
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:3785
PostExecutionNode.
Definition ast.h:3795
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:3809
struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:3800
pm_node_t base
The embedded base node.
Definition ast.h:3797
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:3806
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:3803
PreExecutionNode.
Definition ast.h:3819
struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:3824
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:3833
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:3830
pm_node_t base
The embedded base node.
Definition ast.h:3821
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:3827
ProgramNode.
Definition ast.h:3843
struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:3851
pm_node_t base
The embedded base node.
Definition ast.h:3845
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:3848
RangeNode.
Definition ast.h:3863
struct pm_node * right
RangeNode::right.
Definition ast.h:3871
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:3874
pm_node_t base
The embedded base node.
Definition ast.h:3865
struct pm_node * left
RangeNode::left.
Definition ast.h:3868
RationalNode.
Definition ast.h:3884
struct pm_node * numeric
RationalNode::numeric.
Definition ast.h:3889
pm_node_t base
The embedded base node.
Definition ast.h:3886
RedoNode.
Definition ast.h:3899
pm_node_t base
The embedded base node.
Definition ast.h:3901
RegularExpressionNode.
Definition ast.h:3923
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:3934
pm_node_t base
The embedded base node.
Definition ast.h:3925
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:3937
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:3928
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:3931
RequiredKeywordParameterNode.
Definition ast.h:3947
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:3955
pm_node_t base
The embedded base node.
Definition ast.h:3949
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:3952
RequiredParameterNode.
Definition ast.h:3965
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:3970
pm_node_t base
The embedded base node.
Definition ast.h:3967
RescueModifierNode.
Definition ast.h:3980
pm_node_t base
The embedded base node.
Definition ast.h:3982
struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:3991
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:3988
struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:3985
RescueNode.
Definition ast.h:4001
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:4006
struct pm_rescue_node * consequent
RescueNode::consequent.
Definition ast.h:4021
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:4012
struct pm_node * reference
RescueNode::reference.
Definition ast.h:4015
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:4009
struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:4018
pm_node_t base
The embedded base node.
Definition ast.h:4003
RestParameterNode.
Definition ast.h:4031
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:4036
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:4039
pm_node_t base
The embedded base node.
Definition ast.h:4033
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:4042
RetryNode.
Definition ast.h:4052
pm_node_t base
The embedded base node.
Definition ast.h:4054
ReturnNode.
Definition ast.h:4064
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:4069
pm_node_t base
The embedded base node.
Definition ast.h:4066
struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:4072
SelfNode.
Definition ast.h:4082
pm_node_t base
The embedded base node.
Definition ast.h:4084
SingletonClassNode.
Definition ast.h:4094
pm_node_t base
The embedded base node.
Definition ast.h:4096
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:4099
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:4105
struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:4108
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:4114
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:4102
struct pm_node * body
SingletonClassNode::body.
Definition ast.h:4111
SourceEncodingNode.
Definition ast.h:4124
pm_node_t base
The embedded base node.
Definition ast.h:4126
SourceFileNode.
Definition ast.h:4136
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:4141
pm_node_t base
The embedded base node.
Definition ast.h:4138
SourceLineNode.
Definition ast.h:4151
pm_node_t base
The embedded base node.
Definition ast.h:4153
SplatNode.
Definition ast.h:4163
struct pm_node * expression
SplatNode::expression.
Definition ast.h:4171
pm_node_t base
The embedded base node.
Definition ast.h:4165
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:4168
StatementsNode.
Definition ast.h:4181
struct pm_node_list body
StatementsNode::body.
Definition ast.h:4186
pm_node_t base
The embedded base node.
Definition ast.h:4183
StringNode.
Definition ast.h:4200
pm_node_t base
The embedded base node.
Definition ast.h:4202
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:4214
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:4208
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:4211
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:4205
A generic string type that can have various ownership semantics.
Definition pm_string.h:30
SuperNode.
Definition ast.h:4224
struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:4235
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:4232
pm_node_t base
The embedded base node.
Definition ast.h:4226
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:4229
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:4238
struct pm_node * block
SuperNode::block.
Definition ast.h:4241
SymbolNode.
Definition ast.h:4255
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:4260
pm_location_t value_loc
SymbolNode::value_loc.
Definition ast.h:4263
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:4266
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:4269
pm_node_t base
The embedded base node.
Definition ast.h:4257
This struct represents a token in the Ruby source.
Definition ast.h:528
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:536
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:533
pm_token_type_t type
The type of the token.
Definition ast.h:530
TrueNode.
Definition ast.h:4279
pm_node_t base
The embedded base node.
Definition ast.h:4281
UndefNode.
Definition ast.h:4291
pm_node_t base
The embedded base node.
Definition ast.h:4293
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:4299
struct pm_node_list names
UndefNode::names.
Definition ast.h:4296
UnlessNode.
Definition ast.h:4309
struct pm_else_node * consequent
UnlessNode::consequent.
Definition ast.h:4326
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition ast.h:4314
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:4320
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:4329
pm_node_t base
The embedded base node.
Definition ast.h:4311
struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:4323
struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:4317
UntilNode.
Definition ast.h:4341
struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:4355
pm_location_t closing_loc
UntilNode::closing_loc.
Definition ast.h:4349
struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:4352
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition ast.h:4346
pm_node_t base
The embedded base node.
Definition ast.h:4343
WhenNode.
Definition ast.h:4365
struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:4376
pm_node_t base
The embedded base node.
Definition ast.h:4367
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition ast.h:4370
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:4373
WhileNode.
Definition ast.h:4388
pm_location_t closing_loc
WhileNode::closing_loc.
Definition ast.h:4396
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition ast.h:4393
struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:4402
pm_node_t base
The embedded base node.
Definition ast.h:4390
struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:4399
XStringNode.
Definition ast.h:4415
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:4426
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:4420
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:4423
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:4429
pm_node_t base
The embedded base node.
Definition ast.h:4417
YieldNode.
Definition ast.h:4439
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:4444
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:4447
pm_node_t base
The embedded base node.
Definition ast.h:4441
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:4453
struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:4450