Prism Ruby parser
Loading...
Searching...
No Matches
ast.h
Go to the documentation of this file.
1/*----------------------------------------------------------------------------*/
2/* This file is generated by the templates/template.rb script and should not */
3/* be modified manually. See */
4/* templates/include/prism/ast.h.erb */
5/* if you are looking to modify the */
6/* template */
7/*----------------------------------------------------------------------------*/
8
14#ifndef PRISM_AST_H
15#define PRISM_AST_H
16
17#include "prism/defines.h"
21
22#include <assert.h>
23#include <stddef.h>
24#include <stdint.h>
25
29typedef enum pm_token_type {
32
35
38
41
44
47
50
53
56
59
62
65
68
71
74
77
80
83
86
89
92
95
98
101
104
107
110
113
116
119
122
125
128
131
134
137
140
143
146
149
152
155
158
161
164
167
170
173
176
179
182
185
188
191
194
197
200
203
206
209
212
215
218
221
224
227
230
233
236
239
242
245
248
251
254
257
260
263
266
269
272
275
278
281
284
287
290
293
296
299
302
305
308
311
314
317
320
323
326
329
332
335
338
341
344
347
350
353
356
359
362
365
368
371
374
377
380
383
386
389
392
395
398
401
404
407
410
413
416
419
422
425
428
431
434
437
440
443
446
449
452
455
458
461
464
467
470
473
476
479
482
485
488
491
494
497
500
503
506
509
512
515
518
521
525
530typedef struct {
533
535 const uint8_t *start;
536
538 const uint8_t *end;
539} pm_token_t;
540
545typedef struct {
547 const uint8_t *start;
548
550 const uint8_t *end;
552
553struct pm_node;
554
558typedef struct pm_node_list {
560 size_t size;
561
563 size_t capacity;
564
566 struct pm_node **nodes;
568
575
578
581
584
587
590
593
596
599
602
605
608
611
614
617
620
623
626
629
632
635
638
641
644
647
650
653
656
659
662
665
668
671
674
677
680
683
686
689
692
695
698
701
704
707
710
713
716
719
722
725
728
731
734
737
740
743
746
749
752
755
758
761
764
767
770
773
776
779
782
785
788
791
794
797
800
803
806
809
812
815
818
821
824
827
830
833
836
839
842
845
848
851
854
857
860
863
866
869
872
875
878
881
884
887
890
893
896
899
902
905
908
911
914
917
920
923
926
929
932
935
938
941
944
947
950
953
956
959
962
965
968
971
974
977
980
983
986
989
992
995
998
1001
1004
1007
1010
1013
1016
1019
1022
1025
1029
1034typedef uint16_t pm_node_type_t;
1035
1040typedef uint16_t pm_node_flags_t;
1041
1046static const pm_node_flags_t PM_NODE_FLAG_NEWLINE = 0x1;
1047static const pm_node_flags_t PM_NODE_FLAG_STATIC_LITERAL = 0x2;
1048
1053#define PM_NODE_TYPE(node) ((enum pm_node_type) (node)->type)
1054
1058#define PM_NODE_TYPE_P(node, type) (PM_NODE_TYPE(node) == (type))
1059
1063#define PM_NODE_FLAG_P(node, flag) ((((pm_node_t *)(node))->flags & (flag)) != 0)
1064
1094
1142
1202
1250
1304
1339
1391
1476
1533
1571
1600
1680
1718
1749
1821
1875
1953
1991
2085
2212
2316
2410
2482
2530
2600
2670
2728
2786
2829
2867
2896
2919
2981
3019
3062
3100
3133
3200
3238
3271
3309
3366
3395
3418
3480
3559
3597
3630
3663
3691
3728
3746
3800
3836
3861
3951
3971
3990
4013
4051
4094
4132
4161
4184
4246
4297
4343
4455
4478
4507
4534
4572
4636
4705
4769
4826
4864
4907
4945
4974
4997
5059
5090
5136
5182
5219
5252
5285
5303
5321
5347
5384
5432
5475
5523
5566
5612
5640
5719
5770
5803
5836
5864
5879
5927
6015
6118
6146
6164
6193
6216
6247
6284
6326
6380
6434
6467
6505
6533
6571
6609
6634
6692
6734
6752
6803
6835
6862
6895
6948
6985
7003
7031
7049
7080
7128
7146
7177
7195
7223
7246
7296
7342
7388
7406
7434
7522
7571
7611
7660
7702
7740
7760
7768
7785
7796
7813
7824
7832
7840
7848
7856
7894
7908
7925
7939
7946#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
7947
7948#endif
struct pm_block_parameter_node pm_block_parameter_node_t
BlockParameterNode.
struct pm_call_target_node pm_call_target_node_t
CallTargetNode.
struct pm_else_node pm_else_node_t
ElseNode.
struct pm_assoc_node pm_assoc_node_t
AssocNode.
struct pm_undef_node pm_undef_node_t
UndefNode.
struct pm_class_variable_and_write_node pm_class_variable_and_write_node_t
ClassVariableAndWriteNode.
struct pm_index_and_write_node pm_index_and_write_node_t
IndexAndWriteNode.
struct pm_index_target_node pm_index_target_node_t
IndexTargetNode.
struct pm_local_variable_target_node pm_local_variable_target_node_t
LocalVariableTargetNode.
struct pm_constant_path_or_write_node pm_constant_path_or_write_node_t
ConstantPathOrWriteNode.
struct pm_missing_node pm_missing_node_t
MissingNode.
struct pm_embedded_statements_node pm_embedded_statements_node_t
EmbeddedStatementsNode.
struct pm_block_node pm_block_node_t
BlockNode.
struct pm_hash_pattern_node pm_hash_pattern_node_t
HashPatternNode.
struct pm_optional_parameter_node pm_optional_parameter_node_t
OptionalParameterNode.
struct pm_x_string_node pm_x_string_node_t
XStringNode.
struct pm_forwarding_super_node pm_forwarding_super_node_t
ForwardingSuperNode.
struct pm_self_node pm_self_node_t
SelfNode.
struct pm_numbered_reference_read_node pm_numbered_reference_read_node_t
NumberedReferenceReadNode.
struct pm_embedded_variable_node pm_embedded_variable_node_t
EmbeddedVariableNode.
struct pm_class_variable_write_node pm_class_variable_write_node_t
ClassVariableWriteNode.
struct pm_interpolated_string_node pm_interpolated_string_node_t
InterpolatedStringNode.
struct pm_class_variable_or_write_node pm_class_variable_or_write_node_t
ClassVariableOrWriteNode.
struct pm_optional_keyword_parameter_node pm_optional_keyword_parameter_node_t
OptionalKeywordParameterNode.
struct pm_call_or_write_node pm_call_or_write_node_t
CallOrWriteNode.
struct pm_call_node pm_call_node_t
CallNode.
struct pm_class_variable_read_node pm_class_variable_read_node_t
ClassVariableReadNode.
struct pm_match_required_node pm_match_required_node_t
MatchRequiredNode.
struct pm_shareable_constant_node pm_shareable_constant_node_t
ShareableConstantNode.
struct pm_constant_and_write_node pm_constant_and_write_node_t
ConstantAndWriteNode.
pm_interpolated_string_node_flags
Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
Definition ast.h:7817
@ 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:7822
@ 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:7819
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:7852
@ PM_RANGE_FLAGS_EXCLUDE_END
... operator
Definition ast.h:7854
struct pm_local_variable_or_write_node pm_local_variable_or_write_node_t
LocalVariableOrWriteNode.
struct pm_local_variable_read_node pm_local_variable_read_node_t
LocalVariableReadNode.
struct pm_global_variable_and_write_node pm_global_variable_and_write_node_t
GlobalVariableAndWriteNode.
struct pm_arguments_node pm_arguments_node_t
ArgumentsNode.
pm_node_type
This enum represents every type of node in the Ruby syntax tree.
Definition ast.h:572
@ PM_DEFINED_NODE
DefinedNode.
Definition ast.h:709
@ PM_PRE_EXECUTION_NODE
PreExecutionNode.
Definition ast.h:931
@ PM_RETRY_NODE
RetryNode.
Definition ast.h:964
@ PM_REDO_NODE
RedoNode.
Definition ast.h:943
@ PM_CONSTANT_PATH_WRITE_NODE
ConstantPathWriteNode.
Definition ast.h:694
@ PM_INDEX_AND_WRITE_NODE
IndexAndWriteNode.
Definition ast.h:787
@ PM_SOURCE_LINE_NODE
SourceLineNode.
Definition ast.h:985
@ PM_UNLESS_NODE
UnlessNode.
Definition ast.h:1009
@ PM_EMBEDDED_VARIABLE_NODE
EmbeddedVariableNode.
Definition ast.h:718
@ PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOperatorWriteNode.
Definition ast.h:751
@ PM_CALL_NODE
CallNode.
Definition ast.h:628
@ PM_NIL_NODE
NilNode.
Definition ast.h:895
@ PM_GLOBAL_VARIABLE_READ_NODE
GlobalVariableReadNode.
Definition ast.h:757
@ PM_RATIONAL_NODE
RationalNode.
Definition ast.h:940
@ PM_YIELD_NODE
YieldNode.
Definition ast.h:1024
@ PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableAndWriteNode.
Definition ast.h:850
@ PM_CONSTANT_AND_WRITE_NODE
ConstantAndWriteNode.
Definition ast.h:670
@ PM_CLASS_NODE
ClassNode.
Definition ast.h:649
@ PM_FIND_PATTERN_NODE
FindPatternNode.
Definition ast.h:727
@ PM_CALL_OPERATOR_WRITE_NODE
CallOperatorWriteNode.
Definition ast.h:631
@ PM_MATCH_WRITE_NODE
MatchWriteNode.
Definition ast.h:877
@ PM_ARRAY_NODE
ArrayNode.
Definition ast.h:589
@ PM_CONSTANT_PATH_TARGET_NODE
ConstantPathTargetNode.
Definition ast.h:691
@ PM_PROGRAM_NODE
ProgramNode.
Definition ast.h:934
@ PM_OR_NODE
OrNode.
Definition ast.h:913
@ PM_MULTI_WRITE_NODE
MultiWriteNode.
Definition ast.h:889
@ PM_IF_NODE
IfNode.
Definition ast.h:772
@ PM_IMPLICIT_NODE
ImplicitNode.
Definition ast.h:778
@ PM_ARGUMENTS_NODE
ArgumentsNode.
Definition ast.h:586
@ PM_FORWARDING_SUPER_NODE
ForwardingSuperNode.
Definition ast.h:745
@ PM_WHILE_NODE
WhileNode.
Definition ast.h:1018
@ PM_INTERPOLATED_STRING_NODE
InterpolatedStringNode.
Definition ast.h:826
@ PM_FALSE_NODE
FalseNode.
Definition ast.h:724
@ PM_FORWARDING_PARAMETER_NODE
ForwardingParameterNode.
Definition ast.h:742
@ PM_BLOCK_LOCAL_VARIABLE_NODE
BlockLocalVariableNode.
Definition ast.h:610
@ PM_HASH_NODE
HashNode.
Definition ast.h:766
@ PM_UNTIL_NODE
UntilNode.
Definition ast.h:1012
@ PM_MATCH_PREDICATE_NODE
MatchPredicateNode.
Definition ast.h:871
@ PM_X_STRING_NODE
XStringNode.
Definition ast.h:1021
@ PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
LocalVariableOperatorWriteNode.
Definition ast.h:853
@ PM_LOCAL_VARIABLE_OR_WRITE_NODE
LocalVariableOrWriteNode.
Definition ast.h:856
@ PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableAndWriteNode.
Definition ast.h:799
@ PM_GLOBAL_VARIABLE_TARGET_NODE
GlobalVariableTargetNode.
Definition ast.h:760
@ PM_AND_NODE
AndNode.
Definition ast.h:583
@ PM_CONSTANT_TARGET_NODE
ConstantTargetNode.
Definition ast.h:700
@ PM_IT_LOCAL_VARIABLE_READ_NODE
ItLocalVariableReadNode.
Definition ast.h:835
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
Definition ast.h:679
@ PM_IN_NODE
InNode.
Definition ast.h:784
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
Definition ast.h:616
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
Definition ast.h:640
@ PM_SOURCE_FILE_NODE
SourceFileNode.
Definition ast.h:982
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
Definition ast.h:898
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
Definition ast.h:685
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
Definition ast.h:886
@ PM_SPLAT_NODE
SplatNode.
Definition ast.h:988
@ PM_LAMBDA_NODE
LambdaNode.
Definition ast.h:847
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
Definition ast.h:661
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
Definition ast.h:949
@ PM_CALL_TARGET_NODE
CallTargetNode.
Definition ast.h:637
@ PM_ELSE_NODE
ElseNode.
Definition ast.h:712
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
Definition ast.h:820
@ PM_WHEN_NODE
WhenNode.
Definition ast.h:1015
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
Definition ast.h:901
@ PM_SYMBOL_NODE
SymbolNode.
Definition ast.h:1000
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
Definition ast.h:955
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
Definition ast.h:577
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
Definition ast.h:874
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
Definition ast.h:739
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
Definition ast.h:601
@ PM_SCOPE_NODE
A special kind of node used for compilation.
Definition ast.h:1027
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
Definition ast.h:607
@ PM_MISSING_NODE
MissingNode.
Definition ast.h:880
@ PM_SELF_NODE
SelfNode.
Definition ast.h:970
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
Definition ast.h:781
@ PM_TRUE_NODE
TrueNode.
Definition ast.h:1003
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
Definition ast.h:598
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
Definition ast.h:652
@ PM_RANGE_NODE
RangeNode.
Definition ast.h:937
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
Definition ast.h:802
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
Definition ast.h:859
@ PM_SHAREABLE_CONSTANT_NODE
ShareableConstantNode.
Definition ast.h:973
@ PM_NEXT_NODE
NextNode.
Definition ast.h:892
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
Definition ast.h:805
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
Definition ast.h:946
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
Definition ast.h:658
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
Definition ast.h:619
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
Definition ast.h:703
@ PM_HASH_PATTERN_NODE
HashPatternNode.
Definition ast.h:769
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
Definition ast.h:790
@ PM_UNDEF_NODE
UndefNode.
Definition ast.h:1006
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
Definition ast.h:580
@ PM_ENSURE_NODE
EnsureNode.
Definition ast.h:721
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
Definition ast.h:865
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
Definition ast.h:976
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
Definition ast.h:841
@ PM_PARENTHESES_NODE
ParenthesesNode.
Definition ast.h:919
@ PM_FOR_NODE
ForNode.
Definition ast.h:736
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
Definition ast.h:667
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
Definition ast.h:928
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
Definition ast.h:673
@ PM_RETURN_NODE
ReturnNode.
Definition ast.h:967
@ PM_MODULE_NODE
ModuleNode.
Definition ast.h:883
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
Definition ast.h:592
@ PM_SUPER_NODE
SuperNode.
Definition ast.h:997
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
Definition ast.h:868
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
Definition ast.h:682
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
Definition ast.h:829
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
Definition ast.h:625
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
Definition ast.h:907
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
Definition ast.h:664
@ PM_CASE_MATCH_NODE
CaseMatchNode.
Definition ast.h:643
@ PM_BREAK_NODE
BreakNode.
Definition ast.h:622
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
Definition ast.h:634
@ PM_IMAGINARY_NODE
ImaginaryNode.
Definition ast.h:775
@ PM_DEF_NODE
DefNode.
Definition ast.h:706
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
Definition ast.h:697
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
Definition ast.h:763
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
Definition ast.h:979
@ PM_BEGIN_NODE
BeginNode.
Definition ast.h:604
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
Definition ast.h:832
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
Definition ast.h:808
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
Definition ast.h:730
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
Definition ast.h:925
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
Definition ast.h:952
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
Definition ast.h:814
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
Definition ast.h:811
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
Definition ast.h:748
@ PM_CASE_NODE
CaseNode.
Definition ast.h:646
@ PM_RESCUE_NODE
RescueNode.
Definition ast.h:958
@ PM_FLOAT_NODE
FloatNode.
Definition ast.h:733
@ PM_ASSOC_NODE
AssocNode.
Definition ast.h:595
@ PM_IT_PARAMETERS_NODE
ItParametersNode.
Definition ast.h:838
@ PM_INTEGER_NODE
IntegerNode.
Definition ast.h:817
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
Definition ast.h:862
@ PM_STRING_NODE
StringNode.
Definition ast.h:994
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
Definition ast.h:793
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
Definition ast.h:574
@ PM_PARAMETERS_NODE
ParametersNode.
Definition ast.h:916
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
Definition ast.h:904
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
Definition ast.h:688
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
Definition ast.h:754
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
Definition ast.h:676
@ PM_STATEMENTS_NODE
StatementsNode.
Definition ast.h:991
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
Definition ast.h:910
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
Definition ast.h:922
@ PM_BLOCK_NODE
BlockNode.
Definition ast.h:613
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
Definition ast.h:655
@ PM_REST_PARAMETER_NODE
RestParameterNode.
Definition ast.h:961
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
Definition ast.h:715
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
Definition ast.h:823
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
Definition ast.h:796
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
Definition ast.h:844
struct pm_nil_node pm_nil_node_t
NilNode.
struct pm_begin_node pm_begin_node_t
BeginNode.
struct pm_statements_node pm_statements_node_t
StatementsNode.
struct pm_instance_variable_write_node pm_instance_variable_write_node_t
InstanceVariableWriteNode.
struct pm_false_node pm_false_node_t
FalseNode.
struct pm_keyword_hash_node pm_keyword_hash_node_t
KeywordHashNode.
struct pm_return_node pm_return_node_t
ReturnNode.
pm_symbol_flags
Flags for symbol nodes.
Definition ast.h:7929
@ PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:7931
@ PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:7937
@ PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:7934
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:7912
@ PM_STRING_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal
Definition ast.h:7920
@ PM_STRING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:7917
@ PM_STRING_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal
Definition ast.h:7923
@ PM_STRING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:7914
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:7744
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT
if the arguments contain a splat
Definition ast.h:7755
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING
if the arguments contain forwarding
Definition ast.h:7746
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS
if the arguments contain keywords
Definition ast.h:7749
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
if the arguments contain a keyword splat
Definition ast.h:7752
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS
if the arguments contain multiple splats
Definition ast.h:7758
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:7764
@ PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
if array contains splat nodes
Definition ast.h:7766
enum pm_string_flags pm_string_flags_t
Flags for string nodes.
struct pm_alias_method_node pm_alias_method_node_t
AliasMethodNode.
struct pm_keyword_rest_parameter_node pm_keyword_rest_parameter_node_t
KeywordRestParameterNode.
struct pm_global_variable_read_node pm_global_variable_read_node_t
GlobalVariableReadNode.
struct pm_back_reference_read_node pm_back_reference_read_node_t
BackReferenceReadNode.
enum pm_regular_expression_flags pm_regular_expression_flags_t
Flags for regular expression and match last line nodes.
struct pm_match_last_line_node pm_match_last_line_node_t
MatchLastLineNode.
struct pm_hash_node pm_hash_node_t
HashNode.
struct pm_block_local_variable_node pm_block_local_variable_node_t
BlockLocalVariableNode.
struct pm_multi_target_node pm_multi_target_node_t
MultiTargetNode.
pm_integer_base_flags
Flags for integer nodes that correspond to the base of the integer.
Definition ast.h:7800
@ PM_INTEGER_BASE_FLAGS_HEXADECIMAL
0x prefix
Definition ast.h:7811
@ PM_INTEGER_BASE_FLAGS_OCTAL
0o or 0 prefix
Definition ast.h:7808
@ PM_INTEGER_BASE_FLAGS_DECIMAL
0d or no prefix
Definition ast.h:7805
@ PM_INTEGER_BASE_FLAGS_BINARY
0b prefix
Definition ast.h:7802
enum pm_interpolated_string_node_flags pm_interpolated_string_node_flags_t
Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
struct pm_rational_node pm_rational_node_t
RationalNode.
struct pm_class_node pm_class_node_t
ClassNode.
struct pm_pinned_expression_node pm_pinned_expression_node_t
PinnedExpressionNode.
struct pm_constant_operator_write_node pm_constant_operator_write_node_t
ConstantOperatorWriteNode.
enum pm_loop_flags pm_loop_flags_t
Flags for while and until loop nodes.
struct pm_ensure_node pm_ensure_node_t
EnsureNode.
struct pm_index_or_write_node pm_index_or_write_node_t
IndexOrWriteNode.
struct pm_forwarding_parameter_node pm_forwarding_parameter_node_t
ForwardingParameterNode.
struct pm_constant_or_write_node pm_constant_or_write_node_t
ConstantOrWriteNode.
struct pm_index_operator_write_node pm_index_operator_write_node_t
IndexOperatorWriteNode.
struct pm_when_node pm_when_node_t
WhenNode.
enum pm_token_type pm_token_type_t
This enum represents every type of token in the Ruby source.
struct pm_super_node pm_super_node_t
SuperNode.
struct pm_range_node pm_range_node_t
RangeNode.
struct pm_and_node pm_and_node_t
AndNode.
enum pm_arguments_node_flags pm_arguments_node_flags_t
Flags for arguments nodes.
struct pm_constant_path_and_write_node pm_constant_path_and_write_node_t
ConstantPathAndWriteNode.
struct pm_rest_parameter_node pm_rest_parameter_node_t
RestParameterNode.
struct pm_assoc_splat_node pm_assoc_splat_node_t
AssocSplatNode.
pm_call_node_flags
Flags for call nodes.
Definition ast.h:7772
@ PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
a call that ignores method visibility
Definition ast.h:7783
@ PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
&.
Definition ast.h:7774
@ PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
a call that is an attribute write, so the value being written should be returned
Definition ast.h:7780
@ PM_CALL_NODE_FLAGS_VARIABLE_CALL
a call that could have been a local variable
Definition ast.h:7777
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:7898
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING
constant writes that should be modified with shareable constant value experimental everything
Definition ast.h:7903
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL
constant writes that should be modified with shareable constant value literal
Definition ast.h:7900
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY
constant writes that should be modified with shareable constant value experimental copy
Definition ast.h:7906
struct pm_until_node pm_until_node_t
UntilNode.
struct pm_retry_node pm_retry_node_t
RetryNode.
uint16_t pm_node_type_t
This is the type of node embedded in the node struct.
Definition ast.h:1034
struct pm_imaginary_node pm_imaginary_node_t
ImaginaryNode.
struct pm_array_pattern_node pm_array_pattern_node_t
ArrayPatternNode.
pm_keyword_hash_node_flags
Flags for keyword hash nodes.
Definition ast.h:7828
@ 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:7830
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:7860
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:7889
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:7892
@ PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
e - forces the EUC-JP encoding
Definition ast.h:7874
@ PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
i - ignores the case of characters when matching
Definition ast.h:7862
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:7886
@ PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
n - forces the ASCII-8BIT encoding
Definition ast.h:7877
@ PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
m - allows $ to match the end of lines within strings
Definition ast.h:7868
@ PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
x - ignores whitespace and allows comments in regular expressions
Definition ast.h:7865
@ PM_REGULAR_EXPRESSION_FLAGS_ONCE
o - only interpolates values into the regular expression once
Definition ast.h:7871
@ PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
s - forces the Windows-31J encoding
Definition ast.h:7880
@ PM_REGULAR_EXPRESSION_FLAGS_UTF_8
u - forces the UTF-8 encoding
Definition ast.h:7883
struct pm_forwarding_arguments_node pm_forwarding_arguments_node_t
ForwardingArgumentsNode.
struct pm_instance_variable_read_node pm_instance_variable_read_node_t
InstanceVariableReadNode.
struct pm_constant_target_node pm_constant_target_node_t
ConstantTargetNode.
struct pm_node pm_node_t
This is the base structure that represents a node in the syntax tree.
struct pm_defined_node pm_defined_node_t
DefinedNode.
struct pm_it_local_variable_read_node pm_it_local_variable_read_node_t
ItLocalVariableReadNode.
struct pm_interpolated_symbol_node pm_interpolated_symbol_node_t
InterpolatedSymbolNode.
struct pm_class_variable_target_node pm_class_variable_target_node_t
ClassVariableTargetNode.
struct pm_def_node pm_def_node_t
DefNode.
struct pm_singleton_class_node pm_singleton_class_node_t
SingletonClassNode.
uint16_t pm_node_flags_t
These are the flags embedded in the node struct.
Definition ast.h:1040
struct pm_capture_pattern_node pm_capture_pattern_node_t
CapturePatternNode.
struct pm_source_file_node pm_source_file_node_t
SourceFileNode.
struct pm_regular_expression_node pm_regular_expression_node_t
RegularExpressionNode.
pm_token_type
This enum represents every type of token in the Ruby source.
Definition ast.h:29
@ PM_TOKEN_STAR_STAR
**
Definition ast.h:469
@ PM_TOKEN_DOT_DOT_DOT
the ... range operator or forwarding parameter
Definition ast.h:124
@ PM_TOKEN_MINUS_EQUAL
-=
Definition ast.h:385
@ PM_TOKEN_IGNORED_NEWLINE
an ignored newline
Definition ast.h:196
@ PM_TOKEN_BANG_EQUAL
!=
Definition ast.h:64
@ PM_TOKEN_KEYWORD___FILE__
FILE
Definition ast.h:349
@ PM_TOKEN_KEYWORD_WHEN
when
Definition ast.h:334
@ PM_TOKEN_FLOAT
a floating point number
Definition ast.h:160
@ PM_TOKEN_PLUS_EQUAL
+=
Definition ast.h:442
@ PM_TOKEN_DOT_DOT
the .
Definition ast.h:121
@ PM_TOKEN_UDOT_DOT
unary .
Definition ast.h:496
@ PM_TOKEN_AMPERSAND_DOT
&.
Definition ast.h:49
@ PM_TOKEN_NEWLINE
a newline character outside of other tokens
Definition ast.h:391
@ PM_TOKEN_NUMBERED_REFERENCE
a numbered reference to a capture group in the previous regular expression match
Definition ast.h:394
@ PM_TOKEN_AMPERSAND
&
Definition ast.h:40
@ PM_TOKEN_KEYWORD_YIELD
yield
Definition ast.h:343
@ PM_TOKEN_KEYWORD_END
end
Definition ast.h:253
@ PM_TOKEN_LAMBDA_BEGIN
{
Definition ast.h:361
@ PM_TOKEN_KEYWORD_UNTIL_MODIFIER
until in the modifier form
Definition ast.h:331
@ PM_TOKEN_EQUAL_EQUAL_EQUAL
===
Definition ast.h:151
@ PM_TOKEN_INTEGER_RATIONAL
an integer with a rational suffix
Definition ast.h:208
@ PM_TOKEN_USTAR
unary *
Definition ast.h:511
@ PM_TOKEN_TILDE
~ or ~@
Definition ast.h:487
@ PM_TOKEN_KEYWORD___ENCODING__
ENCODING
Definition ast.h:346
@ PM_TOKEN_REGEXP_END
the end of a regular expression
Definition ast.h:451
@ PM_TOKEN_KEYWORD_UNTIL
until
Definition ast.h:328
@ PM_TOKEN_COMMA
,
Definition ast.h:109
@ PM_TOKEN_MAXIMUM
The maximum token value.
Definition ast.h:523
@ PM_TOKEN_GREATER
Definition ast.h:175
@ PM_TOKEN_INTEGER
an integer (any base)
Definition ast.h:202
@ PM_TOKEN_SLASH_EQUAL
/=
Definition ast.h:460
@ PM_TOKEN_UMINUS_NUM
-@ for a number
Definition ast.h:505
@ PM_TOKEN_EMBVAR
Definition ast.h:142
@ PM_TOKEN_KEYWORD_UNLESS_MODIFIER
unless in the modifier form
Definition ast.h:325
@ PM_TOKEN_INTEGER_RATIONAL_IMAGINARY
an integer with a rational and imaginary suffix
Definition ast.h:211
@ PM_TOKEN_FLOAT_RATIONAL_IMAGINARY
a floating pointer number with a rational and imaginary suffix
Definition ast.h:169
@ PM_TOKEN_BRACKET_LEFT_RIGHT
[]
Definition ast.h:82
@ PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL
&&=
Definition ast.h:46
@ PM_TOKEN_KEYWORD_CLASS
class
Definition ast.h:232
@ PM_TOKEN_KEYWORD_BEGIN
begin
Definition ast.h:220
@ PM_TOKEN_NOT_PROVIDED
a token that was not present but it is okay
Definition ast.h:37
@ PM_TOKEN_USTAR_STAR
unary **
Definition ast.h:514
@ PM_TOKEN_GREATER_GREATER_EQUAL
‍>=
Definition ast.h:184
@ PM_TOKEN_PERCENT_EQUAL
%=
Definition ast.h:409
@ PM_TOKEN_PERCENT
%
Definition ast.h:406
@ PM_TOKEN_KEYWORD_IN
in
Definition ast.h:274
@ PM_TOKEN_BANG
! or !@
Definition ast.h:61
@ PM_TOKEN_KEYWORD_NOT
not
Definition ast.h:286
@ PM_TOKEN_BRACKET_LEFT_ARRAY
[ for the beginning of an array
Definition ast.h:79
@ PM_TOKEN_HEREDOC_END
the end of a heredoc
Definition ast.h:187
@ PM_TOKEN_HEREDOC_START
the start of a heredoc
Definition ast.h:190
@ PM_TOKEN_KEYWORD_DEFINED
defined?
Definition ast.h:238
@ PM_TOKEN_UCOLON_COLON
unary ::
Definition ast.h:493
@ PM_TOKEN_LABEL_END
the end of a label
Definition ast.h:358
@ PM_TOKEN_EQUAL_GREATER
=>
Definition ast.h:154
@ PM_TOKEN_KEYWORD_UNLESS
unless
Definition ast.h:322
@ PM_TOKEN_KEYWORD_ENSURE
ensure
Definition ast.h:259
@ PM_TOKEN_AMPERSAND_EQUAL
&=
Definition ast.h:52
@ PM_TOKEN_EQUAL_EQUAL
==
Definition ast.h:148
@ PM_TOKEN_UPLUS
+@
Definition ast.h:508
@ PM_TOKEN_FLOAT_IMAGINARY
a floating pointer number with an imaginary suffix
Definition ast.h:163
@ PM_TOKEN_KEYWORD_BEGIN_UPCASE
BEGIN.
Definition ast.h:223
@ PM_TOKEN_LESS_EQUAL_GREATER
<=>
Definition ast.h:370
@ PM_TOKEN_KEYWORD_RESCUE_MODIFIER
rescue in the modifier form
Definition ast.h:298
@ PM_TOKEN_MISSING
a token that was expected but not found
Definition ast.h:34
@ PM_TOKEN_MINUS_GREATER
->
Definition ast.h:388
@ PM_TOKEN_KEYWORD_FALSE
false
Definition ast.h:262
@ PM_TOKEN_PIPE_PIPE_EQUAL
||=
Definition ast.h:436
@ PM_TOKEN_KEYWORD_IF
if
Definition ast.h:268
@ PM_TOKEN_EMBEXPR_BEGIN
#{
Definition ast.h:136
@ PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES
( for a parentheses node
Definition ast.h:400
@ PM_TOKEN_EMBDOC_END
=end
Definition ast.h:130
@ PM_TOKEN_KEYWORD_ELSE
else
Definition ast.h:247
@ PM_TOKEN_BACK_REFERENCE
a back reference
Definition ast.h:58
@ PM_TOKEN_BRACKET_LEFT
[
Definition ast.h:76
@ PM_TOKEN_EOF
final token in the file
Definition ast.h:31
@ PM_TOKEN_PIPE_PIPE
||
Definition ast.h:433
@ PM_TOKEN_KEYWORD_NIL
nil
Definition ast.h:283
@ PM_TOKEN_PERCENT_UPPER_W
W
Definition ast.h:424
@ PM_TOKEN_KEYWORD_RETURN
return
Definition ast.h:304
@ PM_TOKEN_CLASS_VARIABLE
a class variable
Definition ast.h:100
@ PM_TOKEN_PIPE
|
Definition ast.h:427
@ PM_TOKEN_PARENTHESIS_LEFT
(
Definition ast.h:397
@ PM_TOKEN_BANG_TILDE
!~
Definition ast.h:67
@ PM_TOKEN_DOT
the .
Definition ast.h:118
@ PM_TOKEN_PARENTHESIS_RIGHT
)
Definition ast.h:403
@ PM_TOKEN_KEYWORD_RESCUE
rescue
Definition ast.h:295
@ PM_TOKEN_INSTANCE_VARIABLE
an instance variable
Definition ast.h:199
@ PM_TOKEN_PIPE_EQUAL
|=
Definition ast.h:430
@ PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL
[]=
Definition ast.h:85
@ PM_TOKEN_UAMPERSAND
unary &
Definition ast.h:490
@ PM_TOKEN_MINUS
Definition ast.h:382
@ PM_TOKEN_CONSTANT
a constant
Definition ast.h:115
@ PM_TOKEN_IDENTIFIER
an identifier
Definition ast.h:193
@ PM_TOKEN_EMBDOC_BEGIN
=begin
Definition ast.h:127
@ PM_TOKEN_STAR_EQUAL
*=
Definition ast.h:466
@ PM_TOKEN_KEYWORD_OR
or
Definition ast.h:289
@ PM_TOKEN_KEYWORD_AND
and
Definition ast.h:217
@ PM_TOKEN_LESS
<
Definition ast.h:364
@ PM_TOKEN_KEYWORD_BREAK
break
Definition ast.h:226
@ PM_TOKEN_PERCENT_LOWER_W
w
Definition ast.h:415
@ PM_TOKEN_SYMBOL_BEGIN
the beginning of a symbol
Definition ast.h:484
@ PM_TOKEN_METHOD_NAME
a method name
Definition ast.h:379
@ PM_TOKEN_KEYWORD_CASE
case
Definition ast.h:229
@ PM_TOKEN_WORDS_SEP
a separator between words in a list
Definition ast.h:517
@ PM_TOKEN_FLOAT_RATIONAL
a floating pointer number with a rational suffix
Definition ast.h:166
@ PM_TOKEN_LESS_LESS_EQUAL
<<=
Definition ast.h:376
@ PM_TOKEN_EMBDOC_LINE
a line inside of embedded documentation
Definition ast.h:133
@ PM_TOKEN_KEYWORD_SUPER
super
Definition ast.h:310
@ PM_TOKEN_KEYWORD_DO
do
Definition ast.h:241
@ PM_TOKEN_KEYWORD_REDO
redo
Definition ast.h:292
@ PM_TOKEN_EQUAL_TILDE
=~
Definition ast.h:157
@ PM_TOKEN_EMBEXPR_END
}
Definition ast.h:139
@ PM_TOKEN_KEYWORD_END_UPCASE
END.
Definition ast.h:256
@ PM_TOKEN_KEYWORD___LINE__
LINE
Definition ast.h:352
@ PM_TOKEN_STRING_END
the end of a string
Definition ast.h:481
@ PM_TOKEN_STRING_CONTENT
the contents of a string
Definition ast.h:478
@ PM_TOKEN_BRACE_LEFT
{
Definition ast.h:70
@ PM_TOKEN_COLON_COLON
::
Definition ast.h:106
@ PM_TOKEN_GREATER_GREATER
Definition ast.h:181
@ PM_TOKEN_PERCENT_LOWER_X
x
Definition ast.h:418
@ PM_TOKEN_KEYWORD_SELF
self
Definition ast.h:307
@ PM_TOKEN_PERCENT_LOWER_I
i
Definition ast.h:412
@ PM_TOKEN_KEYWORD_ALIAS
alias
Definition ast.h:214
@ PM_TOKEN_GLOBAL_VARIABLE
a global variable
Definition ast.h:172
@ PM_TOKEN_KEYWORD_IF_MODIFIER
if in the modifier form
Definition ast.h:271
@ PM_TOKEN_SLASH
/
Definition ast.h:457
@ PM_TOKEN_KEYWORD_RETRY
retry
Definition ast.h:301
@ PM_TOKEN_COLON
:
Definition ast.h:103
@ PM_TOKEN_KEYWORD_UNDEF
undef
Definition ast.h:319
@ PM_TOKEN_BRACKET_RIGHT
]
Definition ast.h:88
@ PM_TOKEN_KEYWORD_FOR
for
Definition ast.h:265
@ PM_TOKEN_KEYWORD_THEN
then
Definition ast.h:313
@ PM_TOKEN_QUESTION_MARK
?
Definition ast.h:445
@ PM_TOKEN___END__
marker for the point in the file at which the parser should stop
Definition ast.h:520
@ PM_TOKEN_KEYWORD_WHILE
while
Definition ast.h:337
@ PM_TOKEN_EQUAL
=
Definition ast.h:145
@ PM_TOKEN_KEYWORD_DEF
def
Definition ast.h:235
@ PM_TOKEN_UDOT_DOT_DOT
unary ... operator
Definition ast.h:499
@ PM_TOKEN_STAR
Definition ast.h:463
@ PM_TOKEN_KEYWORD_WHILE_MODIFIER
while in the modifier form
Definition ast.h:340
@ PM_TOKEN_KEYWORD_TRUE
true
Definition ast.h:316
@ PM_TOKEN_BRACE_RIGHT
}
Definition ast.h:73
@ PM_TOKEN_SEMICOLON
;
Definition ast.h:454
@ PM_TOKEN_REGEXP_BEGIN
the beginning of a regular expression
Definition ast.h:448
@ PM_TOKEN_CARET
^
Definition ast.h:91
@ PM_TOKEN_PERCENT_UPPER_I
I
Definition ast.h:421
@ PM_TOKEN_KEYWORD_DO_LOOP
do keyword for a predicate in a while, until, or for loop
Definition ast.h:244
@ PM_TOKEN_KEYWORD_MODULE
module
Definition ast.h:277
@ PM_TOKEN_PLUS
Definition ast.h:439
@ PM_TOKEN_KEYWORD_NEXT
next
Definition ast.h:280
@ PM_TOKEN_BACKTICK
`
Definition ast.h:55
@ PM_TOKEN_INTEGER_IMAGINARY
an integer with an imaginary suffix
Definition ast.h:205
@ PM_TOKEN_LABEL
a label
Definition ast.h:355
@ PM_TOKEN_STAR_STAR_EQUAL
**=
Definition ast.h:472
@ PM_TOKEN_CHARACTER_LITERAL
a character literal
Definition ast.h:97
@ PM_TOKEN_AMPERSAND_AMPERSAND
&&
Definition ast.h:43
@ PM_TOKEN_UMINUS
-@
Definition ast.h:502
@ PM_TOKEN_LESS_LESS
<<
Definition ast.h:373
@ PM_TOKEN_GREATER_EQUAL
>=
Definition ast.h:178
@ PM_TOKEN_COMMENT
a comment
Definition ast.h:112
@ PM_TOKEN_CARET_EQUAL
^=
Definition ast.h:94
@ PM_TOKEN_KEYWORD_ELSIF
elsif
Definition ast.h:250
@ PM_TOKEN_STRING_BEGIN
the beginning of a string
Definition ast.h:475
@ PM_TOKEN_LESS_EQUAL
<=
Definition ast.h:367
struct pm_global_variable_or_write_node pm_global_variable_or_write_node_t
GlobalVariableOrWriteNode.
enum pm_array_node_flags pm_array_node_flags_t
Flags for array nodes.
struct pm_rescue_node pm_rescue_node_t
RescueNode.
struct pm_array_node pm_array_node_t
ArrayNode.
struct pm_while_node pm_while_node_t
WhileNode.
struct pm_global_variable_write_node pm_global_variable_write_node_t
GlobalVariableWriteNode.
struct pm_instance_variable_or_write_node pm_instance_variable_or_write_node_t
InstanceVariableOrWriteNode.
struct pm_source_line_node pm_source_line_node_t
SourceLineNode.
pm_parameter_flags
Flags for parameter nodes.
Definition ast.h:7844
@ PM_PARAMETER_FLAGS_REPEATED_PARAMETER
a parameter name that has been repeated in the method signature
Definition ast.h:7846
pm_encoding_flags
Flags for nodes that have unescaped content.
Definition ast.h:7789
@ PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:7794
@ PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:7791
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:7836
@ PM_LOOP_FLAGS_BEGIN_MODIFIER
a loop after a begin statement, so the body is executed first before the condition
Definition ast.h:7838
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:1107
struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1130
pm_node_t base
The embedded base node.
Definition ast.h:1109
struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1120
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1140
AliasMethodNode.
Definition ast.h:1155
struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1190
struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1174
pm_node_t base
The embedded base node.
Definition ast.h:1157
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1200
AlternationPatternNode.
Definition ast.h:1215
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1248
struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1228
struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1238
pm_node_t base
The embedded base node.
Definition ast.h:1217
AndNode.
Definition ast.h:1263
struct pm_node * left
AndNode::left.
Definition ast.h:1279
struct pm_node * right
AndNode::right.
Definition ast.h:1292
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1302
pm_node_t base
The embedded base node.
Definition ast.h:1265
ArgumentsNode.
Definition ast.h:1324
pm_node_t base
The embedded base node.
Definition ast.h:1326
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1337
ArrayNode.
Definition ast.h:1355
pm_node_t base
The embedded base node.
Definition ast.h:1357
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1389
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1365
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1377
ArrayPatternNode.
Definition ast.h:1416
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1434
struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1444
struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1424
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1464
pm_node_t base
The embedded base node.
Definition ast.h:1418
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1474
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1454
AssocNode.
Definition ast.h:1489
pm_node_t base
The embedded base node.
Definition ast.h:1491
struct pm_node * value
AssocNode::value.
Definition ast.h:1521
struct pm_node * key
AssocNode::key.
Definition ast.h:1508
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1531
AssocSplatNode.
Definition ast.h:1546
struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1559
pm_node_t base
The embedded base node.
Definition ast.h:1548
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1569
BackReferenceReadNode.
Definition ast.h:1584
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1598
pm_node_t base
The embedded base node.
Definition ast.h:1586
BeginNode.
Definition ast.h:1615
struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1668
struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1648
struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1638
pm_node_t base
The embedded base node.
Definition ast.h:1617
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1678
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1628
struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1658
BlockArgumentNode.
Definition ast.h:1693
pm_node_t base
The embedded base node.
Definition ast.h:1695
struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1706
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1716
BlockLocalVariableNode.
Definition ast.h:1734
pm_node_t base
The embedded base node.
Definition ast.h:1736
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1747
BlockNode.
Definition ast.h:1762
pm_node_t base
The embedded base node.
Definition ast.h:1764
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1819
struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1789
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1809
struct pm_node * body
BlockNode::body.
Definition ast.h:1799
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1775
BlockParameterNode.
Definition ast.h:1838
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1873
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1862
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1852
pm_node_t base
The embedded base node.
Definition ast.h:1840
BlockParametersNode.
Definition ast.h:1892
struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1909
pm_node_t base
The embedded base node.
Definition ast.h:1894
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1923
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:1951
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1937
BreakNode.
Definition ast.h:1966
struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:1979
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:1989
pm_node_t base
The embedded base node.
Definition ast.h:1968
CallAndWriteNode.
Definition ast.h:2010
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2073
struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2083
pm_node_t base
The embedded base node.
Definition ast.h:2012
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2033
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2043
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2053
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2063
struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2023
CallNode.
Definition ast.h:2119
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2180
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2200
struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2138
pm_constant_id_t name
CallNode::name.
Definition ast.h:2161
pm_node_t base
The embedded base node.
Definition ast.h:2121
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2151
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2171
struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2190
struct pm_node * block
CallNode::block.
Definition ast.h:2210
CallOperatorWriteNode.
Definition ast.h:2231
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2274
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2294
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2304
struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2244
pm_node_t base
The embedded base node.
Definition ast.h:2233
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2284
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2264
struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2314
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2254
CallOrWriteNode.
Definition ast.h:2335
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2398
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2358
pm_node_t base
The embedded base node.
Definition ast.h:2337
struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2348
struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2408
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2388
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2378
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2368
CallTargetNode.
Definition ast.h:2437
pm_node_t base
The embedded base node.
Definition ast.h:2439
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2470
struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2450
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2460
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2480
CapturePatternNode.
Definition ast.h:2495
struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2518
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2528
struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2508
pm_node_t base
The embedded base node.
Definition ast.h:2497
CaseMatchNode.
Definition ast.h:2545
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2598
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2568
pm_node_t base
The embedded base node.
Definition ast.h:2547
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2588
struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2578
struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2558
CaseNode.
Definition ast.h:2615
struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2628
struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2648
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2638
pm_node_t base
The embedded base node.
Definition ast.h:2617
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2658
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2668
ClassNode.
Definition ast.h:2683
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2696
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2721
struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2701
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2691
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2706
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2726
pm_node_t base
The embedded base node.
Definition ast.h:2685
struct pm_node * body
ClassNode::body.
Definition ast.h:2716
struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2711
ClassVariableAndWriteNode.
Definition ast.h:2741
struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2784
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2754
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2774
pm_node_t base
The embedded base node.
Definition ast.h:2743
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2764
ClassVariableOperatorWriteNode.
Definition ast.h:2799
pm_node_t base
The embedded base node.
Definition ast.h:2801
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2807
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2812
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2827
struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2822
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2817
ClassVariableOrWriteNode.
Definition ast.h:2842
pm_node_t base
The embedded base node.
Definition ast.h:2844
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2855
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2860
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2850
struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2865
ClassVariableReadNode.
Definition ast.h:2880
pm_node_t base
The embedded base node.
Definition ast.h:2882
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2894
ClassVariableTargetNode.
Definition ast.h:2909
pm_node_t base
The embedded base node.
Definition ast.h:2911
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:2917
ClassVariableWriteNode.
Definition ast.h:2932
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:2956
pm_node_t base
The embedded base node.
Definition ast.h:2934
struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:2969
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:2979
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:2946
ConstantAndWriteNode.
Definition ast.h:2994
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3012
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3007
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3002
struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3017
pm_node_t base
The embedded base node.
Definition ast.h:2996
A list of constant IDs.
Definition pm_constant_pool.h:36
ConstantOperatorWriteNode.
Definition ast.h:3032
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3040
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3045
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3060
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3050
struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3055
pm_node_t base
The embedded base node.
Definition ast.h:3034
ConstantOrWriteNode.
Definition ast.h:3075
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3093
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3088
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3083
pm_node_t base
The embedded base node.
Definition ast.h:3077
struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3098
ConstantPathAndWriteNode.
Definition ast.h:3113
pm_node_t base
The embedded base node.
Definition ast.h:3115
struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3121
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3126
struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3131
ConstantPathNode.
Definition ast.h:3146
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3185
pm_node_t base
The embedded base node.
Definition ast.h:3148
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3198
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3172
struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3165
ConstantPathOperatorWriteNode.
Definition ast.h:3213
struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3221
struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3231
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3236
pm_node_t base
The embedded base node.
Definition ast.h:3215
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3226
ConstantPathOrWriteNode.
Definition ast.h:3251
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3264
pm_node_t base
The embedded base node.
Definition ast.h:3253
struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3269
struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3259
ConstantPathTargetNode.
Definition ast.h:3284
pm_node_t base
The embedded base node.
Definition ast.h:3286
struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3292
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3302
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3297
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3307
ConstantPathWriteNode.
Definition ast.h:3328
struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3344
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3354
pm_node_t base
The embedded base node.
Definition ast.h:3330
struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3364
ConstantReadNode.
Definition ast.h:3379
pm_node_t base
The embedded base node.
Definition ast.h:3381
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3393
ConstantTargetNode.
Definition ast.h:3408
pm_node_t base
The embedded base node.
Definition ast.h:3410
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3416
ConstantWriteNode.
Definition ast.h:3431
pm_node_t base
The embedded base node.
Definition ast.h:3433
struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3468
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3445
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3455
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3478
DefNode.
Definition ast.h:3494
struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3517
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3557
pm_constant_id_t name
DefNode::name.
Definition ast.h:3502
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3507
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3547
struct pm_node * body
DefNode::body.
Definition ast.h:3522
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3552
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3532
struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3512
pm_node_t base
The embedded base node.
Definition ast.h:3496
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3542
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3537
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3527
DefinedNode.
Definition ast.h:3572
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3580
pm_node_t base
The embedded base node.
Definition ast.h:3574
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3590
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3595
struct pm_node * value
DefinedNode::value.
Definition ast.h:3585
ElseNode.
Definition ast.h:3610
struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3623
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3618
pm_node_t base
The embedded base node.
Definition ast.h:3612
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3628
EmbeddedStatementsNode.
Definition ast.h:3643
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3661
struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3656
pm_node_t base
The embedded base node.
Definition ast.h:3645
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3651
EmbeddedVariableNode.
Definition ast.h:3676
struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3689
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3684
pm_node_t base
The embedded base node.
Definition ast.h:3678
EnsureNode.
Definition ast.h:3708
struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3721
pm_node_t base
The embedded base node.
Definition ast.h:3710
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3716
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3726
FalseNode.
Definition ast.h:3741
pm_node_t base
The embedded base node.
Definition ast.h:3743
FindPatternNode.
Definition ast.h:3765
struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3773
struct pm_node * right
FindPatternNode::right.
Definition ast.h:3788
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3793
pm_node_t base
The embedded base node.
Definition ast.h:3767
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3783
struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3778
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3798
FlipFlopNode.
Definition ast.h:3816
pm_node_t base
The embedded base node.
Definition ast.h:3818
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3834
struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3824
struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3829
FloatNode.
Definition ast.h:3849
double value
FloatNode::value.
Definition ast.h:3859
pm_node_t base
The embedded base node.
Definition ast.h:3851
ForNode.
Definition ast.h:3874
struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:3909
struct pm_node * index
ForNode::index.
Definition ast.h:3887
struct pm_node * collection
ForNode::collection.
Definition ast.h:3897
pm_node_t base
The embedded base node.
Definition ast.h:3876
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:3949
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:3919
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:3939
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:3929
ForwardingArgumentsNode.
Definition ast.h:3966
pm_node_t base
The embedded base node.
Definition ast.h:3968
ForwardingParameterNode.
Definition ast.h:3985
pm_node_t base
The embedded base node.
Definition ast.h:3987
ForwardingSuperNode.
Definition ast.h:4003
pm_node_t base
The embedded base node.
Definition ast.h:4005
struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4011
GlobalVariableAndWriteNode.
Definition ast.h:4026
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4044
pm_node_t base
The embedded base node.
Definition ast.h:4028
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4039
struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4049
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4034
GlobalVariableOperatorWriteNode.
Definition ast.h:4064
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4072
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4092
struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4087
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4077
pm_node_t base
The embedded base node.
Definition ast.h:4066
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4082
GlobalVariableOrWriteNode.
Definition ast.h:4107
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4115
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4120
pm_node_t base
The embedded base node.
Definition ast.h:4109
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4125
struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4130
GlobalVariableReadNode.
Definition ast.h:4145
pm_node_t base
The embedded base node.
Definition ast.h:4147
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4159
GlobalVariableTargetNode.
Definition ast.h:4174
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4182
pm_node_t base
The embedded base node.
Definition ast.h:4176
GlobalVariableWriteNode.
Definition ast.h:4197
struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4234
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4221
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4244
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4211
pm_node_t base
The embedded base node.
Definition ast.h:4199
HashNode.
Definition ast.h:4259
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4285
pm_node_t base
The embedded base node.
Definition ast.h:4261
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4295
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4272
HashPatternNode.
Definition ast.h:4313
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4326
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4336
pm_node_t base
The embedded base node.
Definition ast.h:4315
struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4331
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4341
struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4321
IfNode.
Definition ast.h:4362
struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4395
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4453
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4377
struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4422
pm_node_t base
The embedded base node.
Definition ast.h:4364
struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4441
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4408
ImaginaryNode.
Definition ast.h:4468
struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4476
pm_node_t base
The embedded base node.
Definition ast.h:4470
ImplicitNode.
Definition ast.h:4497
struct pm_node * value
ImplicitNode::value.
Definition ast.h:4505
pm_node_t base
The embedded base node.
Definition ast.h:4499
ImplicitRestNode.
Definition ast.h:4529
pm_node_t base
The embedded base node.
Definition ast.h:4531
InNode.
Definition ast.h:4547
struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4560
struct pm_node * pattern
InNode::pattern.
Definition ast.h:4555
pm_node_t base
The embedded base node.
Definition ast.h:4549
pm_location_t then_loc
InNode::then_loc.
Definition ast.h:4570
pm_location_t in_loc
InNode::in_loc.
Definition ast.h:4565
IndexAndWriteNode.
Definition ast.h:4591
struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4614
struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4599
pm_node_t base
The embedded base node.
Definition ast.h:4593
struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4624
struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4634
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4629
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4619
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4609
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4604
IndexOperatorWriteNode.
Definition ast.h:4655
pm_node_t base
The embedded base node.
Definition ast.h:4657
struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4688
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4698
struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4703
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4673
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4668
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4683
struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4678
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4693
struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4663
IndexOrWriteNode.
Definition ast.h:4724
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4752
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4737
pm_node_t base
The embedded base node.
Definition ast.h:4726
struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4757
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4762
struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4732
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4742
struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4767
struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4747
IndexTargetNode.
Definition ast.h:4796
pm_node_t base
The embedded base node.
Definition ast.h:4798
struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4804
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4819
struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4814
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4809
struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4824
InstanceVariableAndWriteNode.
Definition ast.h:4839
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:4857
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:4852
struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:4862
pm_node_t base
The embedded base node.
Definition ast.h:4841
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:4847
InstanceVariableOperatorWriteNode.
Definition ast.h:4877
struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:4900
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:4905
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4895
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:4885
pm_node_t base
The embedded base node.
Definition ast.h:4879
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:4890
InstanceVariableOrWriteNode.
Definition ast.h:4920
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:4938
struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:4943
pm_node_t base
The embedded base node.
Definition ast.h:4922
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:4933
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:4928
InstanceVariableReadNode.
Definition ast.h:4958
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:4972
pm_node_t base
The embedded base node.
Definition ast.h:4960
InstanceVariableTargetNode.
Definition ast.h:4987
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:4995
pm_node_t base
The embedded base node.
Definition ast.h:4989
InstanceVariableWriteNode.
Definition ast.h:5010
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5057
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5024
pm_node_t base
The embedded base node.
Definition ast.h:5012
struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5047
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5034
IntegerNode.
Definition ast.h:5078
pm_integer_t value
IntegerNode::value.
Definition ast.h:5088
pm_node_t base
The embedded base node.
Definition ast.h:5080
A structure represents an arbitrary-sized integer.
Definition pm_integer.h:20
InterpolatedMatchLastLineNode.
Definition ast.h:5116
pm_node_t base
The embedded base node.
Definition ast.h:5118
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5134
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5129
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5124
InterpolatedRegularExpressionNode.
Definition ast.h:5162
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5170
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5175
pm_node_t base
The embedded base node.
Definition ast.h:5164
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5180
InterpolatedStringNode.
Definition ast.h:5199
pm_node_t base
The embedded base node.
Definition ast.h:5201
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5217
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5207
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5212
InterpolatedSymbolNode.
Definition ast.h:5232
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5245
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5250
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5240
pm_node_t base
The embedded base node.
Definition ast.h:5234
InterpolatedXStringNode.
Definition ast.h:5265
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5273
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5283
pm_node_t base
The embedded base node.
Definition ast.h:5267
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5278
ItLocalVariableReadNode.
Definition ast.h:5298
pm_node_t base
The embedded base node.
Definition ast.h:5300
ItParametersNode.
Definition ast.h:5316
pm_node_t base
The embedded base node.
Definition ast.h:5318
KeywordHashNode.
Definition ast.h:5337
pm_node_t base
The embedded base node.
Definition ast.h:5339
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5345
KeywordRestParameterNode.
Definition ast.h:5364
pm_node_t base
The embedded base node.
Definition ast.h:5366
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5372
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5382
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5377
LambdaNode.
Definition ast.h:5397
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5420
pm_node_t base
The embedded base node.
Definition ast.h:5399
struct pm_node * body
LambdaNode::body.
Definition ast.h:5430
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5415
struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5425
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5410
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5405
LocalVariableAndWriteNode.
Definition ast.h:5445
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5468
pm_node_t base
The embedded base node.
Definition ast.h:5447
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5473
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5458
struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5463
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5453
LocalVariableOperatorWriteNode.
Definition ast.h:5488
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5521
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5516
pm_node_t base
The embedded base node.
Definition ast.h:5490
struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5506
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5496
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5501
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5511
LocalVariableOrWriteNode.
Definition ast.h:5536
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5564
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5549
struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5554
pm_node_t base
The embedded base node.
Definition ast.h:5538
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5559
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5544
LocalVariableReadNode.
Definition ast.h:5579
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5610
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5597
pm_node_t base
The embedded base node.
Definition ast.h:5581
LocalVariableTargetNode.
Definition ast.h:5625
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5638
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5633
pm_node_t base
The embedded base node.
Definition ast.h:5627
LocalVariableWriteNode.
Definition ast.h:5653
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5717
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5690
pm_node_t base
The embedded base node.
Definition ast.h:5655
struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5707
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5680
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5667
This represents a range of bytes in the source string to which a node or token corresponds.
Definition ast.h:545
const uint8_t * start
A pointer to the start location of the range in the source.
Definition ast.h:547
const uint8_t * end
A pointer to the end location of the range in the source.
Definition ast.h:550
MatchLastLineNode.
Definition ast.h:5745
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5758
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5753
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5763
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5768
pm_node_t base
The embedded base node.
Definition ast.h:5747
MatchPredicateNode.
Definition ast.h:5783
pm_location_t operator_loc
MatchPredicateNode::operator_loc.
Definition ast.h:5801
struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5796
struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5791
pm_node_t base
The embedded base node.
Definition ast.h:5785
MatchRequiredNode.
Definition ast.h:5816
pm_node_t base
The embedded base node.
Definition ast.h:5818
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:5834
struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5824
struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:5829
MatchWriteNode.
Definition ast.h:5849
pm_node_t base
The embedded base node.
Definition ast.h:5851
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:5862
struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:5857
MissingNode.
Definition ast.h:5874
pm_node_t base
The embedded base node.
Definition ast.h:5876
ModuleNode.
Definition ast.h:5892
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:5920
struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:5910
struct pm_node * body
ModuleNode::body.
Definition ast.h:5915
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:5900
pm_node_t base
The embedded base node.
Definition ast.h:5894
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:5905
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:5925
MultiTargetNode.
Definition ast.h:5945
pm_node_t base
The embedded base node.
Definition ast.h:5947
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6003
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:5963
struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:5983
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6013
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:5993
MultiWriteNode.
Definition ast.h:6028
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6096
struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6116
struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6066
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6076
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6106
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6086
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6046
pm_node_t base
The embedded base node.
Definition ast.h:6030
NextNode.
Definition ast.h:6131
struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6139
pm_node_t base
The embedded base node.
Definition ast.h:6133
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6144
NilNode.
Definition ast.h:6159
pm_node_t base
The embedded base node.
Definition ast.h:6161
NoKeywordsParameterNode.
Definition ast.h:6178
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6191
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6186
pm_node_t base
The embedded base node.
Definition ast.h:6180
A list of nodes in the source, most often used for lists of children.
Definition ast.h:558
size_t size
The number of nodes in the list.
Definition ast.h:560
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:566
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:563
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1069
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1074
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1086
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1080
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1092
NumberedParametersNode.
Definition ast.h:6206
pm_node_t base
The embedded base node.
Definition ast.h:6208
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6214
NumberedReferenceReadNode.
Definition ast.h:6229
pm_node_t base
The embedded base node.
Definition ast.h:6231
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6245
OptionalKeywordParameterNode.
Definition ast.h:6264
pm_node_t base
The embedded base node.
Definition ast.h:6266
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6272
struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6282
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6277
OptionalParameterNode.
Definition ast.h:6301
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6314
struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6324
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6309
pm_node_t base
The embedded base node.
Definition ast.h:6303
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6319
OrNode.
Definition ast.h:6339
struct pm_node * left
OrNode::left.
Definition ast.h:6355
struct pm_node * right
OrNode::right.
Definition ast.h:6368
pm_node_t base
The embedded base node.
Definition ast.h:6341
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6378
ParametersNode.
Definition ast.h:6394
struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6412
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6402
struct pm_block_parameter_node * block
ParametersNode::block.
Definition ast.h:6432
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6407
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6417
pm_node_t base
The embedded base node.
Definition ast.h:6396
struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6427
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6422
ParenthesesNode.
Definition ast.h:6447
struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6455
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6465
pm_node_t base
The embedded base node.
Definition ast.h:6449
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6460
PinnedExpressionNode.
Definition ast.h:6480
pm_node_t base
The embedded base node.
Definition ast.h:6482
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6503
struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6488
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6498
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6493
PinnedVariableNode.
Definition ast.h:6518
struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6526
pm_node_t base
The embedded base node.
Definition ast.h:6520
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6531
PostExecutionNode.
Definition ast.h:6546
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6569
struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6554
pm_node_t base
The embedded base node.
Definition ast.h:6548
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6564
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6559
PreExecutionNode.
Definition ast.h:6584
struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6592
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6607
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6602
pm_node_t base
The embedded base node.
Definition ast.h:6586
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6597
ProgramNode.
Definition ast.h:6619
struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6632
pm_node_t base
The embedded base node.
Definition ast.h:6621
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6627
RangeNode.
Definition ast.h:6653
struct pm_node * right
RangeNode::right.
Definition ast.h:6683
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6690
pm_node_t base
The embedded base node.
Definition ast.h:6655
struct pm_node * left
RangeNode::left.
Definition ast.h:6669
RationalNode.
Definition ast.h:6711
pm_node_t base
The embedded base node.
Definition ast.h:6713
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6732
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6723
RedoNode.
Definition ast.h:6747
pm_node_t base
The embedded base node.
Definition ast.h:6749
RegularExpressionNode.
Definition ast.h:6778
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:6796
pm_node_t base
The embedded base node.
Definition ast.h:6780
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:6801
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:6786
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:6791
RequiredKeywordParameterNode.
Definition ast.h:6820
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:6833
pm_node_t base
The embedded base node.
Definition ast.h:6822
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:6828
RequiredParameterNode.
Definition ast.h:6852
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:6860
pm_node_t base
The embedded base node.
Definition ast.h:6854
RescueModifierNode.
Definition ast.h:6875
pm_node_t base
The embedded base node.
Definition ast.h:6877
struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:6893
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:6888
struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:6883
RescueNode.
Definition ast.h:6913
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:6921
struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:6946
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:6931
struct pm_node * reference
RescueNode::reference.
Definition ast.h:6936
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:6926
struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:6941
pm_node_t base
The embedded base node.
Definition ast.h:6915
RestParameterNode.
Definition ast.h:6965
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:6973
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:6978
pm_node_t base
The embedded base node.
Definition ast.h:6967
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:6983
RetryNode.
Definition ast.h:6998
pm_node_t base
The embedded base node.
Definition ast.h:7000
ReturnNode.
Definition ast.h:7016
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7024
pm_node_t base
The embedded base node.
Definition ast.h:7018
struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7029
SelfNode.
Definition ast.h:7044
pm_node_t base
The embedded base node.
Definition ast.h:7046
ShareableConstantNode.
Definition ast.h:7068
struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7078
pm_node_t base
The embedded base node.
Definition ast.h:7070
SingletonClassNode.
Definition ast.h:7093
pm_node_t base
The embedded base node.
Definition ast.h:7095
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7101
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7111
struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7116
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7126
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7106
struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7121
SourceEncodingNode.
Definition ast.h:7141
pm_node_t base
The embedded base node.
Definition ast.h:7143
SourceFileNode.
Definition ast.h:7165
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7175
pm_node_t base
The embedded base node.
Definition ast.h:7167
SourceLineNode.
Definition ast.h:7190
pm_node_t base
The embedded base node.
Definition ast.h:7192
SplatNode.
Definition ast.h:7208
struct pm_node * expression
SplatNode::expression.
Definition ast.h:7221
pm_node_t base
The embedded base node.
Definition ast.h:7210
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7216
StatementsNode.
Definition ast.h:7236
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7244
pm_node_t base
The embedded base node.
Definition ast.h:7238
StringNode.
Definition ast.h:7271
pm_node_t base
The embedded base node.
Definition ast.h:7273
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7294
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7284
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7289
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7279
A generic string type that can have various ownership semantics.
Definition pm_string.h:33
SuperNode.
Definition ast.h:7312
struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7330
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7325
pm_node_t base
The embedded base node.
Definition ast.h:7314
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7320
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7335
struct pm_node * block
SuperNode::block.
Definition ast.h:7340
SymbolNode.
Definition ast.h:7363
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7371
pm_location_t value_loc
SymbolNode::value_loc.
Definition ast.h:7376
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7381
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7386
pm_node_t base
The embedded base node.
Definition ast.h:7365
This struct represents a token in the Ruby source.
Definition ast.h:530
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:538
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:535
pm_token_type_t type
The type of the token.
Definition ast.h:532
TrueNode.
Definition ast.h:7401
pm_node_t base
The embedded base node.
Definition ast.h:7403
UndefNode.
Definition ast.h:7419
pm_node_t base
The embedded base node.
Definition ast.h:7421
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7432
struct pm_node_list names
UndefNode::names.
Definition ast.h:7427
UnlessNode.
Definition ast.h:7450
pm_location_t keyword_loc
UnlessNode::keyword_loc.
Definition ast.h:7466
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7489
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7520
pm_node_t base
The embedded base node.
Definition ast.h:7452
struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7500
struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7479
struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7510
UntilNode.
Definition ast.h:7541
struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7569
pm_location_t closing_loc
UntilNode::closing_loc.
Definition ast.h:7559
struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7564
pm_location_t keyword_loc
UntilNode::keyword_loc.
Definition ast.h:7549
pm_node_t base
The embedded base node.
Definition ast.h:7543
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7554
WhenNode.
Definition ast.h:7586
struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7609
pm_node_t base
The embedded base node.
Definition ast.h:7588
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7604
pm_location_t keyword_loc
WhenNode::keyword_loc.
Definition ast.h:7594
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7599
WhileNode.
Definition ast.h:7630
pm_location_t closing_loc
WhileNode::closing_loc.
Definition ast.h:7648
pm_location_t keyword_loc
WhileNode::keyword_loc.
Definition ast.h:7638
struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7658
pm_node_t base
The embedded base node.
Definition ast.h:7632
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7643
struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7653
XStringNode.
Definition ast.h:7677
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7695
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7685
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7690
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7700
pm_node_t base
The embedded base node.
Definition ast.h:7679
YieldNode.
Definition ast.h:7715
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7723
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7728
pm_node_t base
The embedded base node.
Definition ast.h:7717
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7738
struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7733