Prism Ruby parser
Loading...
Searching...
No Matches
ast.h
Go to the documentation of this file.
1/* :markup: markdown */
2
3/*----------------------------------------------------------------------------*/
4/* This file is generated by the templates/template.rb script and should not */
5/* be modified manually. See */
6/* templates/include/prism/ast.h.erb */
7/* if you are looking to modify the */
8/* template */
9/*----------------------------------------------------------------------------*/
10
18#ifndef PRISM_AST_H
19#define PRISM_AST_H
20
21#include "prism/defines.h"
25
26#include <assert.h>
27#include <stddef.h>
28#include <stdint.h>
29
33typedef enum pm_token_type {
36
39
42
45
48
51
54
57
60
63
66
69
72
75
78
81
84
87
90
93
96
99
102
105
108
111
114
117
120
123
126
129
132
135
138
141
144
147
150
153
156
159
162
165
168
171
174
177
180
183
186
189
192
195
198
201
204
207
210
213
216
219
222
225
228
231
234
237
240
243
246
249
252
255
258
261
264
267
270
273
276
279
282
285
288
291
294
297
300
303
306
309
312
315
318
321
324
327
330
333
336
339
342
345
348
351
354
357
360
363
366
369
372
375
378
381
384
387
390
393
396
399
402
405
408
411
414
417
420
423
426
429
432
435
438
441
444
447
450
453
456
459
462
465
468
471
474
477
480
483
486
489
492
495
498
501
504
507
510
513
516
519
523
528typedef struct {
531
533 const uint8_t *start;
534
536 const uint8_t *end;
537} pm_token_t;
538
547typedef struct {
549 uint32_t start;
550
552 uint32_t length;
554
555struct pm_node;
556
560typedef struct pm_node_list {
562 size_t size;
563
565 size_t capacity;
566
568 struct pm_node **nodes;
570
577
580
583
586
589
592
595
598
601
604
607
610
613
616
619
622
625
628
631
634
637
640
643
646
649
652
655
658
661
664
667
670
673
676
679
682
685
688
691
694
697
700
703
706
709
712
715
718
721
724
727
730
733
736
739
742
745
748
751
754
757
760
763
766
769
772
775
778
781
784
787
790
793
796
799
802
805
808
811
814
817
820
823
826
829
832
835
838
841
844
847
850
853
856
859
862
865
868
871
874
877
880
883
886
889
892
895
898
901
904
907
910
913
916
919
922
925
928
931
934
937
940
943
946
949
952
955
958
961
964
967
970
973
976
979
982
985
988
991
994
997
1000
1003
1006
1009
1012
1015
1018
1021
1024
1027
1031
1036typedef uint16_t pm_node_type_t;
1037
1042typedef uint16_t pm_node_flags_t;
1043
1048static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1049static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1050
1080
1084#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1085
1090#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1091
1095#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1096
1100#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1101
1105#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1106
1110#ifdef _MSC_VER
1111#define PM_NODE_ALIGNAS __declspec(align(8))
1112#else
1113#define PM_NODE_ALIGNAS PRISM_ALIGNAS(PRISM_ALIGNOF(void *))
1114#endif
1115
1162
1221
1268
1321
1355
1406
1501
1557
1594
1622
1701
1738
1768
1839
1892
1969
2006
2099
2239
2342
2435
2506
2553
2622
2691
2778
2835
2877
2914
2942
2964
3025
3062
3104
3141
3173
3239
3276
3308
3345
3401
3429
3451
3512
3590
3627
3659
3691
3718
3754
3771
3872
3907
3931
4020
4039
4057
4086
4123
4165
4202
4230
4252
4313
4363
4454
4565
4587
4615
4641
4678
4741
4809
4872
4928
4965
5007
5044
5072
5094
5155
5185
5230
5275
5311
5343
5375
5392
5409
5434
5470
5517
5559
5606
5648
5693
5723
5801
5851
5883
5969
5996
6010
6057
6144
6246
6273
6290
6318
6340
6370
6406
6447
6500
6553
6588
6645
6682
6719
6756
6780
6837
6878
6895
6945
6976
7002
7034
7091
7127
7144
7171
7188
7218
7265
7282
7312
7329
7356
7378
7427
7476
7521
7538
7565
7652
7700
7739
7787
7828
7865
7887
7894
7895 PM_ARRAY_NODE_FLAGS_LAST,
7897
7916
7929
7948
7961
7971
7975typedef enum pm_loop_flags {
7978
7979 PM_LOOP_FLAGS_LAST,
7981
7988
7989 PM_PARAMETER_FLAGS_LAST,
7991
8001
8005typedef enum pm_range_flags {
8008
8009 PM_RANGE_FLAGS_LAST,
8011
8051
8067
8086
8102
8109#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
8110
8111#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.
#define PM_NODE_ALIGNAS
The alignment required for a child node within a parent node.
Definition ast.h:1113
struct pm_self_node pm_self_node_t
SelfNode.
struct pm_numbered_reference_read_node pm_numbered_reference_read_node_t
NumberedReferenceReadNode.
struct pm_embedded_variable_node pm_embedded_variable_node_t
EmbeddedVariableNode.
struct pm_class_variable_write_node pm_class_variable_write_node_t
ClassVariableWriteNode.
struct pm_interpolated_string_node pm_interpolated_string_node_t
InterpolatedStringNode.
struct pm_class_variable_or_write_node pm_class_variable_or_write_node_t
ClassVariableOrWriteNode.
struct pm_optional_keyword_parameter_node pm_optional_keyword_parameter_node_t
OptionalKeywordParameterNode.
struct pm_call_or_write_node pm_call_or_write_node_t
CallOrWriteNode.
struct pm_call_node pm_call_node_t
CallNode.
struct pm_class_variable_read_node pm_class_variable_read_node_t
ClassVariableReadNode.
struct pm_match_required_node pm_match_required_node_t
MatchRequiredNode.
struct pm_shareable_constant_node pm_shareable_constant_node_t
ShareableConstantNode.
struct pm_constant_and_write_node pm_constant_and_write_node_t
ConstantAndWriteNode.
pm_interpolated_string_node_flags
Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
Definition ast.h:7952
@ PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal; only ...
Definition ast.h:7957
@ PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal; only for...
Definition ast.h:7954
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:8005
@ PM_RANGE_FLAGS_EXCLUDE_END
... operator
Definition ast.h:8007
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:574
@ PM_DEFINED_NODE
DefinedNode.
Definition ast.h:711
@ PM_PRE_EXECUTION_NODE
PreExecutionNode.
Definition ast.h:933
@ PM_RETRY_NODE
RetryNode.
Definition ast.h:966
@ PM_REDO_NODE
RedoNode.
Definition ast.h:945
@ PM_CONSTANT_PATH_WRITE_NODE
ConstantPathWriteNode.
Definition ast.h:696
@ PM_INDEX_AND_WRITE_NODE
IndexAndWriteNode.
Definition ast.h:789
@ PM_SOURCE_LINE_NODE
SourceLineNode.
Definition ast.h:987
@ PM_UNLESS_NODE
UnlessNode.
Definition ast.h:1011
@ PM_EMBEDDED_VARIABLE_NODE
EmbeddedVariableNode.
Definition ast.h:720
@ PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOperatorWriteNode.
Definition ast.h:753
@ PM_CALL_NODE
CallNode.
Definition ast.h:630
@ PM_NIL_NODE
NilNode.
Definition ast.h:897
@ PM_GLOBAL_VARIABLE_READ_NODE
GlobalVariableReadNode.
Definition ast.h:759
@ PM_RATIONAL_NODE
RationalNode.
Definition ast.h:942
@ PM_YIELD_NODE
YieldNode.
Definition ast.h:1026
@ PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableAndWriteNode.
Definition ast.h:852
@ PM_CONSTANT_AND_WRITE_NODE
ConstantAndWriteNode.
Definition ast.h:672
@ PM_CLASS_NODE
ClassNode.
Definition ast.h:651
@ PM_FIND_PATTERN_NODE
FindPatternNode.
Definition ast.h:729
@ PM_CALL_OPERATOR_WRITE_NODE
CallOperatorWriteNode.
Definition ast.h:633
@ PM_MATCH_WRITE_NODE
MatchWriteNode.
Definition ast.h:879
@ PM_ARRAY_NODE
ArrayNode.
Definition ast.h:591
@ PM_CONSTANT_PATH_TARGET_NODE
ConstantPathTargetNode.
Definition ast.h:693
@ PM_PROGRAM_NODE
ProgramNode.
Definition ast.h:936
@ PM_OR_NODE
OrNode.
Definition ast.h:915
@ PM_MULTI_WRITE_NODE
MultiWriteNode.
Definition ast.h:891
@ PM_IF_NODE
IfNode.
Definition ast.h:774
@ PM_IMPLICIT_NODE
ImplicitNode.
Definition ast.h:780
@ PM_ARGUMENTS_NODE
ArgumentsNode.
Definition ast.h:588
@ PM_FORWARDING_SUPER_NODE
ForwardingSuperNode.
Definition ast.h:747
@ PM_WHILE_NODE
WhileNode.
Definition ast.h:1020
@ PM_INTERPOLATED_STRING_NODE
InterpolatedStringNode.
Definition ast.h:828
@ PM_FALSE_NODE
FalseNode.
Definition ast.h:726
@ PM_FORWARDING_PARAMETER_NODE
ForwardingParameterNode.
Definition ast.h:744
@ PM_BLOCK_LOCAL_VARIABLE_NODE
BlockLocalVariableNode.
Definition ast.h:612
@ PM_HASH_NODE
HashNode.
Definition ast.h:768
@ PM_UNTIL_NODE
UntilNode.
Definition ast.h:1014
@ PM_MATCH_PREDICATE_NODE
MatchPredicateNode.
Definition ast.h:873
@ PM_X_STRING_NODE
XStringNode.
Definition ast.h:1023
@ PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
LocalVariableOperatorWriteNode.
Definition ast.h:855
@ PM_LOCAL_VARIABLE_OR_WRITE_NODE
LocalVariableOrWriteNode.
Definition ast.h:858
@ PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableAndWriteNode.
Definition ast.h:801
@ PM_GLOBAL_VARIABLE_TARGET_NODE
GlobalVariableTargetNode.
Definition ast.h:762
@ PM_AND_NODE
AndNode.
Definition ast.h:585
@ PM_CONSTANT_TARGET_NODE
ConstantTargetNode.
Definition ast.h:702
@ PM_IT_LOCAL_VARIABLE_READ_NODE
ItLocalVariableReadNode.
Definition ast.h:837
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
Definition ast.h:681
@ PM_IN_NODE
InNode.
Definition ast.h:786
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
Definition ast.h:618
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
Definition ast.h:642
@ PM_SOURCE_FILE_NODE
SourceFileNode.
Definition ast.h:984
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
Definition ast.h:900
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
Definition ast.h:687
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
Definition ast.h:888
@ PM_SPLAT_NODE
SplatNode.
Definition ast.h:990
@ PM_LAMBDA_NODE
LambdaNode.
Definition ast.h:849
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
Definition ast.h:663
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
Definition ast.h:951
@ PM_CALL_TARGET_NODE
CallTargetNode.
Definition ast.h:639
@ PM_ELSE_NODE
ElseNode.
Definition ast.h:714
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
Definition ast.h:822
@ PM_WHEN_NODE
WhenNode.
Definition ast.h:1017
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
Definition ast.h:903
@ PM_SYMBOL_NODE
SymbolNode.
Definition ast.h:1002
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
Definition ast.h:957
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
Definition ast.h:579
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
Definition ast.h:876
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
Definition ast.h:741
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
Definition ast.h:603
@ PM_SCOPE_NODE
A special kind of node used for compilation.
Definition ast.h:1029
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
Definition ast.h:609
@ PM_MISSING_NODE
MissingNode.
Definition ast.h:882
@ PM_SELF_NODE
SelfNode.
Definition ast.h:972
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
Definition ast.h:783
@ PM_TRUE_NODE
TrueNode.
Definition ast.h:1005
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
Definition ast.h:600
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
Definition ast.h:654
@ PM_RANGE_NODE
RangeNode.
Definition ast.h:939
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
Definition ast.h:804
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
Definition ast.h:861
@ PM_SHAREABLE_CONSTANT_NODE
ShareableConstantNode.
Definition ast.h:975
@ PM_NEXT_NODE
NextNode.
Definition ast.h:894
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
Definition ast.h:807
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
Definition ast.h:948
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
Definition ast.h:660
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
Definition ast.h:621
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
Definition ast.h:705
@ PM_HASH_PATTERN_NODE
HashPatternNode.
Definition ast.h:771
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
Definition ast.h:792
@ PM_UNDEF_NODE
UndefNode.
Definition ast.h:1008
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
Definition ast.h:582
@ PM_ENSURE_NODE
EnsureNode.
Definition ast.h:723
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
Definition ast.h:867
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
Definition ast.h:978
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
Definition ast.h:843
@ PM_PARENTHESES_NODE
ParenthesesNode.
Definition ast.h:921
@ PM_FOR_NODE
ForNode.
Definition ast.h:738
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
Definition ast.h:669
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
Definition ast.h:930
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
Definition ast.h:675
@ PM_RETURN_NODE
ReturnNode.
Definition ast.h:969
@ PM_MODULE_NODE
ModuleNode.
Definition ast.h:885
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
Definition ast.h:594
@ PM_SUPER_NODE
SuperNode.
Definition ast.h:999
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
Definition ast.h:870
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
Definition ast.h:684
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
Definition ast.h:831
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
Definition ast.h:627
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
Definition ast.h:909
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
Definition ast.h:666
@ PM_CASE_MATCH_NODE
CaseMatchNode.
Definition ast.h:645
@ PM_BREAK_NODE
BreakNode.
Definition ast.h:624
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
Definition ast.h:636
@ PM_IMAGINARY_NODE
ImaginaryNode.
Definition ast.h:777
@ PM_DEF_NODE
DefNode.
Definition ast.h:708
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
Definition ast.h:699
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
Definition ast.h:765
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
Definition ast.h:981
@ PM_BEGIN_NODE
BeginNode.
Definition ast.h:606
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
Definition ast.h:834
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
Definition ast.h:810
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
Definition ast.h:732
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
Definition ast.h:927
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
Definition ast.h:954
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
Definition ast.h:816
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
Definition ast.h:813
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
Definition ast.h:750
@ PM_CASE_NODE
CaseNode.
Definition ast.h:648
@ PM_RESCUE_NODE
RescueNode.
Definition ast.h:960
@ PM_FLOAT_NODE
FloatNode.
Definition ast.h:735
@ PM_ASSOC_NODE
AssocNode.
Definition ast.h:597
@ PM_IT_PARAMETERS_NODE
ItParametersNode.
Definition ast.h:840
@ PM_INTEGER_NODE
IntegerNode.
Definition ast.h:819
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
Definition ast.h:864
@ PM_STRING_NODE
StringNode.
Definition ast.h:996
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
Definition ast.h:795
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
Definition ast.h:576
@ PM_PARAMETERS_NODE
ParametersNode.
Definition ast.h:918
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
Definition ast.h:906
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
Definition ast.h:690
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
Definition ast.h:756
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
Definition ast.h:678
@ PM_STATEMENTS_NODE
StatementsNode.
Definition ast.h:993
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
Definition ast.h:912
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
Definition ast.h:924
@ PM_BLOCK_NODE
BlockNode.
Definition ast.h:615
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
Definition ast.h:657
@ PM_REST_PARAMETER_NODE
RestParameterNode.
Definition ast.h:963
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
Definition ast.h:717
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
Definition ast.h:825
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
Definition ast.h:798
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
Definition ast.h:846
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:8090
@ PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8092
@ PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:8098
@ PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8095
struct pm_it_parameters_node pm_it_parameters_node_t
ItParametersNode.
struct pm_constant_path_node pm_constant_path_node_t
ConstantPathNode.
struct pm_local_variable_write_node pm_local_variable_write_node_t
LocalVariableWriteNode.
pm_string_flags
Flags for string nodes.
Definition ast.h:8071
@ PM_STRING_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal
Definition ast.h:8079
@ PM_STRING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8076
@ PM_STRING_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal
Definition ast.h:8082
@ PM_STRING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8073
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:7869
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT
if the arguments contain a splat
Definition ast.h:7880
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING
if the arguments contain forwarding
Definition ast.h:7871
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS
if the arguments contain keywords
Definition ast.h:7874
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
if the arguments contain a keyword splat
Definition ast.h:7877
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS
if the arguments contain multiple splats
Definition ast.h:7883
enum pm_symbol_flags pm_symbol_flags_t
Flags for symbol nodes.
enum pm_encoding_flags pm_encoding_flags_t
Flags for nodes that have unescaped content.
struct pm_local_variable_and_write_node pm_local_variable_and_write_node_t
LocalVariableAndWriteNode.
struct pm_parameters_node pm_parameters_node_t
ParametersNode.
enum pm_integer_base_flags pm_integer_base_flags_t
Flags for integer nodes that correspond to the base of the integer.
struct pm_lambda_node pm_lambda_node_t
LambdaNode.
struct pm_module_node pm_module_node_t
ModuleNode.
struct pm_case_node pm_case_node_t
CaseNode.
struct pm_in_node pm_in_node_t
InNode.
struct pm_if_node pm_if_node_t
IfNode.
struct pm_constant_path_write_node pm_constant_path_write_node_t
ConstantPathWriteNode.
struct pm_pre_execution_node pm_pre_execution_node_t
PreExecutionNode.
struct pm_rescue_modifier_node pm_rescue_modifier_node_t
RescueModifierNode.
struct pm_splat_node pm_splat_node_t
SplatNode.
struct pm_match_write_node pm_match_write_node_t
MatchWriteNode.
enum pm_call_node_flags pm_call_node_flags_t
Flags for call nodes.
struct pm_multi_write_node pm_multi_write_node_t
MultiWriteNode.
struct pm_local_variable_operator_write_node pm_local_variable_operator_write_node_t
LocalVariableOperatorWriteNode.
struct pm_block_argument_node pm_block_argument_node_t
BlockArgumentNode.
enum pm_shareable_constant_node_flags pm_shareable_constant_node_flags_t
Flags for shareable constant nodes.
struct pm_interpolated_x_string_node pm_interpolated_x_string_node_t
InterpolatedXStringNode.
struct pm_constant_write_node pm_constant_write_node_t
ConstantWriteNode.
struct pm_flip_flop_node pm_flip_flop_node_t
FlipFlopNode.
struct pm_required_keyword_parameter_node pm_required_keyword_parameter_node_t
RequiredKeywordParameterNode.
struct pm_no_keywords_parameter_node pm_no_keywords_parameter_node_t
NoKeywordsParameterNode.
struct pm_alias_global_variable_node pm_alias_global_variable_node_t
AliasGlobalVariableNode.
struct pm_post_execution_node pm_post_execution_node_t
PostExecutionNode.
pm_array_node_flags
Flags for array nodes.
Definition ast.h:7891
@ PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
if array contains splat nodes
Definition ast.h:7893
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.
enum pm_parentheses_node_flags pm_parentheses_node_flags_t
Flags for parentheses nodes.
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:7933
@ PM_INTEGER_BASE_FLAGS_HEXADECIMAL
0x prefix
Definition ast.h:7944
@ PM_INTEGER_BASE_FLAGS_OCTAL
0o or 0 prefix
Definition ast.h:7941
@ PM_INTEGER_BASE_FLAGS_DECIMAL
0d or no prefix
Definition ast.h:7938
@ PM_INTEGER_BASE_FLAGS_BINARY
0b prefix
Definition ast.h:7935
enum pm_interpolated_string_node_flags pm_interpolated_string_node_flags_t
Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
struct pm_rational_node pm_rational_node_t
RationalNode.
struct pm_class_node pm_class_node_t
ClassNode.
struct pm_pinned_expression_node pm_pinned_expression_node_t
PinnedExpressionNode.
struct pm_constant_operator_write_node pm_constant_operator_write_node_t
ConstantOperatorWriteNode.
enum pm_loop_flags pm_loop_flags_t
Flags for while and until loop nodes.
struct pm_ensure_node pm_ensure_node_t
EnsureNode.
struct pm_index_or_write_node pm_index_or_write_node_t
IndexOrWriteNode.
struct pm_forwarding_parameter_node pm_forwarding_parameter_node_t
ForwardingParameterNode.
struct pm_constant_or_write_node pm_constant_or_write_node_t
ConstantOrWriteNode.
struct pm_index_operator_write_node pm_index_operator_write_node_t
IndexOperatorWriteNode.
struct pm_when_node pm_when_node_t
WhenNode.
enum pm_token_type pm_token_type_t
This enum represents every type of token in the Ruby source.
struct pm_super_node pm_super_node_t
SuperNode.
struct pm_range_node pm_range_node_t
RangeNode.
struct pm_and_node pm_and_node_t
AndNode.
enum pm_arguments_node_flags pm_arguments_node_flags_t
Flags for arguments nodes.
struct pm_constant_path_and_write_node pm_constant_path_and_write_node_t
ConstantPathAndWriteNode.
pm_parentheses_node_flags
Flags for parentheses nodes.
Definition ast.h:7995
@ PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS
parentheses that contain multiple potentially void statements
Definition ast.h:7997
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:7901
@ PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
a call that ignores method visibility
Definition ast.h:7912
@ PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
&.
Definition ast.h:7903
@ PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
a call that is an attribute write, so the value being written should be returned
Definition ast.h:7909
@ PM_CALL_NODE_FLAGS_VARIABLE_CALL
a call that could have been a local variable
Definition ast.h:7906
struct pm_constant_read_node pm_constant_read_node_t
ConstantReadNode.
struct pm_match_predicate_node pm_match_predicate_node_t
MatchPredicateNode.
struct pm_or_node pm_or_node_t
OrNode.
struct pm_case_match_node pm_case_match_node_t
CaseMatchNode.
struct pm_call_and_write_node pm_call_and_write_node_t
CallAndWriteNode.
pm_shareable_constant_node_flags
Flags for shareable constant nodes.
Definition ast.h:8055
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING
constant writes that should be modified with shareable constant value experimental everything
Definition ast.h:8060
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL
constant writes that should be modified with shareable constant value literal
Definition ast.h:8057
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY
constant writes that should be modified with shareable constant value experimental copy
Definition ast.h:8063
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:1036
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:7965
@ PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS
a keyword hash which only has AssocNode elements all with symbol keys, which means the elements can b...
Definition ast.h:7967
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:8015
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8044
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:8047
@ PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
e - forces the EUC-JP encoding
Definition ast.h:8029
@ PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
i - ignores the case of characters when matching
Definition ast.h:8017
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8041
@ PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
n - forces the ASCII-8BIT encoding
Definition ast.h:8032
@ PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
m - allows $ to match the end of lines within strings
Definition ast.h:8023
@ PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
x - ignores whitespace and allows comments in regular expressions
Definition ast.h:8020
@ PM_REGULAR_EXPRESSION_FLAGS_ONCE
o - only interpolates values into the regular expression once
Definition ast.h:8026
@ PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
s - forces the Windows-31J encoding
Definition ast.h:8035
@ PM_REGULAR_EXPRESSION_FLAGS_UTF_8
u - forces the UTF-8 encoding
Definition ast.h:8038
struct pm_forwarding_arguments_node pm_forwarding_arguments_node_t
ForwardingArgumentsNode.
struct pm_instance_variable_read_node pm_instance_variable_read_node_t
InstanceVariableReadNode.
struct pm_constant_target_node pm_constant_target_node_t
ConstantTargetNode.
struct pm_node pm_node_t
This is the base structure that represents a node in the syntax tree.
struct pm_defined_node pm_defined_node_t
DefinedNode.
struct pm_it_local_variable_read_node pm_it_local_variable_read_node_t
ItLocalVariableReadNode.
struct pm_interpolated_symbol_node pm_interpolated_symbol_node_t
InterpolatedSymbolNode.
struct pm_class_variable_target_node pm_class_variable_target_node_t
ClassVariableTargetNode.
struct pm_def_node pm_def_node_t
DefNode.
struct pm_singleton_class_node pm_singleton_class_node_t
SingletonClassNode.
uint16_t pm_node_flags_t
These are the flags embedded in the node struct.
Definition ast.h:1042
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:33
@ PM_TOKEN_STAR_STAR
**
Definition ast.h:467
@ PM_TOKEN_DOT_DOT_DOT
the .
Definition ast.h:164
@ PM_TOKEN_MINUS_EQUAL
-=
Definition ast.h:395
@ PM_TOKEN_IGNORED_NEWLINE
an ignored newline
Definition ast.h:233
@ PM_TOKEN_BANG_EQUAL
!=
Definition ast.h:110
@ PM_TOKEN_KEYWORD___FILE__
__FILE__
Definition ast.h:359
@ PM_TOKEN_KEYWORD_WHEN
when
Definition ast.h:71
@ PM_TOKEN_FLOAT
a floating point number
Definition ast.h:197
@ PM_TOKEN_PLUS_EQUAL
+=
Definition ast.h:443
@ PM_TOKEN_DOT_DOT
the .
Definition ast.h:161
@ PM_TOKEN_UDOT_DOT
unary .
Definition ast.h:494
@ PM_TOKEN_AMPERSAND_DOT
&.
Definition ast.h:95
@ PM_TOKEN_NEWLINE
a newline character outside of other tokens
Definition ast.h:74
@ PM_TOKEN_NUMBERED_REFERENCE
a numbered reference to a capture group in the previous regular expression match
Definition ast.h:401
@ PM_TOKEN_AMPERSAND
&
Definition ast.h:86
@ PM_TOKEN_KEYWORD_YIELD
yield
Definition ast.h:353
@ PM_TOKEN_KEYWORD_END
end
Definition ast.h:56
@ PM_TOKEN_LAMBDA_BEGIN
{
Definition ast.h:371
@ PM_TOKEN_KEYWORD_UNTIL_MODIFIER
until in the modifier form
Definition ast.h:344
@ PM_TOKEN_EQUAL_EQUAL_EQUAL
===
Definition ast.h:188
@ PM_TOKEN_INTEGER_RATIONAL
an integer with a rational suffix
Definition ast.h:245
@ PM_TOKEN_USTAR
unary *
Definition ast.h:509
@ PM_TOKEN_TILDE
~ or ~@
Definition ast.h:485
@ PM_TOKEN_KEYWORD___ENCODING__
__ENCODING__
Definition ast.h:356
@ PM_TOKEN_REGEXP_END
the end of a regular expression
Definition ast.h:452
@ PM_TOKEN_KEYWORD_UNTIL
until
Definition ast.h:341
@ PM_TOKEN_COMMA
,
Definition ast.h:41
@ PM_TOKEN_MAXIMUM
The maximum token value.
Definition ast.h:521
@ PM_TOKEN_GREATER
>
Definition ast.h:212
@ PM_TOKEN_INTEGER
an integer (any base)
Definition ast.h:239
@ 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:179
@ PM_TOKEN_KEYWORD_UNLESS_MODIFIER
unless in the modifier form
Definition ast.h:338
@ PM_TOKEN_INTEGER_RATIONAL_IMAGINARY
an integer with a rational and imaginary suffix
Definition ast.h:248
@ PM_TOKEN_FLOAT_RATIONAL_IMAGINARY
a floating pointer number with a rational and imaginary suffix
Definition ast.h:206
@ PM_TOKEN_BRACKET_LEFT_RIGHT
[]
Definition ast.h:125
@ PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL
&&=
Definition ast.h:92
@ PM_TOKEN_KEYWORD_CLASS
class
Definition ast.h:269
@ PM_TOKEN_KEYWORD_BEGIN
begin
Definition ast.h:257
@ PM_TOKEN_USTAR_STAR
unary **
Definition ast.h:512
@ PM_TOKEN_GREATER_GREATER_EQUAL
>>=
Definition ast.h:221
@ PM_TOKEN_PERCENT_EQUAL
%=
Definition ast.h:413
@ PM_TOKEN_PERCENT
%
Definition ast.h:410
@ PM_TOKEN_KEYWORD_IN
in
Definition ast.h:62
@ PM_TOKEN_BANG
! or !@
Definition ast.h:107
@ PM_TOKEN_KEYWORD_NOT
not
Definition ast.h:305
@ PM_TOKEN_BRACKET_LEFT_ARRAY
[ for the beginning of an array
Definition ast.h:122
@ PM_TOKEN_HEREDOC_END
the end of a heredoc
Definition ast.h:224
@ PM_TOKEN_HEREDOC_START
the start of a heredoc
Definition ast.h:227
@ PM_TOKEN_KEYWORD_DEFINED
defined?
Definition ast.h:275
@ PM_TOKEN_UCOLON_COLON
unary ::
Definition ast.h:491
@ PM_TOKEN_LABEL_END
the end of a label
Definition ast.h:368
@ PM_TOKEN_EQUAL_GREATER
=>
Definition ast.h:191
@ PM_TOKEN_KEYWORD_UNLESS
unless
Definition ast.h:335
@ PM_TOKEN_KEYWORD_ENSURE
ensure
Definition ast.h:59
@ PM_TOKEN_AMPERSAND_EQUAL
&=
Definition ast.h:98
@ PM_TOKEN_EQUAL_EQUAL
==
Definition ast.h:185
@ PM_TOKEN_UPLUS
+@
Definition ast.h:506
@ PM_TOKEN_FLOAT_IMAGINARY
a floating pointer number with an imaginary suffix
Definition ast.h:200
@ PM_TOKEN_KEYWORD_BEGIN_UPCASE
BEGIN.
Definition ast.h:260
@ PM_TOKEN_LESS_EQUAL_GREATER
<=>
Definition ast.h:380
@ PM_TOKEN_KEYWORD_RESCUE_MODIFIER
rescue in the modifier form
Definition ast.h:314
@ PM_TOKEN_MINUS_GREATER
->
Definition ast.h:398
@ PM_TOKEN_KEYWORD_FALSE
false
Definition ast.h:284
@ PM_TOKEN_PIPE_PIPE_EQUAL
||=
Definition ast.h:437
@ PM_TOKEN_KEYWORD_IF
if
Definition ast.h:290
@ PM_TOKEN_EMBEXPR_BEGIN
#{
Definition ast.h:176
@ PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES
( for a parentheses node
Definition ast.h:407
@ PM_TOKEN_EMBDOC_END
=end
Definition ast.h:170
@ PM_TOKEN_KEYWORD_ELSE
else
Definition ast.h:50
@ PM_TOKEN_BACK_REFERENCE
a back reference
Definition ast.h:104
@ PM_TOKEN_BRACKET_LEFT
[
Definition ast.h:119
@ PM_TOKEN_EOF
final token in the file
Definition ast.h:35
@ PM_TOKEN_PIPE_PIPE
||
Definition ast.h:434
@ PM_TOKEN_KEYWORD_NIL
nil
Definition ast.h:302
@ PM_TOKEN_PERCENT_UPPER_W
%W
Definition ast.h:428
@ PM_TOKEN_KEYWORD_RETURN
return
Definition ast.h:320
@ PM_TOKEN_CLASS_VARIABLE
a class variable
Definition ast.h:143
@ PM_TOKEN_PIPE
|
Definition ast.h:80
@ PM_TOKEN_PARENTHESIS_LEFT
(
Definition ast.h:404
@ PM_TOKEN_BANG_TILDE
!~
Definition ast.h:113
@ PM_TOKEN_DOT
the .
Definition ast.h:158
@ PM_TOKEN_PARENTHESIS_RIGHT
)
Definition ast.h:77
@ PM_TOKEN_KEYWORD_RESCUE
rescue
Definition ast.h:65
@ PM_TOKEN_INSTANCE_VARIABLE
an instance variable
Definition ast.h:236
@ PM_TOKEN_PIPE_EQUAL
|=
Definition ast.h:431
@ PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL
[]=
Definition ast.h:128
@ PM_TOKEN_UAMPERSAND
unary &
Definition ast.h:488
@ PM_TOKEN_MINUS
-
Definition ast.h:392
@ PM_TOKEN_CONSTANT
a constant
Definition ast.h:155
@ PM_TOKEN_IDENTIFIER
an identifier
Definition ast.h:230
@ PM_TOKEN_EMBDOC_BEGIN
=begin
Definition ast.h:167
@ PM_TOKEN_STAR_EQUAL
*=
Definition ast.h:464
@ PM_TOKEN_KEYWORD_OR
or
Definition ast.h:308
@ PM_TOKEN_KEYWORD_AND
and
Definition ast.h:254
@ PM_TOKEN_LESS
<
Definition ast.h:374
@ PM_TOKEN_KEYWORD_BREAK
break
Definition ast.h:263
@ PM_TOKEN_PERCENT_LOWER_W
%w
Definition ast.h:419
@ PM_TOKEN_SYMBOL_BEGIN
the beginning of a symbol
Definition ast.h:482
@ PM_TOKEN_METHOD_NAME
a method name
Definition ast.h:389
@ PM_TOKEN_KEYWORD_CASE
case
Definition ast.h:266
@ 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:203
@ PM_TOKEN_LESS_LESS_EQUAL
<<=
Definition ast.h:386
@ PM_TOKEN_EMBDOC_LINE
a line inside of embedded documentation
Definition ast.h:173
@ PM_TOKEN_KEYWORD_SUPER
super
Definition ast.h:326
@ PM_TOKEN_KEYWORD_DO
do
Definition ast.h:47
@ PM_TOKEN_KEYWORD_REDO
redo
Definition ast.h:311
@ PM_TOKEN_EQUAL_TILDE
=~
Definition ast.h:194
@ PM_TOKEN_EMBEXPR_END
}
Definition ast.h:44
@ PM_TOKEN_KEYWORD_END_UPCASE
END.
Definition ast.h:281
@ PM_TOKEN_KEYWORD___LINE__
__LINE__
Definition ast.h:362
@ 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:116
@ PM_TOKEN_COLON_COLON
::
Definition ast.h:149
@ PM_TOKEN_GREATER_GREATER
>>
Definition ast.h:218
@ PM_TOKEN_PERCENT_LOWER_X
%x
Definition ast.h:422
@ PM_TOKEN_KEYWORD_SELF
self
Definition ast.h:323
@ PM_TOKEN_PERCENT_LOWER_I
%i
Definition ast.h:416
@ PM_TOKEN_KEYWORD_ALIAS
alias
Definition ast.h:251
@ PM_TOKEN_GLOBAL_VARIABLE
a global variable
Definition ast.h:209
@ PM_TOKEN_KEYWORD_IF_MODIFIER
if in the modifier form
Definition ast.h:293
@ PM_TOKEN_SLASH
/
Definition ast.h:455
@ PM_TOKEN_KEYWORD_RETRY
retry
Definition ast.h:317
@ PM_TOKEN_COLON
:
Definition ast.h:146
@ PM_TOKEN_KEYWORD_UNDEF
undef
Definition ast.h:332
@ PM_TOKEN_BRACKET_RIGHT
]
Definition ast.h:131
@ PM_TOKEN_KEYWORD_FOR
for
Definition ast.h:287
@ PM_TOKEN_KEYWORD_THEN
then
Definition ast.h:68
@ PM_TOKEN_QUESTION_MARK
?
Definition ast.h:446
@ 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:347
@ PM_TOKEN_EQUAL
=
Definition ast.h:182
@ PM_TOKEN_KEYWORD_DEF
def
Definition ast.h:272
@ PM_TOKEN_UDOT_DOT_DOT
unary .
Definition ast.h:497
@ PM_TOKEN_STAR
Definition ast.h:461
@ PM_TOKEN_KEYWORD_WHILE_MODIFIER
while in the modifier form
Definition ast.h:350
@ PM_TOKEN_KEYWORD_TRUE
true
Definition ast.h:329
@ PM_TOKEN_BRACE_RIGHT
}
Definition ast.h:38
@ PM_TOKEN_SEMICOLON
;
Definition ast.h:83
@ PM_TOKEN_REGEXP_BEGIN
the beginning of a regular expression
Definition ast.h:449
@ PM_TOKEN_CARET
^
Definition ast.h:134
@ PM_TOKEN_PERCENT_UPPER_I
%I
Definition ast.h:425
@ PM_TOKEN_KEYWORD_DO_LOOP
do keyword for a predicate in a while, until, or for loop
Definition ast.h:278
@ PM_TOKEN_KEYWORD_MODULE
module
Definition ast.h:296
@ PM_TOKEN_PLUS
+
Definition ast.h:440
@ PM_TOKEN_KEYWORD_NEXT
next
Definition ast.h:299
@ PM_TOKEN_BACKTICK
`
Definition ast.h:101
@ PM_TOKEN_INTEGER_IMAGINARY
an integer with an imaginary suffix
Definition ast.h:242
@ PM_TOKEN_LABEL
a label
Definition ast.h:365
@ PM_TOKEN_STAR_STAR_EQUAL
**=
Definition ast.h:470
@ PM_TOKEN_CHARACTER_LITERAL
a character literal
Definition ast.h:140
@ PM_TOKEN_AMPERSAND_AMPERSAND
&&
Definition ast.h:89
@ PM_TOKEN_UMINUS
-@
Definition ast.h:500
@ PM_TOKEN_LESS_LESS
<<
Definition ast.h:383
@ PM_TOKEN_GREATER_EQUAL
>=
Definition ast.h:215
@ PM_TOKEN_COMMENT
a comment
Definition ast.h:152
@ PM_TOKEN_CARET_EQUAL
^=
Definition ast.h:137
@ PM_TOKEN_KEYWORD_ELSIF
elsif
Definition ast.h:53
@ PM_TOKEN_STRING_BEGIN
the beginning of a string
Definition ast.h:473
@ PM_TOKEN_LESS_EQUAL
<=
Definition ast.h:377
struct pm_global_variable_or_write_node pm_global_variable_or_write_node_t
GlobalVariableOrWriteNode.
enum pm_array_node_flags pm_array_node_flags_t
Flags for array nodes.
struct pm_rescue_node pm_rescue_node_t
RescueNode.
struct pm_array_node pm_array_node_t
ArrayNode.
struct pm_while_node pm_while_node_t
WhileNode.
struct pm_global_variable_write_node pm_global_variable_write_node_t
GlobalVariableWriteNode.
struct pm_instance_variable_or_write_node pm_instance_variable_or_write_node_t
InstanceVariableOrWriteNode.
struct pm_source_line_node pm_source_line_node_t
SourceLineNode.
pm_parameter_flags
Flags for parameter nodes.
Definition ast.h:7985
@ PM_PARAMETER_FLAGS_REPEATED_PARAMETER
a parameter name that has been repeated in the method signature
Definition ast.h:7987
pm_encoding_flags
Flags for nodes that have unescaped content.
Definition ast.h:7920
@ PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:7925
@ PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:7922
struct pm_interpolated_match_last_line_node pm_interpolated_match_last_line_node_t
InterpolatedMatchLastLineNode.
struct pm_numbered_parameters_node pm_numbered_parameters_node_t
NumberedParametersNode.
struct pm_class_variable_operator_write_node pm_class_variable_operator_write_node_t
ClassVariableOperatorWriteNode.
struct pm_next_node pm_next_node_t
NextNode.
struct pm_unless_node pm_unless_node_t
UnlessNode.
struct pm_interpolated_regular_expression_node pm_interpolated_regular_expression_node_t
InterpolatedRegularExpressionNode.
struct pm_instance_variable_target_node pm_instance_variable_target_node_t
InstanceVariableTargetNode.
enum pm_parameter_flags pm_parameter_flags_t
Flags for parameter nodes.
struct pm_string_node pm_string_node_t
StringNode.
struct pm_float_node pm_float_node_t
FloatNode.
struct pm_global_variable_operator_write_node pm_global_variable_operator_write_node_t
GlobalVariableOperatorWriteNode.
struct pm_instance_variable_operator_write_node pm_instance_variable_operator_write_node_t
InstanceVariableOperatorWriteNode.
pm_loop_flags
Flags for while and until loop nodes.
Definition ast.h:7975
@ PM_LOOP_FLAGS_BEGIN_MODIFIER
a loop after a begin statement, so the body is executed first before the condition
Definition ast.h:7977
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.
Macro definitions used throughout the prism library.
A data structure that stores a set of strings.
uint32_t pm_constant_id_t
A constant id is a unique identifier for a constant in the constant pool.
Definition pm_constant_pool.h:31
This module provides functions for working with arbitrary-sized integers.
A generic string type that can have various ownership semantics.
AliasGlobalVariableNode.
Definition ast.h:1128
PM_NODE_ALIGNAS struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1140
pm_node_t base
The embedded base node.
Definition ast.h:1130
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1160
PM_NODE_ALIGNAS struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1150
AliasMethodNode.
Definition ast.h:1175
PM_NODE_ALIGNAS struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1209
pm_node_t base
The embedded base node.
Definition ast.h:1177
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1219
PM_NODE_ALIGNAS struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1193
AlternationPatternNode.
Definition ast.h:1234
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1266
PM_NODE_ALIGNAS struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1246
pm_node_t base
The embedded base node.
Definition ast.h:1236
PM_NODE_ALIGNAS struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1256
AndNode.
Definition ast.h:1281
PM_NODE_ALIGNAS struct pm_node * left
AndNode::left.
Definition ast.h:1296
PM_NODE_ALIGNAS struct pm_node * right
AndNode::right.
Definition ast.h:1309
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1319
pm_node_t base
The embedded base node.
Definition ast.h:1283
ArgumentsNode.
Definition ast.h:1341
pm_node_t base
The embedded base node.
Definition ast.h:1343
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1353
ArrayNode.
Definition ast.h:1371
pm_node_t base
The embedded base node.
Definition ast.h:1373
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1404
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1380
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1392
ArrayPatternNode.
Definition ast.h:1431
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1459
PM_NODE_ALIGNAS struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1469
PM_NODE_ALIGNAS struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1449
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1489
pm_node_t base
The embedded base node.
Definition ast.h:1433
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1499
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1479
AssocNode.
Definition ast.h:1514
pm_node_t base
The embedded base node.
Definition ast.h:1516
PM_NODE_ALIGNAS struct pm_node * value
AssocNode::value.
Definition ast.h:1545
PM_NODE_ALIGNAS struct pm_node * key
AssocNode::key.
Definition ast.h:1532
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1555
AssocSplatNode.
Definition ast.h:1570
pm_node_t base
The embedded base node.
Definition ast.h:1572
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1592
PM_NODE_ALIGNAS struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1582
BackReferenceReadNode.
Definition ast.h:1607
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1620
pm_node_t base
The embedded base node.
Definition ast.h:1609
BeginNode.
Definition ast.h:1637
PM_NODE_ALIGNAS struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1679
PM_NODE_ALIGNAS struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1689
PM_NODE_ALIGNAS struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1659
PM_NODE_ALIGNAS struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1669
pm_node_t base
The embedded base node.
Definition ast.h:1639
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1699
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1649
BlockArgumentNode.
Definition ast.h:1714
PM_NODE_ALIGNAS struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1726
pm_node_t base
The embedded base node.
Definition ast.h:1716
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1736
BlockLocalVariableNode.
Definition ast.h:1754
pm_node_t base
The embedded base node.
Definition ast.h:1756
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1766
BlockNode.
Definition ast.h:1781
pm_node_t base
The embedded base node.
Definition ast.h:1783
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1837
PM_NODE_ALIGNAS struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1807
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1827
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1793
PM_NODE_ALIGNAS struct pm_node * body
BlockNode::body.
Definition ast.h:1817
BlockParameterNode.
Definition ast.h:1856
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1890
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1879
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1869
pm_node_t base
The embedded base node.
Definition ast.h:1858
BlockParametersNode.
Definition ast.h:1909
pm_node_t base
The embedded base node.
Definition ast.h:1911
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1939
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1925
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1967
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1953
BreakNode.
Definition ast.h:1982
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2004
pm_node_t base
The embedded base node.
Definition ast.h:1984
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:1994
CallAndWriteNode.
Definition ast.h:2025
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2087
PM_NODE_ALIGNAS struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2037
pm_node_t base
The embedded base node.
Definition ast.h:2027
PM_NODE_ALIGNAS struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2097
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2047
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2057
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2067
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2077
CallNode.
Definition ast.h:2133
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2194
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2214
pm_constant_id_t name
CallNode::name.
Definition ast.h:2174
pm_node_t base
The embedded base node.
Definition ast.h:2135
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2204
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2227
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2164
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2184
PM_NODE_ALIGNAS struct pm_node * block
CallNode::block.
Definition ast.h:2237
PM_NODE_ALIGNAS struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2151
CallOperatorWriteNode.
Definition ast.h:2258
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2300
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2320
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2330
pm_node_t base
The embedded base node.
Definition ast.h:2260
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2310
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2290
PM_NODE_ALIGNAS struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2270
PM_NODE_ALIGNAS struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2340
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2280
CallOrWriteNode.
Definition ast.h:2361
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2423
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2383
PM_NODE_ALIGNAS struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2373
pm_node_t base
The embedded base node.
Definition ast.h:2363
PM_NODE_ALIGNAS struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2433
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2413
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2403
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2393
CallTargetNode.
Definition ast.h:2462
pm_node_t base
The embedded base node.
Definition ast.h:2464
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2494
PM_NODE_ALIGNAS struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2474
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2484
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2504
CapturePatternNode.
Definition ast.h:2519
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2551
pm_node_t base
The embedded base node.
Definition ast.h:2521
PM_NODE_ALIGNAS struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2531
PM_NODE_ALIGNAS struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2541
CaseMatchNode.
Definition ast.h:2568
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2620
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2590
pm_node_t base
The embedded base node.
Definition ast.h:2570
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2610
PM_NODE_ALIGNAS struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2580
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2600
CaseNode.
Definition ast.h:2637
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2669
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2659
PM_NODE_ALIGNAS struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2649
pm_node_t base
The embedded base node.
Definition ast.h:2639
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2679
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2689
ClassNode.
Definition ast.h:2704
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2721
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2767
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2711
PM_NODE_ALIGNAS struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2746
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2736
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2776
pm_node_t base
The embedded base node.
Definition ast.h:2706
PM_NODE_ALIGNAS struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2726
PM_NODE_ALIGNAS struct pm_node * body
ClassNode::body.
Definition ast.h:2757
ClassVariableAndWriteNode.
Definition ast.h:2791
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2833
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2803
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2823
pm_node_t base
The embedded base node.
Definition ast.h:2793
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2813
ClassVariableOperatorWriteNode.
Definition ast.h:2848
pm_node_t base
The embedded base node.
Definition ast.h:2850
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2855
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2870
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2860
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2875
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2865
ClassVariableOrWriteNode.
Definition ast.h:2890
pm_node_t base
The embedded base node.
Definition ast.h:2892
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2912
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2902
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2907
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2897
ClassVariableReadNode.
Definition ast.h:2927
pm_node_t base
The embedded base node.
Definition ast.h:2929
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2940
ClassVariableTargetNode.
Definition ast.h:2955
pm_node_t base
The embedded base node.
Definition ast.h:2957
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2962
ClassVariableWriteNode.
Definition ast.h:2977
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:3000
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3013
pm_node_t base
The embedded base node.
Definition ast.h:2979
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3023
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:2990
ConstantAndWriteNode.
Definition ast.h:3038
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3055
PM_NODE_ALIGNAS struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3060
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3050
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3045
pm_node_t base
The embedded base node.
Definition ast.h:3040
A list of constant IDs.
Definition pm_constant_pool.h:36
ConstantOperatorWriteNode.
Definition ast.h:3075
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3082
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3087
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3102
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3092
PM_NODE_ALIGNAS struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3097
pm_node_t base
The embedded base node.
Definition ast.h:3077
ConstantOrWriteNode.
Definition ast.h:3117
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3134
PM_NODE_ALIGNAS struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3139
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3129
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3124
pm_node_t base
The embedded base node.
Definition ast.h:3119
ConstantPathAndWriteNode.
Definition ast.h:3154
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3161
pm_node_t base
The embedded base node.
Definition ast.h:3156
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3171
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3166
ConstantPathNode.
Definition ast.h:3186
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3224
pm_node_t base
The embedded base node.
Definition ast.h:3188
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3204
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3237
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3211
ConstantPathOperatorWriteNode.
Definition ast.h:3252
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3259
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3274
pm_node_t base
The embedded base node.
Definition ast.h:3254
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3264
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3269
ConstantPathOrWriteNode.
Definition ast.h:3289
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3301
pm_node_t base
The embedded base node.
Definition ast.h:3291
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3306
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3296
ConstantPathTargetNode.
Definition ast.h:3321
pm_node_t base
The embedded base node.
Definition ast.h:3323
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3338
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3333
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3328
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3343
ConstantPathWriteNode.
Definition ast.h:3364
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3399
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3389
pm_node_t base
The embedded base node.
Definition ast.h:3366
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3379
ConstantReadNode.
Definition ast.h:3414
pm_node_t base
The embedded base node.
Definition ast.h:3416
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3427
ConstantTargetNode.
Definition ast.h:3442
pm_node_t base
The embedded base node.
Definition ast.h:3444
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3449
ConstantWriteNode.
Definition ast.h:3464
pm_node_t base
The embedded base node.
Definition ast.h:3466
PM_NODE_ALIGNAS struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3500
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3477
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3487
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3510
DefNode.
Definition ast.h:3526
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3588
pm_constant_id_t name
DefNode::name.
Definition ast.h:3533
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3538
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3578
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3548
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3583
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3563
pm_node_t base
The embedded base node.
Definition ast.h:3528
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3573
PM_NODE_ALIGNAS struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3543
PM_NODE_ALIGNAS struct pm_node * body
DefNode::body.
Definition ast.h:3553
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3568
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3558
DefinedNode.
Definition ast.h:3603
PM_NODE_ALIGNAS struct pm_node * value
DefinedNode::value.
Definition ast.h:3615
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3610
pm_node_t base
The embedded base node.
Definition ast.h:3605
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3620
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3625
ElseNode.
Definition ast.h:3640
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3647
pm_node_t base
The embedded base node.
Definition ast.h:3642
PM_NODE_ALIGNAS struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3652
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3657
EmbeddedStatementsNode.
Definition ast.h:3672
PM_NODE_ALIGNAS struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3684
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3689
pm_node_t base
The embedded base node.
Definition ast.h:3674
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3679
EmbeddedVariableNode.
Definition ast.h:3704
PM_NODE_ALIGNAS struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3716
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3711
pm_node_t base
The embedded base node.
Definition ast.h:3706
EnsureNode.
Definition ast.h:3735
PM_NODE_ALIGNAS struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3747
pm_node_t base
The embedded base node.
Definition ast.h:3737
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3742
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3752
FalseNode.
Definition ast.h:3767
pm_node_t base
The embedded base node.
Definition ast.h:3769
FindPatternNode.
Definition ast.h:3793
PM_NODE_ALIGNAS struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3818
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3857
pm_node_t base
The embedded base node.
Definition ast.h:3795
PM_NODE_ALIGNAS struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3805
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3831
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3870
PM_NODE_ALIGNAS struct pm_node * right
FindPatternNode::right.
Definition ast.h:3844
FlipFlopNode.
Definition ast.h:3888
PM_NODE_ALIGNAS struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3895
pm_node_t base
The embedded base node.
Definition ast.h:3890
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3905
PM_NODE_ALIGNAS struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3900
FloatNode.
Definition ast.h:3920
double value
FloatNode::value.
Definition ast.h:3929
pm_node_t base
The embedded base node.
Definition ast.h:3922
ForNode.
Definition ast.h:3944
PM_NODE_ALIGNAS struct pm_node * index
ForNode::index.
Definition ast.h:3956
PM_NODE_ALIGNAS struct pm_node * collection
ForNode::collection.
Definition ast.h:3966
pm_node_t base
The embedded base node.
Definition ast.h:3946
PM_NODE_ALIGNAS struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:3978
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4018
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:3988
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4008
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:3998
ForwardingArgumentsNode.
Definition ast.h:4035
pm_node_t base
The embedded base node.
Definition ast.h:4037
ForwardingParameterNode.
Definition ast.h:4053
pm_node_t base
The embedded base node.
Definition ast.h:4055
ForwardingSuperNode.
Definition ast.h:4075
pm_node_t base
The embedded base node.
Definition ast.h:4077
PM_NODE_ALIGNAS struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4084
GlobalVariableAndWriteNode.
Definition ast.h:4099
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4116
pm_node_t base
The embedded base node.
Definition ast.h:4101
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4121
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4111
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4106
GlobalVariableOperatorWriteNode.
Definition ast.h:4136
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4158
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4143
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4163
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4148
pm_node_t base
The embedded base node.
Definition ast.h:4138
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4153
GlobalVariableOrWriteNode.
Definition ast.h:4178
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4185
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4190
pm_node_t base
The embedded base node.
Definition ast.h:4180
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4195
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4200
GlobalVariableReadNode.
Definition ast.h:4215
pm_node_t base
The embedded base node.
Definition ast.h:4217
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4228
GlobalVariableTargetNode.
Definition ast.h:4243
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4250
pm_node_t base
The embedded base node.
Definition ast.h:4245
GlobalVariableWriteNode.
Definition ast.h:4265
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4288
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4311
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4278
pm_node_t base
The embedded base node.
Definition ast.h:4267
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4301
HashNode.
Definition ast.h:4326
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4351
pm_node_t base
The embedded base node.
Definition ast.h:4328
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4361
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4338
HashPatternNode.
Definition ast.h:4385
PM_NODE_ALIGNAS struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4400
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4410
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4439
pm_node_t base
The embedded base node.
Definition ast.h:4387
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4452
PM_NODE_ALIGNAS struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4426
IfNode.
Definition ast.h:4473
PM_NODE_ALIGNAS struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4505
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4563
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4487
PM_NODE_ALIGNAS struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4532
pm_node_t base
The embedded base node.
Definition ast.h:4475
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4518
PM_NODE_ALIGNAS struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4551
ImaginaryNode.
Definition ast.h:4578
pm_node_t base
The embedded base node.
Definition ast.h:4580
PM_NODE_ALIGNAS struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4585
ImplicitNode.
Definition ast.h:4606
pm_node_t base
The embedded base node.
Definition ast.h:4608
PM_NODE_ALIGNAS struct pm_node * value
ImplicitNode::value.
Definition ast.h:4613
ImplicitRestNode.
Definition ast.h:4637
pm_node_t base
The embedded base node.
Definition ast.h:4639
InNode.
Definition ast.h:4654
PM_NODE_ALIGNAS struct pm_node * pattern
InNode::pattern.
Definition ast.h:4661
PM_NODE_ALIGNAS struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4666
pm_node_t base
The embedded base node.
Definition ast.h:4656
pm_location_t then_loc
InNode::then_loc.
Definition ast.h:4676
pm_location_t in_loc
InNode::in_loc.
Definition ast.h:4671
IndexAndWriteNode.
Definition ast.h:4697
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4719
pm_node_t base
The embedded base node.
Definition ast.h:4699
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4734
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4724
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4714
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4709
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4729
PM_NODE_ALIGNAS struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4704
PM_NODE_ALIGNAS struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4739
IndexOperatorWriteNode.
Definition ast.h:4760
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4792
pm_node_t base
The embedded base node.
Definition ast.h:4762
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4767
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4802
PM_NODE_ALIGNAS struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4807
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4777
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4782
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4772
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4787
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4797
IndexOrWriteNode.
Definition ast.h:4828
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4855
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4840
pm_node_t base
The embedded base node.
Definition ast.h:4830
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4865
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4845
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4850
PM_NODE_ALIGNAS struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4870
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4835
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4860
IndexTargetNode.
Definition ast.h:4899
pm_node_t base
The embedded base node.
Definition ast.h:4901
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4916
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4921
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4926
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4911
PM_NODE_ALIGNAS struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4906
InstanceVariableAndWriteNode.
Definition ast.h:4941
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:4963
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:4958
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:4953
pm_node_t base
The embedded base node.
Definition ast.h:4943
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:4948
InstanceVariableOperatorWriteNode.
Definition ast.h:4978
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5005
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5000
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4995
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:4985
pm_node_t base
The embedded base node.
Definition ast.h:4980
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:4990
InstanceVariableOrWriteNode.
Definition ast.h:5020
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5037
pm_node_t base
The embedded base node.
Definition ast.h:5022
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5032
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5027
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5042
InstanceVariableReadNode.
Definition ast.h:5057
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5070
pm_node_t base
The embedded base node.
Definition ast.h:5059
InstanceVariableTargetNode.
Definition ast.h:5085
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5092
pm_node_t base
The embedded base node.
Definition ast.h:5087
InstanceVariableWriteNode.
Definition ast.h:5107
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5153
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5143
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5120
pm_node_t base
The embedded base node.
Definition ast.h:5109
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5130
IntegerNode.
Definition ast.h:5174
pm_integer_t value
IntegerNode::value.
Definition ast.h:5183
pm_node_t base
The embedded base node.
Definition ast.h:5176
A structure represents an arbitrary-sized integer.
Definition pm_integer.h:20
InterpolatedMatchLastLineNode.
Definition ast.h:5211
pm_node_t base
The embedded base node.
Definition ast.h:5213
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5228
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5223
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5218
InterpolatedRegularExpressionNode.
Definition ast.h:5256
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5263
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5268
pm_node_t base
The embedded base node.
Definition ast.h:5258
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5273
InterpolatedStringNode.
Definition ast.h:5292
pm_node_t base
The embedded base node.
Definition ast.h:5294
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5309
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5299
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5304
InterpolatedSymbolNode.
Definition ast.h:5324
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5336
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5341
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5331
pm_node_t base
The embedded base node.
Definition ast.h:5326
InterpolatedXStringNode.
Definition ast.h:5356
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5363
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5373
pm_node_t base
The embedded base node.
Definition ast.h:5358
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5368
ItLocalVariableReadNode.
Definition ast.h:5388
pm_node_t base
The embedded base node.
Definition ast.h:5390
ItParametersNode.
Definition ast.h:5405
pm_node_t base
The embedded base node.
Definition ast.h:5407
KeywordHashNode.
Definition ast.h:5425
pm_node_t base
The embedded base node.
Definition ast.h:5427
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5432
KeywordRestParameterNode.
Definition ast.h:5451
pm_node_t base
The embedded base node.
Definition ast.h:5453
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5458
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5468
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5463
LambdaNode.
Definition ast.h:5483
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5505
pm_node_t base
The embedded base node.
Definition ast.h:5485
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5500
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5495
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5490
PM_NODE_ALIGNAS struct pm_node * body
LambdaNode::body.
Definition ast.h:5515
PM_NODE_ALIGNAS struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5510
LocalVariableAndWriteNode.
Definition ast.h:5530
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5552
pm_node_t base
The embedded base node.
Definition ast.h:5532
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5557
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5542
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5547
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5537
LocalVariableOperatorWriteNode.
Definition ast.h:5572
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5604
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5599
pm_node_t base
The embedded base node.
Definition ast.h:5574
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5579
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5584
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5589
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5594
LocalVariableOrWriteNode.
Definition ast.h:5619
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5636
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5646
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5631
pm_node_t base
The embedded base node.
Definition ast.h:5621
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5641
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5626
LocalVariableReadNode.
Definition ast.h:5661
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5691
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5678
pm_node_t base
The embedded base node.
Definition ast.h:5663
LocalVariableTargetNode.
Definition ast.h:5709
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5721
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5716
pm_node_t base
The embedded base node.
Definition ast.h:5711
LocalVariableWriteNode.
Definition ast.h:5736
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5789
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5799
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5772
pm_node_t base
The embedded base node.
Definition ast.h:5738
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5762
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5749
This struct represents a slice in the source code, defined by an offset and a length.
Definition ast.h:547
uint32_t start
The offset of the location from the start of the source.
Definition ast.h:549
uint32_t length
The length of the location.
Definition ast.h:552
MatchLastLineNode.
Definition ast.h:5827
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5839
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5834
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5844
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5849
pm_node_t base
The embedded base node.
Definition ast.h:5829
MatchPredicateNode.
Definition ast.h:5864
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition ast.h:5881
PM_NODE_ALIGNAS struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5876
PM_NODE_ALIGNAS struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5871
pm_node_t base
The embedded base node.
Definition ast.h:5866
MatchRequiredNode.
Definition ast.h:5896
pm_node_t base
The embedded base node.
Definition ast.h:5898
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:5967
PM_NODE_ALIGNAS struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:5957
PM_NODE_ALIGNAS struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5908
MatchWriteNode.
Definition ast.h:5982
pm_node_t base
The embedded base node.
Definition ast.h:5984
PM_NODE_ALIGNAS struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:5989
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:5994
MissingNode.
Definition ast.h:6006
pm_node_t base
The embedded base node.
Definition ast.h:6008
ModuleNode.
Definition ast.h:6023
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6050
PM_NODE_ALIGNAS struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6040
PM_NODE_ALIGNAS struct pm_node * body
ModuleNode::body.
Definition ast.h:6045
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6030
pm_node_t base
The embedded base node.
Definition ast.h:6025
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6035
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6055
MultiTargetNode.
Definition ast.h:6075
PM_NODE_ALIGNAS struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6112
pm_node_t base
The embedded base node.
Definition ast.h:6077
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6132
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6092
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6142
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6122
MultiWriteNode.
Definition ast.h:6157
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6224
PM_NODE_ALIGNAS struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6194
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6204
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6234
PM_NODE_ALIGNAS struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6244
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6214
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6174
pm_node_t base
The embedded base node.
Definition ast.h:6159
NextNode.
Definition ast.h:6259
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6266
pm_node_t base
The embedded base node.
Definition ast.h:6261
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6271
NilNode.
Definition ast.h:6286
pm_node_t base
The embedded base node.
Definition ast.h:6288
NoKeywordsParameterNode.
Definition ast.h:6304
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6316
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6311
pm_node_t base
The embedded base node.
Definition ast.h:6306
A list of nodes in the source, most often used for lists of children.
Definition ast.h:560
size_t size
The number of nodes in the list.
Definition ast.h:562
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:568
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:565
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1055
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1060
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1072
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1066
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1078
NumberedParametersNode.
Definition ast.h:6331
pm_node_t base
The embedded base node.
Definition ast.h:6333
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6338
NumberedReferenceReadNode.
Definition ast.h:6353
pm_node_t base
The embedded base node.
Definition ast.h:6355
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6368
OptionalKeywordParameterNode.
Definition ast.h:6387
pm_node_t base
The embedded base node.
Definition ast.h:6389
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6394
PM_NODE_ALIGNAS struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6404
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6399
OptionalParameterNode.
Definition ast.h:6423
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6435
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6430
pm_node_t base
The embedded base node.
Definition ast.h:6425
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6440
PM_NODE_ALIGNAS struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6445
OrNode.
Definition ast.h:6460
PM_NODE_ALIGNAS struct pm_node * right
OrNode::right.
Definition ast.h:6488
pm_node_t base
The embedded base node.
Definition ast.h:6462
PM_NODE_ALIGNAS struct pm_node * left
OrNode::left.
Definition ast.h:6475
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6498
ParametersNode.
Definition ast.h:6514
PM_NODE_ALIGNAS struct pm_block_parameter_node * block
ParametersNode::block.
Definition ast.h:6551
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6521
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6526
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6536
pm_node_t base
The embedded base node.
Definition ast.h:6516
PM_NODE_ALIGNAS struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6531
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6541
PM_NODE_ALIGNAS struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6546
ParenthesesNode.
Definition ast.h:6569
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6586
pm_node_t base
The embedded base node.
Definition ast.h:6571
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6581
PM_NODE_ALIGNAS struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6576
PinnedExpressionNode.
Definition ast.h:6601
pm_node_t base
The embedded base node.
Definition ast.h:6603
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6643
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6633
PM_NODE_ALIGNAS struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6613
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6623
PinnedVariableNode.
Definition ast.h:6658
pm_node_t base
The embedded base node.
Definition ast.h:6660
PM_NODE_ALIGNAS struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6670
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6680
PostExecutionNode.
Definition ast.h:6695
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6717
pm_node_t base
The embedded base node.
Definition ast.h:6697
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6712
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6707
PM_NODE_ALIGNAS struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6702
PreExecutionNode.
Definition ast.h:6732
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6754
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6749
PM_NODE_ALIGNAS struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6739
pm_node_t base
The embedded base node.
Definition ast.h:6734
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6744
ProgramNode.
Definition ast.h:6766
pm_node_t base
The embedded base node.
Definition ast.h:6768
PM_NODE_ALIGNAS struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6778
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6773
RangeNode.
Definition ast.h:6799
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6835
pm_node_t base
The embedded base node.
Definition ast.h:6801
PM_NODE_ALIGNAS struct pm_node * right
RangeNode::right.
Definition ast.h:6828
PM_NODE_ALIGNAS struct pm_node * left
RangeNode::left.
Definition ast.h:6814
RationalNode.
Definition ast.h:6856
pm_node_t base
The embedded base node.
Definition ast.h:6858
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6876
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6867
RedoNode.
Definition ast.h:6891
pm_node_t base
The embedded base node.
Definition ast.h:6893
RegularExpressionNode.
Definition ast.h:6921
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:6938
pm_node_t base
The embedded base node.
Definition ast.h:6923
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:6943
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:6928
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:6933
RequiredKeywordParameterNode.
Definition ast.h:6962
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:6974
pm_node_t base
The embedded base node.
Definition ast.h:6964
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:6969
RequiredParameterNode.
Definition ast.h:6993
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7000
pm_node_t base
The embedded base node.
Definition ast.h:6995
RescueModifierNode.
Definition ast.h:7015
PM_NODE_ALIGNAS struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7022
pm_node_t base
The embedded base node.
Definition ast.h:7017
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7027
PM_NODE_ALIGNAS struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7032
RescueNode.
Definition ast.h:7052
PM_NODE_ALIGNAS struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7084
PM_NODE_ALIGNAS struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7089
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7059
PM_NODE_ALIGNAS struct pm_node * reference
RescueNode::reference.
Definition ast.h:7074
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7079
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7069
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7064
pm_node_t base
The embedded base node.
Definition ast.h:7054
RestParameterNode.
Definition ast.h:7108
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7115
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7120
pm_node_t base
The embedded base node.
Definition ast.h:7110
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7125
RetryNode.
Definition ast.h:7140
pm_node_t base
The embedded base node.
Definition ast.h:7142
ReturnNode.
Definition ast.h:7157
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7169
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7164
pm_node_t base
The embedded base node.
Definition ast.h:7159
SelfNode.
Definition ast.h:7184
pm_node_t base
The embedded base node.
Definition ast.h:7186
ShareableConstantNode.
Definition ast.h:7207
PM_NODE_ALIGNAS struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7216
pm_node_t base
The embedded base node.
Definition ast.h:7209
SingletonClassNode.
Definition ast.h:7231
PM_NODE_ALIGNAS struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7258
pm_node_t base
The embedded base node.
Definition ast.h:7233
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7238
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7248
PM_NODE_ALIGNAS struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7253
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7263
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7243
SourceEncodingNode.
Definition ast.h:7278
pm_node_t base
The embedded base node.
Definition ast.h:7280
SourceFileNode.
Definition ast.h:7301
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7310
pm_node_t base
The embedded base node.
Definition ast.h:7303
SourceLineNode.
Definition ast.h:7325
pm_node_t base
The embedded base node.
Definition ast.h:7327
SplatNode.
Definition ast.h:7342
pm_node_t base
The embedded base node.
Definition ast.h:7344
PM_NODE_ALIGNAS struct pm_node * expression
SplatNode::expression.
Definition ast.h:7354
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7349
StatementsNode.
Definition ast.h:7369
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7376
pm_node_t base
The embedded base node.
Definition ast.h:7371
StringNode.
Definition ast.h:7403
pm_node_t base
The embedded base node.
Definition ast.h:7405
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7425
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7415
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7420
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7410
A generic string type that can have various ownership semantics.
Definition pm_string.h:33
SuperNode.
Definition ast.h:7445
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7464
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7457
pm_node_t base
The embedded base node.
Definition ast.h:7447
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7452
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7469
PM_NODE_ALIGNAS struct pm_node * block
SuperNode::block.
Definition ast.h:7474
SymbolNode.
Definition ast.h:7497
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7504
pm_location_t value_loc
SymbolNode::value_loc.
Definition ast.h:7509
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7514
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7519
pm_node_t base
The embedded base node.
Definition ast.h:7499
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:7534
pm_node_t base
The embedded base node.
Definition ast.h:7536
UndefNode.
Definition ast.h:7551
pm_node_t base
The embedded base node.
Definition ast.h:7553
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7563
struct pm_node_list names
UndefNode::names.
Definition ast.h:7558
UnlessNode.
Definition ast.h:7581
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition ast.h:7596
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7619
PM_NODE_ALIGNAS struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7609
PM_NODE_ALIGNAS struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7630
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7650
PM_NODE_ALIGNAS struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7640
pm_node_t base
The embedded base node.
Definition ast.h:7583
UntilNode.
Definition ast.h:7671
pm_location_t closing_loc
UntilNode::closing_loc.
Definition ast.h:7688
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition ast.h:7678
pm_node_t base
The embedded base node.
Definition ast.h:7673
PM_NODE_ALIGNAS struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7698
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7683
PM_NODE_ALIGNAS struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7693
WhenNode.
Definition ast.h:7715
pm_node_t base
The embedded base node.
Definition ast.h:7717
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7732
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition ast.h:7722
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7737
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7727
WhileNode.
Definition ast.h:7758
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7785
pm_location_t closing_loc
WhileNode::closing_loc.
Definition ast.h:7775
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition ast.h:7765
pm_node_t base
The embedded base node.
Definition ast.h:7760
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7770
PM_NODE_ALIGNAS struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7780
XStringNode.
Definition ast.h:7804
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7821
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7811
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7816
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7826
pm_node_t base
The embedded base node.
Definition ast.h:7806
YieldNode.
Definition ast.h:7841
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7848
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7853
pm_node_t base
The embedded base node.
Definition ast.h:7843
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7863
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7858