19#include "prism/compiler/align.h"
20#include "prism/compiler/exported.h"
1126#define PM_NODE_UPCAST(node_) ((pm_node_t *) (node_))
1132#define PM_NODE_TYPE(node_) ((enum pm_node_type) (node_)->type)
1137#define PM_NODE_TYPE_P(node_, type_) (PM_NODE_TYPE(node_) == (type_))
1142#define PM_NODE_FLAGS(node_) (PM_NODE_UPCAST(node_)->flags)
1147#define PM_NODE_FLAG_P(node_, flag_) ((PM_NODE_FLAGS(node_) & (flag_)) != 0)
1153#define PM_NODE_ALIGNAS __declspec(align(8))
1155#define PM_NODE_ALIGNAS PRISM_ALIGNAS(PRISM_ALIGNOF(void *))
7972 PM_ARGUMENTS_NODE_FLAGS_LAST,
7982 PM_ARRAY_NODE_FLAGS_LAST,
8001 PM_CALL_NODE_FLAGS_LAST,
8014 PM_ENCODING_FLAGS_LAST,
8033 PM_INTEGER_BASE_FLAGS_LAST,
8046 PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
8056 PM_KEYWORD_HASH_NODE_FLAGS_LAST,
8076 PM_PARAMETER_FLAGS_LAST,
8086 PM_PARENTHESES_NODE_FLAGS_LAST,
8096 PM_RANGE_FLAGS_LAST,
8136 PM_REGULAR_EXPRESSION_FLAGS_LAST,
8152 PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
8171 PM_STRING_FLAGS_LAST,
8187 PM_SYMBOL_FLAGS_LAST,
8444PRISM_EXPORTED_FUNCTION
pm_call_and_write_node_t *
pm_call_and_write_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
struct pm_node *receiver,
pm_location_t call_operator_loc,
pm_location_t message_loc,
pm_constant_id_t read_name,
pm_constant_id_t write_name,
pm_location_t operator_loc,
struct pm_node *value);
8464PRISM_EXPORTED_FUNCTION
pm_call_node_t *
pm_call_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
struct pm_node *receiver,
pm_location_t call_operator_loc,
pm_constant_id_t name,
pm_location_t message_loc,
pm_location_t opening_loc,
struct pm_arguments_node *
arguments,
pm_location_t closing_loc,
pm_location_t equal_loc,
struct pm_node *block);
8483PRISM_EXPORTED_FUNCTION
pm_call_operator_write_node_t *
pm_call_operator_write_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
struct pm_node *receiver,
pm_location_t call_operator_loc,
pm_location_t message_loc,
pm_constant_id_t read_name,
pm_constant_id_t write_name,
pm_constant_id_t binary_operator,
pm_location_t binary_operator_loc,
struct pm_node *value);
8501PRISM_EXPORTED_FUNCTION
pm_call_or_write_node_t *
pm_call_or_write_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
struct pm_node *receiver,
pm_location_t call_operator_loc,
pm_location_t message_loc,
pm_constant_id_t read_name,
pm_constant_id_t write_name,
pm_location_t operator_loc,
struct pm_node *value);
8581PRISM_EXPORTED_FUNCTION
pm_class_node_t *
pm_class_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
pm_constant_id_list_t locals,
pm_location_t class_keyword_loc,
struct pm_node *constant_path,
pm_location_t inheritance_operator_loc,
struct pm_node *superclass,
struct pm_node *body,
pm_location_t end_keyword_loc,
pm_constant_id_t name);
8861PRISM_EXPORTED_FUNCTION
pm_def_node_t *
pm_def_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
pm_constant_id_t name,
pm_location_t name_loc,
struct pm_node *receiver,
struct pm_parameters_node *parameters,
struct pm_node *body,
pm_constant_id_list_t locals,
pm_location_t def_keyword_loc,
pm_location_t operator_loc,
pm_location_t lparen_loc,
pm_location_t rparen_loc,
pm_location_t equal_loc,
pm_location_t end_keyword_loc);
9015PRISM_EXPORTED_FUNCTION
pm_for_node_t *
pm_for_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
struct pm_node *index,
struct pm_node *collection,
struct pm_statements_node *statements,
pm_location_t for_keyword_loc,
pm_location_t in_keyword_loc,
pm_location_t do_keyword_loc,
pm_location_t end_keyword_loc);
9251PRISM_EXPORTED_FUNCTION
pm_index_and_write_node_t *
pm_index_and_write_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
struct pm_node *receiver,
pm_location_t call_operator_loc,
pm_location_t opening_loc,
struct pm_arguments_node *
arguments,
pm_location_t closing_loc,
struct pm_block_argument_node *block,
pm_location_t operator_loc,
struct pm_node *value);
9271PRISM_EXPORTED_FUNCTION
pm_index_operator_write_node_t *
pm_index_operator_write_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
struct pm_node *receiver,
pm_location_t call_operator_loc,
pm_location_t opening_loc,
struct pm_arguments_node *
arguments,
pm_location_t closing_loc,
struct pm_block_argument_node *block,
pm_constant_id_t binary_operator,
pm_location_t binary_operator_loc,
struct pm_node *value);
9290PRISM_EXPORTED_FUNCTION
pm_index_or_write_node_t *
pm_index_or_write_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
struct pm_node *receiver,
pm_location_t call_operator_loc,
pm_location_t opening_loc,
struct pm_arguments_node *
arguments,
pm_location_t closing_loc,
struct pm_block_argument_node *block,
pm_location_t operator_loc,
struct pm_node *value);
9736PRISM_EXPORTED_FUNCTION
pm_multi_write_node_t *
pm_multi_write_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
pm_node_list_t lefts,
struct pm_node *rest,
pm_node_list_t rights,
pm_location_t lparen_loc,
pm_location_t rparen_loc,
pm_location_t operator_loc,
struct pm_node *value);
9871PRISM_EXPORTED_FUNCTION
pm_parameters_node_t *
pm_parameters_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
pm_node_list_t requireds,
pm_node_list_t optionals,
struct pm_node *rest,
pm_node_list_t posts,
pm_node_list_t keywords,
struct pm_node *keyword_rest,
struct pm_node *block);
10066PRISM_EXPORTED_FUNCTION
pm_rescue_node_t *
pm_rescue_node_new(
pm_arena_t *arena, uint32_t
node_id,
pm_node_flags_t flags,
pm_location_t location,
pm_location_t keyword_loc,
pm_node_list_t exceptions,
pm_location_t operator_loc,
struct pm_node *reference,
pm_location_t then_keyword_loc,
struct pm_statements_node *statements,
struct pm_rescue_node *subsequent);
10375#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS 0
A bump allocator for the prism parser.
struct pm_arena_t pm_arena_t
An opaque pointer to an arena that is used for allocations.
Definition arena.h:22
struct pm_block_parameter_node pm_block_parameter_node_t
BlockParameterNode.
struct pm_call_target_node pm_call_target_node_t
CallTargetNode.
struct pm_else_node pm_else_node_t
ElseNode.
PRISM_EXPORTED_FUNCTION pm_constant_path_or_write_node_t * pm_constant_path_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ConstantPathOrWriteNode node.
PRISM_EXPORTED_FUNCTION pm_for_node_t * pm_for_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *index, struct pm_node *collection, struct pm_statements_node *statements, pm_location_t for_keyword_loc, pm_location_t in_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc)
Allocate and initialize a new ForNode node.
struct pm_assoc_node pm_assoc_node_t
AssocNode.
PRISM_EXPORTED_FUNCTION pm_call_or_write_node_t * pm_call_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new CallOrWriteNode node.
PRISM_EXPORTED_FUNCTION pm_constant_write_node_t * pm_constant_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new ConstantWriteNode node.
PRISM_EXPORTED_FUNCTION pm_rest_parameter_node_t * pm_rest_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc)
Allocate and initialize a new RestParameterNode node.
PRISM_EXPORTED_FUNCTION pm_class_variable_operator_write_node_t * pm_class_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator)
Allocate and initialize a new ClassVariableOperatorWriteNode node.
struct pm_undef_node pm_undef_node_t
UndefNode.
PRISM_EXPORTED_FUNCTION pm_next_node_t * pm_next_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_arguments_node *arguments, pm_location_t keyword_loc)
Allocate and initialize a new NextNode node.
struct pm_class_variable_and_write_node pm_class_variable_and_write_node_t
ClassVariableAndWriteNode.
PRISM_EXPORTED_FUNCTION pm_or_node_t * pm_or_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc)
Allocate and initialize a new OrNode node.
PRISM_EXPORTED_FUNCTION pm_rational_node_t * pm_rational_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_integer_t numerator, pm_integer_t denominator)
Allocate and initialize a new RationalNode node.
PRISM_EXPORTED_FUNCTION pm_parentheses_node_t * pm_parentheses_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *body, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new ParenthesesNode node.
PRISM_EXPORTED_FUNCTION pm_x_string_node_t * pm_x_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped)
Allocate and initialize a new XStringNode node.
PRISM_EXPORTED_FUNCTION pm_lambda_node_t * pm_lambda_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t operator_loc, pm_location_t opening_loc, pm_location_t closing_loc, struct pm_node *parameters, struct pm_node *body)
Allocate and initialize a new LambdaNode node.
struct pm_index_and_write_node pm_index_and_write_node_t
IndexAndWriteNode.
PRISM_EXPORTED_FUNCTION pm_implicit_node_t * pm_implicit_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value)
Allocate and initialize a new ImplicitNode node.
struct pm_index_target_node pm_index_target_node_t
IndexTargetNode.
struct pm_local_variable_target_node pm_local_variable_target_node_t
LocalVariableTargetNode.
struct pm_constant_path_or_write_node pm_constant_path_or_write_node_t
ConstantPathOrWriteNode.
PRISM_EXPORTED_FUNCTION pm_interpolated_match_last_line_node_t * pm_interpolated_match_last_line_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc)
Allocate and initialize a new InterpolatedMatchLastLineNode node.
struct pm_embedded_statements_node pm_embedded_statements_node_t
EmbeddedStatementsNode.
struct pm_block_node pm_block_node_t
BlockNode.
struct pm_hash_pattern_node pm_hash_pattern_node_t
HashPatternNode.
struct pm_optional_parameter_node pm_optional_parameter_node_t
OptionalParameterNode.
struct pm_x_string_node pm_x_string_node_t
XStringNode.
struct pm_forwarding_super_node pm_forwarding_super_node_t
ForwardingSuperNode.
PRISM_EXPORTED_FUNCTION pm_required_keyword_parameter_node_t * pm_required_keyword_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc)
Allocate and initialize a new RequiredKeywordParameterNode node.
PRISM_EXPORTED_FUNCTION pm_match_predicate_node_t * pm_match_predicate_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_node *pattern, pm_location_t keyword_loc)
Allocate and initialize a new MatchPredicateNode node.
#define PM_NODE_ALIGNAS
The alignment required for a child node within a parent node.
Definition ast.h:1155
struct pm_self_node pm_self_node_t
SelfNode.
struct pm_numbered_reference_read_node pm_numbered_reference_read_node_t
NumberedReferenceReadNode.
struct pm_embedded_variable_node pm_embedded_variable_node_t
EmbeddedVariableNode.
PRISM_EXPORTED_FUNCTION pm_alias_global_variable_node_t * pm_alias_global_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *new_name, struct pm_node *old_name, pm_location_t keyword_loc)
Allocate and initialize a new AliasGlobalVariableNode node.
struct pm_class_variable_write_node pm_class_variable_write_node_t
ClassVariableWriteNode.
struct pm_interpolated_string_node pm_interpolated_string_node_t
InterpolatedStringNode.
PRISM_EXPORTED_FUNCTION pm_string_node_t * pm_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped)
Allocate and initialize a new StringNode node.
struct pm_class_variable_or_write_node pm_class_variable_or_write_node_t
ClassVariableOrWriteNode.
PRISM_EXPORTED_FUNCTION pm_forwarding_super_node_t * pm_forwarding_super_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, struct pm_block_node *block)
Allocate and initialize a new ForwardingSuperNode node.
struct pm_optional_keyword_parameter_node pm_optional_keyword_parameter_node_t
OptionalKeywordParameterNode.
struct pm_call_or_write_node pm_call_or_write_node_t
CallOrWriteNode.
struct pm_call_node pm_call_node_t
CallNode.
struct pm_class_variable_read_node pm_class_variable_read_node_t
ClassVariableReadNode.
struct pm_match_required_node pm_match_required_node_t
MatchRequiredNode.
PRISM_EXPORTED_FUNCTION pm_array_node_t * pm_array_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t elements, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new ArrayNode node.
struct pm_shareable_constant_node pm_shareable_constant_node_t
ShareableConstantNode.
struct pm_constant_and_write_node pm_constant_and_write_node_t
ConstantAndWriteNode.
PRISM_EXPORTED_FUNCTION pm_numbered_reference_read_node_t * pm_numbered_reference_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, uint32_t number)
Allocate and initialize a new NumberedReferenceReadNode node.
PRISM_EXPORTED_FUNCTION pm_constant_operator_write_node_t * pm_constant_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator)
Allocate and initialize a new ConstantOperatorWriteNode node.
PRISM_EXPORTED_FUNCTION pm_range_node_t * pm_range_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc)
Allocate and initialize a new RangeNode node.
pm_interpolated_string_node_flags
Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
Definition ast.h:8039
@ PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal; only ...
Definition ast.h:8044
@ PM_INTERPOLATED_STRING_NODE_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal; only for...
Definition ast.h:8041
PRISM_EXPORTED_FUNCTION pm_unless_node_t * pm_unless_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t unless_keyword_loc, struct pm_node *predicate, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_else_node *else_clause, pm_location_t end_keyword_loc)
Allocate and initialize a new UnlessNode node.
struct pm_constant_path_operator_write_node pm_constant_path_operator_write_node_t
ConstantPathOperatorWriteNode.
struct pm_implicit_rest_node pm_implicit_rest_node_t
ImplicitRestNode.
PRISM_EXPORTED_FUNCTION pm_keyword_rest_parameter_node_t * pm_keyword_rest_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc)
Allocate and initialize a new KeywordRestParameterNode node.
PRISM_EXPORTED_FUNCTION pm_local_variable_write_node_t * pm_local_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, uint32_t depth, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new LocalVariableWriteNode node.
pm_range_flags
Flags for range and flip-flop nodes.
Definition ast.h:8092
@ PM_RANGE_FLAGS_EXCLUDE_END
... operator
Definition ast.h:8094
PRISM_EXPORTED_FUNCTION pm_source_line_node_t * pm_source_line_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new SourceLineNode node.
PRISM_EXPORTED_FUNCTION pm_rescue_modifier_node_t * pm_rescue_modifier_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t keyword_loc, struct pm_node *rescue_expression)
Allocate and initialize a new RescueModifierNode node.
struct pm_local_variable_or_write_node pm_local_variable_or_write_node_t
LocalVariableOrWriteNode.
struct pm_local_variable_read_node pm_local_variable_read_node_t
LocalVariableReadNode.
PRISM_EXPORTED_FUNCTION pm_post_execution_node_t * pm_post_execution_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_statements_node *statements, pm_location_t keyword_loc, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new PostExecutionNode node.
struct pm_global_variable_and_write_node pm_global_variable_and_write_node_t
GlobalVariableAndWriteNode.
struct pm_arguments_node pm_arguments_node_t
ArgumentsNode.
pm_node_type
This enum represents every type of node in the Ruby syntax tree.
Definition ast.h:611
@ PM_DEFINED_NODE
DefinedNode.
Definition ast.h:748
@ PM_PRE_EXECUTION_NODE
PreExecutionNode.
Definition ast.h:973
@ PM_RETRY_NODE
RetryNode.
Definition ast.h:1006
@ PM_REDO_NODE
RedoNode.
Definition ast.h:985
@ PM_CONSTANT_PATH_WRITE_NODE
ConstantPathWriteNode.
Definition ast.h:733
@ PM_INDEX_AND_WRITE_NODE
IndexAndWriteNode.
Definition ast.h:829
@ PM_SOURCE_LINE_NODE
SourceLineNode.
Definition ast.h:1027
@ PM_UNLESS_NODE
UnlessNode.
Definition ast.h:1051
@ PM_EMBEDDED_VARIABLE_NODE
EmbeddedVariableNode.
Definition ast.h:757
@ PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOperatorWriteNode.
Definition ast.h:793
@ PM_CALL_NODE
CallNode.
Definition ast.h:667
@ PM_NIL_NODE
NilNode.
Definition ast.h:934
@ PM_GLOBAL_VARIABLE_READ_NODE
GlobalVariableReadNode.
Definition ast.h:799
@ PM_RATIONAL_NODE
RationalNode.
Definition ast.h:982
@ PM_YIELD_NODE
YieldNode.
Definition ast.h:1066
@ PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableAndWriteNode.
Definition ast.h:892
@ PM_CONSTANT_AND_WRITE_NODE
ConstantAndWriteNode.
Definition ast.h:709
@ PM_CLASS_NODE
ClassNode.
Definition ast.h:688
@ PM_FIND_PATTERN_NODE
FindPatternNode.
Definition ast.h:769
@ PM_CALL_OPERATOR_WRITE_NODE
CallOperatorWriteNode.
Definition ast.h:670
@ PM_MATCH_WRITE_NODE
MatchWriteNode.
Definition ast.h:919
@ PM_ARRAY_NODE
ArrayNode.
Definition ast.h:628
@ PM_CONSTANT_PATH_TARGET_NODE
ConstantPathTargetNode.
Definition ast.h:730
@ PM_PROGRAM_NODE
ProgramNode.
Definition ast.h:976
@ PM_OR_NODE
OrNode.
Definition ast.h:955
@ PM_MULTI_WRITE_NODE
MultiWriteNode.
Definition ast.h:928
@ PM_IF_NODE
IfNode.
Definition ast.h:814
@ PM_IMPLICIT_NODE
ImplicitNode.
Definition ast.h:820
@ PM_ARGUMENTS_NODE
ArgumentsNode.
Definition ast.h:625
@ PM_FORWARDING_SUPER_NODE
ForwardingSuperNode.
Definition ast.h:787
@ PM_WHILE_NODE
WhileNode.
Definition ast.h:1060
@ PM_INTERPOLATED_STRING_NODE
InterpolatedStringNode.
Definition ast.h:868
@ PM_FALSE_NODE
FalseNode.
Definition ast.h:766
@ PM_FORWARDING_PARAMETER_NODE
ForwardingParameterNode.
Definition ast.h:784
@ PM_BLOCK_LOCAL_VARIABLE_NODE
BlockLocalVariableNode.
Definition ast.h:649
@ PM_HASH_NODE
HashNode.
Definition ast.h:808
@ PM_UNTIL_NODE
UntilNode.
Definition ast.h:1054
@ PM_MATCH_PREDICATE_NODE
MatchPredicateNode.
Definition ast.h:913
@ PM_X_STRING_NODE
XStringNode.
Definition ast.h:1063
@ PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
LocalVariableOperatorWriteNode.
Definition ast.h:895
@ PM_LOCAL_VARIABLE_OR_WRITE_NODE
LocalVariableOrWriteNode.
Definition ast.h:898
@ PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableAndWriteNode.
Definition ast.h:841
@ PM_GLOBAL_VARIABLE_TARGET_NODE
GlobalVariableTargetNode.
Definition ast.h:802
@ PM_AND_NODE
AndNode.
Definition ast.h:622
@ PM_CONSTANT_TARGET_NODE
ConstantTargetNode.
Definition ast.h:739
@ PM_IT_LOCAL_VARIABLE_READ_NODE
ItLocalVariableReadNode.
Definition ast.h:877
@ PM_CONSTANT_PATH_AND_WRITE_NODE
ConstantPathAndWriteNode.
Definition ast.h:718
@ PM_IN_NODE
InNode.
Definition ast.h:826
@ PM_BLOCK_PARAMETER_NODE
BlockParameterNode.
Definition ast.h:655
@ PM_CAPTURE_PATTERN_NODE
CapturePatternNode.
Definition ast.h:679
@ PM_SOURCE_FILE_NODE
SourceFileNode.
Definition ast.h:1024
@ PM_NO_KEYWORDS_PARAMETER_NODE
NoKeywordsParameterNode.
Definition ast.h:940
@ PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
ConstantPathOperatorWriteNode.
Definition ast.h:724
@ PM_MULTI_TARGET_NODE
MultiTargetNode.
Definition ast.h:925
@ PM_SPLAT_NODE
SplatNode.
Definition ast.h:1030
@ PM_LAMBDA_NODE
LambdaNode.
Definition ast.h:889
@ PM_CLASS_VARIABLE_READ_NODE
ClassVariableReadNode.
Definition ast.h:700
@ PM_REQUIRED_KEYWORD_PARAMETER_NODE
RequiredKeywordParameterNode.
Definition ast.h:991
@ PM_CALL_TARGET_NODE
CallTargetNode.
Definition ast.h:676
@ PM_ELSE_NODE
ElseNode.
Definition ast.h:751
@ PM_INTERPOLATED_MATCH_LAST_LINE_NODE
InterpolatedMatchLastLineNode.
Definition ast.h:862
@ PM_WHEN_NODE
WhenNode.
Definition ast.h:1057
@ PM_NUMBERED_PARAMETERS_NODE
NumberedParametersNode.
Definition ast.h:943
@ PM_SYMBOL_NODE
SymbolNode.
Definition ast.h:1042
@ PM_RESCUE_MODIFIER_NODE
RescueModifierNode.
Definition ast.h:997
@ PM_ALIAS_METHOD_NODE
AliasMethodNode.
Definition ast.h:616
@ PM_MATCH_REQUIRED_NODE
MatchRequiredNode.
Definition ast.h:916
@ PM_FORWARDING_ARGUMENTS_NODE
ForwardingArgumentsNode.
Definition ast.h:781
@ PM_BACK_REFERENCE_READ_NODE
BackReferenceReadNode.
Definition ast.h:640
@ PM_SCOPE_NODE
A special kind of node used for compilation.
Definition ast.h:1069
@ PM_BLOCK_ARGUMENT_NODE
BlockArgumentNode.
Definition ast.h:646
@ PM_SELF_NODE
SelfNode.
Definition ast.h:1012
@ PM_IMPLICIT_REST_NODE
ImplicitRestNode.
Definition ast.h:823
@ PM_TRUE_NODE
TrueNode.
Definition ast.h:1045
@ PM_ASSOC_SPLAT_NODE
AssocSplatNode.
Definition ast.h:637
@ PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableAndWriteNode.
Definition ast.h:691
@ PM_RANGE_NODE
RangeNode.
Definition ast.h:979
@ PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOperatorWriteNode.
Definition ast.h:844
@ PM_LOCAL_VARIABLE_READ_NODE
LocalVariableReadNode.
Definition ast.h:901
@ PM_SHAREABLE_CONSTANT_NODE
ShareableConstantNode.
Definition ast.h:1015
@ PM_NEXT_NODE
NextNode.
Definition ast.h:931
@ PM_INSTANCE_VARIABLE_OR_WRITE_NODE
InstanceVariableOrWriteNode.
Definition ast.h:847
@ PM_REGULAR_EXPRESSION_NODE
RegularExpressionNode.
Definition ast.h:988
@ PM_CLASS_VARIABLE_OR_WRITE_NODE
ClassVariableOrWriteNode.
Definition ast.h:697
@ PM_BLOCK_PARAMETERS_NODE
BlockParametersNode.
Definition ast.h:658
@ PM_CONSTANT_WRITE_NODE
ConstantWriteNode.
Definition ast.h:742
@ PM_HASH_PATTERN_NODE
HashPatternNode.
Definition ast.h:811
@ PM_INDEX_OPERATOR_WRITE_NODE
IndexOperatorWriteNode.
Definition ast.h:832
@ PM_UNDEF_NODE
UndefNode.
Definition ast.h:1048
@ PM_ALTERNATION_PATTERN_NODE
AlternationPatternNode.
Definition ast.h:619
@ PM_ENSURE_NODE
EnsureNode.
Definition ast.h:760
@ PM_LOCAL_VARIABLE_WRITE_NODE
LocalVariableWriteNode.
Definition ast.h:907
@ PM_SINGLETON_CLASS_NODE
SingletonClassNode.
Definition ast.h:1018
@ PM_KEYWORD_HASH_NODE
KeywordHashNode.
Definition ast.h:883
@ PM_PARENTHESES_NODE
ParenthesesNode.
Definition ast.h:961
@ PM_FOR_NODE
ForNode.
Definition ast.h:778
@ PM_CLASS_VARIABLE_WRITE_NODE
ClassVariableWriteNode.
Definition ast.h:706
@ PM_POST_EXECUTION_NODE
PostExecutionNode.
Definition ast.h:970
@ PM_CONSTANT_OPERATOR_WRITE_NODE
ConstantOperatorWriteNode.
Definition ast.h:712
@ PM_RETURN_NODE
ReturnNode.
Definition ast.h:1009
@ PM_MODULE_NODE
ModuleNode.
Definition ast.h:922
@ PM_ARRAY_PATTERN_NODE
ArrayPatternNode.
Definition ast.h:631
@ PM_SUPER_NODE
SuperNode.
Definition ast.h:1039
@ PM_MATCH_LAST_LINE_NODE
MatchLastLineNode.
Definition ast.h:910
@ PM_CONSTANT_PATH_NODE
ConstantPathNode.
Definition ast.h:721
@ PM_INTERPOLATED_SYMBOL_NODE
InterpolatedSymbolNode.
Definition ast.h:871
@ PM_CALL_AND_WRITE_NODE
CallAndWriteNode.
Definition ast.h:664
@ PM_OPTIONAL_KEYWORD_PARAMETER_NODE
OptionalKeywordParameterNode.
Definition ast.h:949
@ PM_CLASS_VARIABLE_TARGET_NODE
ClassVariableTargetNode.
Definition ast.h:703
@ PM_CASE_MATCH_NODE
CaseMatchNode.
Definition ast.h:682
@ PM_BREAK_NODE
BreakNode.
Definition ast.h:661
@ PM_CALL_OR_WRITE_NODE
CallOrWriteNode.
Definition ast.h:673
@ PM_IMAGINARY_NODE
ImaginaryNode.
Definition ast.h:817
@ PM_DEF_NODE
DefNode.
Definition ast.h:745
@ PM_CONSTANT_READ_NODE
ConstantReadNode.
Definition ast.h:736
@ PM_GLOBAL_VARIABLE_WRITE_NODE
GlobalVariableWriteNode.
Definition ast.h:805
@ PM_SOURCE_ENCODING_NODE
SourceEncodingNode.
Definition ast.h:1021
@ PM_BEGIN_NODE
BeginNode.
Definition ast.h:643
@ PM_INTERPOLATED_X_STRING_NODE
InterpolatedXStringNode.
Definition ast.h:874
@ PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableReadNode.
Definition ast.h:850
@ PM_FLIP_FLOP_NODE
FlipFlopNode.
Definition ast.h:772
@ PM_PINNED_VARIABLE_NODE
PinnedVariableNode.
Definition ast.h:967
@ PM_REQUIRED_PARAMETER_NODE
RequiredParameterNode.
Definition ast.h:994
@ PM_INSTANCE_VARIABLE_WRITE_NODE
InstanceVariableWriteNode.
Definition ast.h:856
@ PM_INSTANCE_VARIABLE_TARGET_NODE
InstanceVariableTargetNode.
Definition ast.h:853
@ PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableAndWriteNode.
Definition ast.h:790
@ PM_CASE_NODE
CaseNode.
Definition ast.h:685
@ PM_RESCUE_NODE
RescueNode.
Definition ast.h:1000
@ PM_FLOAT_NODE
FloatNode.
Definition ast.h:775
@ PM_ASSOC_NODE
AssocNode.
Definition ast.h:634
@ PM_IT_PARAMETERS_NODE
ItParametersNode.
Definition ast.h:880
@ PM_INTEGER_NODE
IntegerNode.
Definition ast.h:859
@ PM_LOCAL_VARIABLE_TARGET_NODE
LocalVariableTargetNode.
Definition ast.h:904
@ PM_STRING_NODE
StringNode.
Definition ast.h:1036
@ PM_INDEX_OR_WRITE_NODE
IndexOrWriteNode.
Definition ast.h:835
@ PM_ALIAS_GLOBAL_VARIABLE_NODE
AliasGlobalVariableNode.
Definition ast.h:613
@ PM_PARAMETERS_NODE
ParametersNode.
Definition ast.h:958
@ PM_NUMBERED_REFERENCE_READ_NODE
NumberedReferenceReadNode.
Definition ast.h:946
@ PM_CONSTANT_PATH_OR_WRITE_NODE
ConstantPathOrWriteNode.
Definition ast.h:727
@ PM_GLOBAL_VARIABLE_OR_WRITE_NODE
GlobalVariableOrWriteNode.
Definition ast.h:796
@ PM_CONSTANT_OR_WRITE_NODE
ConstantOrWriteNode.
Definition ast.h:715
@ PM_STATEMENTS_NODE
StatementsNode.
Definition ast.h:1033
@ PM_ERROR_RECOVERY_NODE
ErrorRecoveryNode.
Definition ast.h:763
@ PM_OPTIONAL_PARAMETER_NODE
OptionalParameterNode.
Definition ast.h:952
@ PM_PINNED_EXPRESSION_NODE
PinnedExpressionNode.
Definition ast.h:964
@ PM_BLOCK_NODE
BlockNode.
Definition ast.h:652
@ PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
ClassVariableOperatorWriteNode.
Definition ast.h:694
@ PM_REST_PARAMETER_NODE
RestParameterNode.
Definition ast.h:1003
@ PM_EMBEDDED_STATEMENTS_NODE
EmbeddedStatementsNode.
Definition ast.h:754
@ PM_INTERPOLATED_REGULAR_EXPRESSION_NODE
InterpolatedRegularExpressionNode.
Definition ast.h:865
@ PM_INDEX_TARGET_NODE
IndexTargetNode.
Definition ast.h:838
@ PM_KEYWORD_REST_PARAMETER_NODE
KeywordRestParameterNode.
Definition ast.h:886
@ PM_NO_BLOCK_PARAMETER_NODE
NoBlockParameterNode.
Definition ast.h:937
struct pm_nil_node pm_nil_node_t
NilNode.
struct pm_begin_node pm_begin_node_t
BeginNode.
PRISM_EXPORTED_FUNCTION pm_ensure_node_t * pm_ensure_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t ensure_keyword_loc, struct pm_statements_node *statements, pm_location_t end_keyword_loc)
Allocate and initialize a new EnsureNode node.
PRISM_EXPORTED_FUNCTION pm_hash_node_t * pm_hash_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t elements, pm_location_t closing_loc)
Allocate and initialize a new HashNode node.
PRISM_EXPORTED_FUNCTION pm_global_variable_and_write_node_t * pm_global_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new GlobalVariableAndWriteNode node.
PRISM_EXPORTED_FUNCTION pm_instance_variable_target_node_t * pm_instance_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new InstanceVariableTargetNode node.
struct pm_statements_node pm_statements_node_t
StatementsNode.
struct pm_instance_variable_write_node pm_instance_variable_write_node_t
InstanceVariableWriteNode.
struct pm_false_node pm_false_node_t
FalseNode.
struct pm_keyword_hash_node pm_keyword_hash_node_t
KeywordHashNode.
PRISM_EXPORTED_FUNCTION pm_class_variable_and_write_node_t * pm_class_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ClassVariableAndWriteNode node.
struct pm_return_node pm_return_node_t
ReturnNode.
pm_symbol_flags
Flags for symbol nodes.
Definition ast.h:8177
@ PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8179
@ PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:8185
@ PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8182
struct pm_it_parameters_node pm_it_parameters_node_t
ItParametersNode.
PRISM_EXPORTED_FUNCTION pm_hash_pattern_node_t * pm_hash_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, pm_node_list_t elements, struct pm_node *rest, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new HashPatternNode node.
struct pm_constant_path_node pm_constant_path_node_t
ConstantPathNode.
struct pm_local_variable_write_node pm_local_variable_write_node_t
LocalVariableWriteNode.
PRISM_EXPORTED_FUNCTION pm_constant_path_node_t * pm_constant_path_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *parent, pm_constant_id_t name, pm_location_t delimiter_loc, pm_location_t name_loc)
Allocate and initialize a new ConstantPathNode node.
PRISM_EXPORTED_FUNCTION pm_it_parameters_node_t * pm_it_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new ItParametersNode node.
pm_string_flags
Flags for string nodes.
Definition ast.h:8158
@ PM_STRING_FLAGS_FROZEN
frozen by virtue of a frozen_string_literal: true comment or --enable-frozen-string-literal
Definition ast.h:8166
@ PM_STRING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8163
@ PM_STRING_FLAGS_MUTABLE
mutable by virtue of a frozen_string_literal: false comment or --disable-frozen-string-literal
Definition ast.h:8169
@ PM_STRING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8160
struct pm_implicit_node pm_implicit_node_t
ImplicitNode.
PRISM_EXPORTED_FUNCTION pm_required_parameter_node_t * pm_required_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new RequiredParameterNode node.
PRISM_EXPORTED_FUNCTION pm_optional_keyword_parameter_node_t * pm_optional_keyword_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value)
Allocate and initialize a new OptionalKeywordParameterNode node.
struct pm_yield_node pm_yield_node_t
YieldNode.
pm_arguments_node_flags
Flags for arguments nodes.
Definition ast.h:7956
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_SPLAT
if the arguments contain a splat
Definition ast.h:7967
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_FORWARDING
if the arguments contain forwarding
Definition ast.h:7958
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS
if the arguments contain keywords
Definition ast.h:7961
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
if the arguments contain a keyword splat
Definition ast.h:7964
@ PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS
if the arguments contain multiple splats
Definition ast.h:7970
PRISM_EXPORTED_FUNCTION pm_instance_variable_or_write_node_t * pm_instance_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new InstanceVariableOrWriteNode node.
enum pm_symbol_flags pm_symbol_flags_t
Flags for symbol nodes.
PRISM_EXPORTED_FUNCTION pm_super_node_t * pm_super_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_location_t lparen_loc, struct pm_arguments_node *arguments, pm_location_t rparen_loc, struct pm_node *block)
Allocate and initialize a new SuperNode node.
PRISM_EXPORTED_FUNCTION pm_case_node_t * pm_case_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *predicate, pm_node_list_t conditions, struct pm_else_node *else_clause, pm_location_t case_keyword_loc, pm_location_t end_keyword_loc)
Allocate and initialize a new CaseNode node.
enum pm_encoding_flags pm_encoding_flags_t
Flags for nodes that have unescaped content.
struct pm_local_variable_and_write_node pm_local_variable_and_write_node_t
LocalVariableAndWriteNode.
struct pm_parameters_node pm_parameters_node_t
ParametersNode.
enum pm_integer_base_flags pm_integer_base_flags_t
Flags for integer nodes that correspond to the base of the integer.
struct pm_lambda_node pm_lambda_node_t
LambdaNode.
struct pm_module_node pm_module_node_t
ModuleNode.
PRISM_EXPORTED_FUNCTION pm_numbered_parameters_node_t * pm_numbered_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, uint8_t maximum)
Allocate and initialize a new NumberedParametersNode node.
struct pm_case_node pm_case_node_t
CaseNode.
PRISM_EXPORTED_FUNCTION pm_interpolated_regular_expression_node_t * pm_interpolated_regular_expression_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc)
Allocate and initialize a new InterpolatedRegularExpressionNode node.
struct pm_in_node pm_in_node_t
InNode.
struct pm_if_node pm_if_node_t
IfNode.
struct pm_constant_path_write_node pm_constant_path_write_node_t
ConstantPathWriteNode.
PRISM_EXPORTED_FUNCTION pm_pinned_variable_node_t * pm_pinned_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *variable, pm_location_t operator_loc)
Allocate and initialize a new PinnedVariableNode node.
struct pm_pre_execution_node pm_pre_execution_node_t
PreExecutionNode.
struct pm_rescue_modifier_node pm_rescue_modifier_node_t
RescueModifierNode.
struct pm_splat_node pm_splat_node_t
SplatNode.
struct pm_match_write_node pm_match_write_node_t
MatchWriteNode.
enum pm_call_node_flags pm_call_node_flags_t
Flags for call nodes.
PRISM_EXPORTED_FUNCTION pm_when_node_t * pm_when_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t when_keyword_loc, pm_node_list_t conditions, pm_location_t then_keyword_loc, struct pm_statements_node *statements)
Allocate and initialize a new WhenNode node.
struct pm_multi_write_node pm_multi_write_node_t
MultiWriteNode.
struct pm_local_variable_operator_write_node pm_local_variable_operator_write_node_t
LocalVariableOperatorWriteNode.
PRISM_EXPORTED_FUNCTION pm_find_pattern_node_t * pm_find_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, struct pm_splat_node *left, pm_node_list_t requireds, struct pm_splat_node *right, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new FindPatternNode node.
struct pm_block_argument_node pm_block_argument_node_t
BlockArgumentNode.
PRISM_EXPORTED_FUNCTION pm_index_operator_write_node_t * pm_index_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_constant_id_t binary_operator, pm_location_t binary_operator_loc, struct pm_node *value)
Allocate and initialize a new IndexOperatorWriteNode node.
PRISM_EXPORTED_FUNCTION pm_global_variable_or_write_node_t * pm_global_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new GlobalVariableOrWriteNode node.
enum pm_shareable_constant_node_flags pm_shareable_constant_node_flags_t
Flags for shareable constant nodes.
struct pm_interpolated_x_string_node pm_interpolated_x_string_node_t
InterpolatedXStringNode.
struct pm_constant_write_node pm_constant_write_node_t
ConstantWriteNode.
PRISM_EXPORTED_FUNCTION pm_forwarding_arguments_node_t * pm_forwarding_arguments_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new ForwardingArgumentsNode node.
PRISM_EXPORTED_FUNCTION pm_self_node_t * pm_self_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new SelfNode node.
PRISM_EXPORTED_FUNCTION pm_global_variable_write_node_t * pm_global_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new GlobalVariableWriteNode node.
PRISM_EXPORTED_FUNCTION pm_parameters_node_t * pm_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t requireds, pm_node_list_t optionals, struct pm_node *rest, pm_node_list_t posts, pm_node_list_t keywords, struct pm_node *keyword_rest, struct pm_node *block)
Allocate and initialize a new ParametersNode node.
PRISM_EXPORTED_FUNCTION pm_singleton_class_node_t * pm_singleton_class_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t class_keyword_loc, pm_location_t operator_loc, struct pm_node *expression, struct pm_node *body, pm_location_t end_keyword_loc)
Allocate and initialize a new SingletonClassNode node.
struct pm_error_recovery_node pm_error_recovery_node_t
ErrorRecoveryNode.
PRISM_EXPORTED_FUNCTION pm_if_node_t * pm_if_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t if_keyword_loc, struct pm_node *predicate, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_node *subsequent, pm_location_t end_keyword_loc)
Allocate and initialize a new IfNode node.
PRISM_EXPORTED_FUNCTION pm_keyword_hash_node_t * pm_keyword_hash_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t elements)
Allocate and initialize a new KeywordHashNode node.
struct pm_flip_flop_node pm_flip_flop_node_t
FlipFlopNode.
struct pm_required_keyword_parameter_node pm_required_keyword_parameter_node_t
RequiredKeywordParameterNode.
PRISM_EXPORTED_FUNCTION pm_global_variable_target_node_t * pm_global_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new GlobalVariableTargetNode node.
PRISM_EXPORTED_FUNCTION pm_match_last_line_node_t * pm_match_last_line_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped)
Allocate and initialize a new MatchLastLineNode node.
PRISM_EXPORTED_FUNCTION pm_alternation_pattern_node_t * pm_alternation_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc)
Allocate and initialize a new AlternationPatternNode node.
PRISM_EXPORTED_FUNCTION pm_pinned_expression_node_t * pm_pinned_expression_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t operator_loc, pm_location_t lparen_loc, pm_location_t rparen_loc)
Allocate and initialize a new PinnedExpressionNode node.
struct pm_no_keywords_parameter_node pm_no_keywords_parameter_node_t
NoKeywordsParameterNode.
struct pm_alias_global_variable_node pm_alias_global_variable_node_t
AliasGlobalVariableNode.
struct pm_post_execution_node pm_post_execution_node_t
PostExecutionNode.
PRISM_EXPORTED_FUNCTION pm_embedded_statements_node_t * pm_embedded_statements_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, struct pm_statements_node *statements, pm_location_t closing_loc)
Allocate and initialize a new EmbeddedStatementsNode node.
pm_array_node_flags
Flags for array nodes.
Definition ast.h:7978
@ PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
if array contains splat nodes
Definition ast.h:7980
PRISM_EXPORTED_FUNCTION pm_local_variable_and_write_node_t * pm_local_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value, pm_constant_id_t name, uint32_t depth)
Allocate and initialize a new LocalVariableAndWriteNode node.
enum pm_string_flags pm_string_flags_t
Flags for string nodes.
struct pm_alias_method_node pm_alias_method_node_t
AliasMethodNode.
struct pm_keyword_rest_parameter_node pm_keyword_rest_parameter_node_t
KeywordRestParameterNode.
PRISM_EXPORTED_FUNCTION pm_pre_execution_node_t * pm_pre_execution_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_statements_node *statements, pm_location_t keyword_loc, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new PreExecutionNode node.
PRISM_EXPORTED_FUNCTION pm_alias_method_node_t * pm_alias_method_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *new_name, struct pm_node *old_name, pm_location_t keyword_loc)
Allocate and initialize a new AliasMethodNode node.
PRISM_EXPORTED_FUNCTION pm_instance_variable_read_node_t * pm_instance_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new InstanceVariableReadNode node.
struct pm_global_variable_read_node pm_global_variable_read_node_t
GlobalVariableReadNode.
PRISM_EXPORTED_FUNCTION pm_block_parameter_node_t * pm_block_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc)
Allocate and initialize a new BlockParameterNode node.
PRISM_EXPORTED_FUNCTION pm_else_node_t * pm_else_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t else_keyword_loc, struct pm_statements_node *statements, pm_location_t end_keyword_loc)
Allocate and initialize a new ElseNode node.
struct pm_back_reference_read_node pm_back_reference_read_node_t
BackReferenceReadNode.
enum pm_regular_expression_flags pm_regular_expression_flags_t
Flags for regular expression and match last line nodes.
PRISM_EXPORTED_FUNCTION pm_index_or_write_node_t * pm_index_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new IndexOrWriteNode node.
PRISM_EXPORTED_FUNCTION pm_it_local_variable_read_node_t * pm_it_local_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new ItLocalVariableReadNode node.
PRISM_EXPORTED_FUNCTION pm_redo_node_t * pm_redo_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new RedoNode node.
struct pm_match_last_line_node pm_match_last_line_node_t
MatchLastLineNode.
enum pm_parentheses_node_flags pm_parentheses_node_flags_t
Flags for parentheses nodes.
struct pm_hash_node pm_hash_node_t
HashNode.
PRISM_EXPORTED_FUNCTION pm_false_node_t * pm_false_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new FalseNode node.
PRISM_EXPORTED_FUNCTION pm_case_match_node_t * pm_case_match_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *predicate, pm_node_list_t conditions, struct pm_else_node *else_clause, pm_location_t case_keyword_loc, pm_location_t end_keyword_loc)
Allocate and initialize a new CaseMatchNode node.
struct pm_block_local_variable_node pm_block_local_variable_node_t
BlockLocalVariableNode.
PRISM_EXPORTED_FUNCTION pm_block_local_variable_node_t * pm_block_local_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new BlockLocalVariableNode node.
struct pm_multi_target_node pm_multi_target_node_t
MultiTargetNode.
pm_integer_base_flags
Flags for integer nodes that correspond to the base of the integer.
Definition ast.h:8020
@ PM_INTEGER_BASE_FLAGS_HEXADECIMAL
0x prefix
Definition ast.h:8031
@ PM_INTEGER_BASE_FLAGS_OCTAL
0o or 0 prefix
Definition ast.h:8028
@ PM_INTEGER_BASE_FLAGS_DECIMAL
0d or no prefix
Definition ast.h:8025
@ PM_INTEGER_BASE_FLAGS_BINARY
0b prefix
Definition ast.h:8022
enum pm_interpolated_string_node_flags pm_interpolated_string_node_flags_t
Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
struct pm_rational_node pm_rational_node_t
RationalNode.
PRISM_EXPORTED_FUNCTION pm_array_pattern_node_t * pm_array_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *constant, pm_node_list_t requireds, struct pm_node *rest, pm_node_list_t posts, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new ArrayPatternNode node.
struct pm_class_node pm_class_node_t
ClassNode.
PRISM_EXPORTED_FUNCTION pm_flip_flop_node_t * pm_flip_flop_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc)
Allocate and initialize a new FlipFlopNode node.
PRISM_EXPORTED_FUNCTION pm_local_variable_or_write_node_t * pm_local_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value, pm_constant_id_t name, uint32_t depth)
Allocate and initialize a new LocalVariableOrWriteNode node.
struct pm_pinned_expression_node pm_pinned_expression_node_t
PinnedExpressionNode.
PRISM_EXPORTED_FUNCTION pm_embedded_variable_node_t * pm_embedded_variable_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, struct pm_node *variable)
Allocate and initialize a new EmbeddedVariableNode node.
PRISM_EXPORTED_FUNCTION pm_constant_read_node_t * pm_constant_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new ConstantReadNode node.
PRISM_EXPORTED_FUNCTION pm_local_variable_read_node_t * pm_local_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, uint32_t depth)
Allocate and initialize a new LocalVariableReadNode node.
struct pm_constant_operator_write_node pm_constant_operator_write_node_t
ConstantOperatorWriteNode.
PRISM_EXPORTED_FUNCTION pm_class_variable_read_node_t * pm_class_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new ClassVariableReadNode node.
enum pm_loop_flags pm_loop_flags_t
Flags for while and until loop nodes.
struct pm_ensure_node pm_ensure_node_t
EnsureNode.
struct pm_index_or_write_node pm_index_or_write_node_t
IndexOrWriteNode.
struct pm_forwarding_parameter_node pm_forwarding_parameter_node_t
ForwardingParameterNode.
PRISM_EXPORTED_FUNCTION pm_constant_path_and_write_node_t * pm_constant_path_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ConstantPathAndWriteNode node.
PRISM_EXPORTED_FUNCTION pm_local_variable_operator_write_node_t * pm_local_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t name, pm_constant_id_t binary_operator, uint32_t depth)
Allocate and initialize a new LocalVariableOperatorWriteNode node.
struct pm_constant_or_write_node pm_constant_or_write_node_t
ConstantOrWriteNode.
struct pm_index_operator_write_node pm_index_operator_write_node_t
IndexOperatorWriteNode.
PRISM_EXPORTED_FUNCTION pm_constant_path_operator_write_node_t * pm_constant_path_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator)
Allocate and initialize a new ConstantPathOperatorWriteNode node.
struct pm_when_node pm_when_node_t
WhenNode.
enum pm_token_type pm_token_type_t
This enum represents every type of token in the Ruby source.
struct pm_super_node pm_super_node_t
SuperNode.
PRISM_EXPORTED_FUNCTION pm_symbol_node_t * pm_symbol_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped)
Allocate and initialize a new SymbolNode node.
struct pm_range_node pm_range_node_t
RangeNode.
struct pm_and_node pm_and_node_t
AndNode.
PRISM_EXPORTED_FUNCTION pm_block_parameters_node_t * pm_block_parameters_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_parameters_node *parameters, pm_node_list_t locals, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new BlockParametersNode node.
enum pm_arguments_node_flags pm_arguments_node_flags_t
Flags for arguments nodes.
PRISM_EXPORTED_FUNCTION pm_class_variable_target_node_t * pm_class_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new ClassVariableTargetNode node.
struct pm_constant_path_and_write_node pm_constant_path_and_write_node_t
ConstantPathAndWriteNode.
pm_parentheses_node_flags
Flags for parentheses nodes.
Definition ast.h:8082
@ PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS
parentheses that contain multiple potentially void statements
Definition ast.h:8084
PRISM_EXPORTED_FUNCTION pm_integer_node_t * pm_integer_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_integer_t value)
Allocate and initialize a new IntegerNode node.
PRISM_EXPORTED_FUNCTION pm_class_node_t * pm_class_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t class_keyword_loc, struct pm_node *constant_path, pm_location_t inheritance_operator_loc, struct pm_node *superclass, struct pm_node *body, pm_location_t end_keyword_loc, pm_constant_id_t name)
Allocate and initialize a new ClassNode node.
PRISM_EXPORTED_FUNCTION pm_call_and_write_node_t * pm_call_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new CallAndWriteNode node.
struct pm_rest_parameter_node pm_rest_parameter_node_t
RestParameterNode.
PRISM_EXPORTED_FUNCTION pm_constant_or_write_node_t * pm_constant_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ConstantOrWriteNode node.
PRISM_EXPORTED_FUNCTION pm_call_node_t * pm_call_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_constant_id_t name, pm_location_t message_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, pm_location_t equal_loc, struct pm_node *block)
Allocate and initialize a new CallNode node.
PRISM_EXPORTED_FUNCTION pm_index_target_node_t * pm_index_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block)
Allocate and initialize a new IndexTargetNode node.
PRISM_EXPORTED_FUNCTION pm_assoc_node_t * pm_assoc_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *key, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new AssocNode node.
PRISM_EXPORTED_FUNCTION pm_defined_node_t * pm_defined_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t lparen_loc, struct pm_node *value, pm_location_t rparen_loc, pm_location_t keyword_loc)
Allocate and initialize a new DefinedNode node.
struct pm_assoc_splat_node pm_assoc_splat_node_t
AssocSplatNode.
PRISM_EXPORTED_FUNCTION pm_instance_variable_operator_write_node_t * pm_instance_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator)
Allocate and initialize a new InstanceVariableOperatorWriteNode node.
pm_call_node_flags
Flags for call nodes.
Definition ast.h:7988
@ PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY
a call that ignores method visibility
Definition ast.h:7999
@ PM_CALL_NODE_FLAGS_SAFE_NAVIGATION
&.
Definition ast.h:7990
@ PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
a call that is an attribute write, so the value being written should be returned
Definition ast.h:7996
@ PM_CALL_NODE_FLAGS_VARIABLE_CALL
a call that could have been a local variable
Definition ast.h:7993
struct pm_constant_read_node pm_constant_read_node_t
ConstantReadNode.
struct pm_match_predicate_node pm_match_predicate_node_t
MatchPredicateNode.
struct pm_or_node pm_or_node_t
OrNode.
struct pm_case_match_node pm_case_match_node_t
CaseMatchNode.
PRISM_EXPORTED_FUNCTION pm_def_node_t * pm_def_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *receiver, struct pm_parameters_node *parameters, struct pm_node *body, pm_constant_id_list_t locals, pm_location_t def_keyword_loc, pm_location_t operator_loc, pm_location_t lparen_loc, pm_location_t rparen_loc, pm_location_t equal_loc, pm_location_t end_keyword_loc)
Allocate and initialize a new DefNode node.
PRISM_EXPORTED_FUNCTION pm_no_block_parameter_node_t * pm_no_block_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, pm_location_t keyword_loc)
Allocate and initialize a new NoBlockParameterNode node.
struct pm_call_and_write_node pm_call_and_write_node_t
CallAndWriteNode.
pm_shareable_constant_node_flags
Flags for shareable constant nodes.
Definition ast.h:8142
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_EVERYTHING
constant writes that should be modified with shareable constant value experimental everything
Definition ast.h:8147
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_LITERAL
constant writes that should be modified with shareable constant value literal
Definition ast.h:8144
@ PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY
constant writes that should be modified with shareable constant value experimental copy
Definition ast.h:8150
struct pm_until_node pm_until_node_t
UntilNode.
PRISM_EXPORTED_FUNCTION pm_in_node_t * pm_in_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *pattern, struct pm_statements_node *statements, pm_location_t in_keyword_loc, pm_location_t then_keyword_loc)
Allocate and initialize a new InNode node.
struct pm_retry_node pm_retry_node_t
RetryNode.
PRISM_EXPORTED_FUNCTION pm_class_variable_or_write_node_t * pm_class_variable_or_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ClassVariableOrWriteNode node.
uint16_t pm_node_type_t
This is the type of node embedded in the node struct.
Definition ast.h:1076
struct pm_imaginary_node pm_imaginary_node_t
ImaginaryNode.
struct pm_array_pattern_node pm_array_pattern_node_t
ArrayPatternNode.
pm_keyword_hash_node_flags
Flags for keyword hash nodes.
Definition ast.h:8052
@ PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS
a keyword hash which only has AssocNode elements all with symbol keys, which means the elements can b...
Definition ast.h:8054
enum pm_keyword_hash_node_flags pm_keyword_hash_node_flags_t
Flags for keyword hash nodes.
PRISM_EXPORTED_FUNCTION pm_rescue_node_t * pm_rescue_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_node_list_t exceptions, pm_location_t operator_loc, struct pm_node *reference, pm_location_t then_keyword_loc, struct pm_statements_node *statements, struct pm_rescue_node *subsequent)
Allocate and initialize a new RescueNode node.
struct pm_redo_node pm_redo_node_t
RedoNode.
struct pm_source_encoding_node pm_source_encoding_node_t
SourceEncodingNode.
struct pm_true_node pm_true_node_t
TrueNode.
struct pm_break_node pm_break_node_t
BreakNode.
struct pm_integer_node pm_integer_node_t
IntegerNode.
struct pm_constant_path_target_node pm_constant_path_target_node_t
ConstantPathTargetNode.
struct pm_call_operator_write_node pm_call_operator_write_node_t
CallOperatorWriteNode.
struct pm_for_node pm_for_node_t
ForNode.
enum pm_range_flags pm_range_flags_t
Flags for range and flip-flop nodes.
PRISM_EXPORTED_FUNCTION pm_source_encoding_node_t * pm_source_encoding_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new SourceEncodingNode node.
struct pm_global_variable_target_node pm_global_variable_target_node_t
GlobalVariableTargetNode.
struct pm_node_list pm_node_list_t
A list of nodes in the source, most often used for lists of children.
PRISM_EXPORTED_FUNCTION pm_implicit_rest_node_t * pm_implicit_rest_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new ImplicitRestNode node.
struct pm_required_parameter_node pm_required_parameter_node_t
RequiredParameterNode.
struct pm_symbol_node pm_symbol_node_t
SymbolNode.
struct pm_block_parameters_node pm_block_parameters_node_t
BlockParametersNode.
PRISM_EXPORTED_FUNCTION pm_optional_parameter_node_t * pm_optional_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new OptionalParameterNode node.
struct pm_alternation_pattern_node pm_alternation_pattern_node_t
AlternationPatternNode.
struct pm_parentheses_node pm_parentheses_node_t
ParenthesesNode.
pm_regular_expression_flags
Flags for regular expression and match last line nodes.
Definition ast.h:8102
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8131
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
internal bytes forced the encoding to US-ASCII
Definition ast.h:8134
@ PM_REGULAR_EXPRESSION_FLAGS_EUC_JP
e - forces the EUC-JP encoding
Definition ast.h:8116
@ PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE
i - ignores the case of characters when matching
Definition ast.h:8104
@ PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8128
@ PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT
n - forces the ASCII-8BIT encoding
Definition ast.h:8119
@ PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE
m - allows $ to match the end of lines within strings
Definition ast.h:8110
@ PM_REGULAR_EXPRESSION_FLAGS_EXTENDED
x - ignores whitespace and allows comments in regular expressions
Definition ast.h:8107
@ PM_REGULAR_EXPRESSION_FLAGS_ONCE
o - only interpolates values into the regular expression once
Definition ast.h:8113
@ PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J
s - forces the Windows-31J encoding
Definition ast.h:8122
@ PM_REGULAR_EXPRESSION_FLAGS_UTF_8
u - forces the UTF-8 encoding
Definition ast.h:8125
PRISM_EXPORTED_FUNCTION pm_constant_path_target_node_t * pm_constant_path_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *parent, pm_constant_id_t name, pm_location_t delimiter_loc, pm_location_t name_loc)
Allocate and initialize a new ConstantPathTargetNode node.
PRISM_EXPORTED_FUNCTION pm_imaginary_node_t * pm_imaginary_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *numeric)
Allocate and initialize a new ImaginaryNode node.
PRISM_EXPORTED_FUNCTION pm_global_variable_read_node_t * pm_global_variable_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new GlobalVariableReadNode node.
struct pm_forwarding_arguments_node pm_forwarding_arguments_node_t
ForwardingArgumentsNode.
PRISM_EXPORTED_FUNCTION pm_multi_write_node_t * pm_multi_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t lefts, struct pm_node *rest, pm_node_list_t rights, pm_location_t lparen_loc, pm_location_t rparen_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new MultiWriteNode node.
struct pm_instance_variable_read_node pm_instance_variable_read_node_t
InstanceVariableReadNode.
PRISM_EXPORTED_FUNCTION pm_instance_variable_write_node_t * pm_instance_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new InstanceVariableWriteNode node.
struct pm_constant_target_node pm_constant_target_node_t
ConstantTargetNode.
PRISM_EXPORTED_FUNCTION pm_assoc_splat_node_t * pm_assoc_splat_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new AssocSplatNode node.
PRISM_EXPORTED_FUNCTION pm_begin_node_t * pm_begin_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t begin_keyword_loc, struct pm_statements_node *statements, struct pm_rescue_node *rescue_clause, struct pm_else_node *else_clause, struct pm_ensure_node *ensure_clause, pm_location_t end_keyword_loc)
Allocate and initialize a new BeginNode node.
PRISM_EXPORTED_FUNCTION pm_yield_node_t * pm_yield_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, pm_location_t lparen_loc, struct pm_arguments_node *arguments, pm_location_t rparen_loc)
Allocate and initialize a new YieldNode node.
PRISM_EXPORTED_FUNCTION pm_undef_node_t * pm_undef_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t names, pm_location_t keyword_loc)
Allocate and initialize a new UndefNode node.
PRISM_EXPORTED_FUNCTION pm_block_argument_node_t * pm_block_argument_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *expression, pm_location_t operator_loc)
Allocate and initialize a new BlockArgumentNode node.
PRISM_EXPORTED_FUNCTION pm_retry_node_t * pm_retry_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new RetryNode node.
struct pm_node pm_node_t
This is the base structure that represents a node in the syntax tree.
PRISM_EXPORTED_FUNCTION pm_block_node_t * pm_block_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, struct pm_node *parameters, struct pm_node *body, pm_location_t opening_loc, pm_location_t closing_loc)
Allocate and initialize a new BlockNode node.
struct pm_defined_node pm_defined_node_t
DefinedNode.
PRISM_EXPORTED_FUNCTION pm_local_variable_target_node_t * pm_local_variable_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, uint32_t depth)
Allocate and initialize a new LocalVariableTargetNode node.
struct pm_it_local_variable_read_node pm_it_local_variable_read_node_t
ItLocalVariableReadNode.
PRISM_EXPORTED_FUNCTION pm_capture_pattern_node_t * pm_capture_pattern_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_local_variable_target_node *target, pm_location_t operator_loc)
Allocate and initialize a new CapturePatternNode node.
PRISM_EXPORTED_FUNCTION pm_error_recovery_node_t * pm_error_recovery_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *unexpected)
Allocate and initialize a new ErrorRecoveryNode node.
struct pm_interpolated_symbol_node pm_interpolated_symbol_node_t
InterpolatedSymbolNode.
PRISM_EXPORTED_FUNCTION pm_no_keywords_parameter_node_t * pm_no_keywords_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, pm_location_t keyword_loc)
Allocate and initialize a new NoKeywordsParameterNode node.
PRISM_EXPORTED_FUNCTION pm_call_target_node_t * pm_call_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_constant_id_t name, pm_location_t message_loc)
Allocate and initialize a new CallTargetNode node.
PRISM_EXPORTED_FUNCTION pm_while_node_t * pm_while_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t while_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc, struct pm_node *predicate, struct pm_statements_node *statements)
Allocate and initialize a new WhileNode node.
struct pm_class_variable_target_node pm_class_variable_target_node_t
ClassVariableTargetNode.
struct pm_def_node pm_def_node_t
DefNode.
PRISM_EXPORTED_FUNCTION pm_float_node_t * pm_float_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, double value)
Allocate and initialize a new FloatNode node.
struct pm_singleton_class_node pm_singleton_class_node_t
SingletonClassNode.
PRISM_EXPORTED_FUNCTION pm_regular_expression_node_t * pm_regular_expression_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_location_t content_loc, pm_location_t closing_loc, pm_string_t unescaped)
Allocate and initialize a new RegularExpressionNode node.
PRISM_EXPORTED_FUNCTION pm_constant_and_write_node_t * pm_constant_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ConstantAndWriteNode node.
PRISM_EXPORTED_FUNCTION pm_call_operator_write_node_t * pm_call_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t message_loc, pm_constant_id_t read_name, pm_constant_id_t write_name, pm_constant_id_t binary_operator, pm_location_t binary_operator_loc, struct pm_node *value)
Allocate and initialize a new CallOperatorWriteNode node.
PRISM_EXPORTED_FUNCTION pm_back_reference_read_node_t * pm_back_reference_read_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new BackReferenceReadNode node.
PRISM_EXPORTED_FUNCTION pm_match_required_node_t * pm_match_required_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *value, struct pm_node *pattern, pm_location_t operator_loc)
Allocate and initialize a new MatchRequiredNode node.
uint16_t pm_node_flags_t
These are the flags embedded in the node struct.
Definition ast.h:1082
PRISM_EXPORTED_FUNCTION pm_return_node_t * pm_return_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t keyword_loc, struct pm_arguments_node *arguments)
Allocate and initialize a new ReturnNode node.
PRISM_EXPORTED_FUNCTION pm_constant_path_write_node_t * pm_constant_path_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_constant_path_node *target, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new ConstantPathWriteNode node.
PRISM_EXPORTED_FUNCTION pm_forwarding_parameter_node_t * pm_forwarding_parameter_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new ForwardingParameterNode node.
struct pm_capture_pattern_node pm_capture_pattern_node_t
CapturePatternNode.
PRISM_EXPORTED_FUNCTION pm_constant_target_node_t * pm_constant_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name)
Allocate and initialize a new ConstantTargetNode node.
struct pm_source_file_node pm_source_file_node_t
SourceFileNode.
PRISM_EXPORTED_FUNCTION pm_statements_node_t * pm_statements_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t body)
Allocate and initialize a new StatementsNode node.
PRISM_EXPORTED_FUNCTION pm_arguments_node_t * pm_arguments_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t arguments)
Allocate and initialize a new ArgumentsNode node.
PRISM_EXPORTED_FUNCTION pm_until_node_t * pm_until_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t until_keyword_loc, pm_location_t do_keyword_loc, pm_location_t end_keyword_loc, struct pm_node *predicate, struct pm_statements_node *statements)
Allocate and initialize a new UntilNode node.
PRISM_EXPORTED_FUNCTION pm_interpolated_symbol_node_t * pm_interpolated_symbol_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc)
Allocate and initialize a new InterpolatedSymbolNode node.
struct pm_regular_expression_node pm_regular_expression_node_t
RegularExpressionNode.
PRISM_EXPORTED_FUNCTION pm_global_variable_operator_write_node_t * pm_global_variable_operator_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t binary_operator_loc, struct pm_node *value, pm_constant_id_t binary_operator)
Allocate and initialize a new GlobalVariableOperatorWriteNode node.
pm_token_type
This enum represents every type of token in the Ruby source.
Definition ast.h:37
@ PM_TOKEN_STAR_STAR
**
Definition ast.h:489
@ PM_TOKEN_DOT_DOT_DOT
the ... range operator or forwarding parameter
Definition ast.h:177
@ PM_TOKEN_MINUS_EQUAL
-=
Definition ast.h:414
@ PM_TOKEN_IGNORED_NEWLINE
an ignored newline
Definition ast.h:246
@ PM_TOKEN_BANG_EQUAL
!=
Definition ast.h:117
@ PM_TOKEN_KEYWORD___FILE__
__FILE__
Definition ast.h:378
@ PM_TOKEN_KEYWORD_WHEN
when
Definition ast.h:75
@ PM_TOKEN_FLOAT
a floating point number
Definition ast.h:210
@ PM_TOKEN_PLUS_EQUAL
+=
Definition ast.h:465
@ PM_TOKEN_DOT_DOT
the .
Definition ast.h:174
@ PM_TOKEN_UDOT_DOT
unary .
Definition ast.h:516
@ PM_TOKEN_AMPERSAND_DOT
&.
Definition ast.h:102
@ PM_TOKEN_NEWLINE
a newline character outside of other tokens
Definition ast.h:78
@ PM_TOKEN_NUMBERED_REFERENCE
a numbered reference to a capture group in the previous regular expression match
Definition ast.h:420
@ PM_TOKEN_KEYWORD_DO_BLOCK
do keyword for a block attached to a command
Definition ast.h:291
@ PM_TOKEN_AMPERSAND
&
Definition ast.h:93
@ PM_TOKEN_KEYWORD_YIELD
yield
Definition ast.h:372
@ PM_TOKEN_KEYWORD_END
end
Definition ast.h:60
@ PM_TOKEN_LAMBDA_BEGIN
{
Definition ast.h:390
@ PM_TOKEN_KEYWORD_UNTIL_MODIFIER
until in the modifier form
Definition ast.h:363
@ PM_TOKEN_BRACE_LEFT_ARGUMENT
{ for a block following a parenthesized argument
Definition ast.h:126
@ PM_TOKEN_EQUAL_EQUAL_EQUAL
===
Definition ast.h:201
@ PM_TOKEN_INTEGER_RATIONAL
an integer with a rational suffix
Definition ast.h:258
@ PM_TOKEN_USTAR
unary *
Definition ast.h:531
@ PM_TOKEN_TILDE
~ or ~@
Definition ast.h:507
@ PM_TOKEN_KEYWORD___ENCODING__
__ENCODING__
Definition ast.h:375
@ PM_TOKEN_REGEXP_END
the end of a regular expression
Definition ast.h:474
@ PM_TOKEN_KEYWORD_UNTIL
until
Definition ast.h:360
@ PM_TOKEN_COMMA
,
Definition ast.h:45
@ PM_TOKEN_MAXIMUM
The maximum token value.
Definition ast.h:549
@ PM_TOKEN_GREATER
>
Definition ast.h:225
@ PM_TOKEN_INTEGER
an integer (any base)
Definition ast.h:252
@ PM_TOKEN_SLASH_EQUAL
/=
Definition ast.h:480
@ PM_TOKEN_UMINUS_NUM
-@ for a number
Definition ast.h:525
@ PM_TOKEN_EMBVAR
#
Definition ast.h:192
@ PM_TOKEN_KEYWORD_UNLESS_MODIFIER
unless in the modifier form
Definition ast.h:357
@ PM_TOKEN_INTEGER_RATIONAL_IMAGINARY
an integer with a rational and imaginary suffix
Definition ast.h:261
@ PM_TOKEN_FLOAT_RATIONAL_IMAGINARY
a floating pointer number with a rational and imaginary suffix
Definition ast.h:219
@ PM_TOKEN_BRACKET_LEFT_RIGHT
[]
Definition ast.h:138
@ PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL
&&=
Definition ast.h:99
@ PM_TOKEN_KEYWORD_CLASS
class
Definition ast.h:282
@ PM_TOKEN_KEYWORD_BEGIN
begin
Definition ast.h:270
@ PM_TOKEN_KEYWORD_DO_LAMBDA
do keyword that opens the body of a lambda literal
Definition ast.h:294
@ PM_TOKEN_USTAR_STAR
unary **
Definition ast.h:534
@ PM_TOKEN_GREATER_GREATER_EQUAL
>>=
Definition ast.h:234
@ PM_TOKEN_PERCENT_EQUAL
%=
Definition ast.h:435
@ PM_TOKEN_PERCENT
%
Definition ast.h:432
@ PM_TOKEN_KEYWORD_IN
in
Definition ast.h:66
@ PM_TOKEN_BANG
! or !@
Definition ast.h:114
@ PM_TOKEN_KEYWORD_NOT
not
Definition ast.h:324
@ PM_TOKEN_BRACKET_LEFT_ARRAY
[ for the beginning of an array
Definition ast.h:135
@ PM_TOKEN_HEREDOC_END
the end of a heredoc
Definition ast.h:237
@ PM_TOKEN_HEREDOC_START
the start of a heredoc
Definition ast.h:240
@ PM_TOKEN_KEYWORD_DEFINED
defined?
Definition ast.h:288
@ PM_TOKEN_UCOLON_COLON
unary ::
Definition ast.h:513
@ PM_TOKEN_LABEL_END
the end of a label
Definition ast.h:387
@ PM_TOKEN_EQUAL_GREATER
=>
Definition ast.h:204
@ PM_TOKEN_KEYWORD_UNLESS
unless
Definition ast.h:354
@ PM_TOKEN_KEYWORD_ENSURE
ensure
Definition ast.h:63
@ PM_TOKEN_AMPERSAND_EQUAL
&=
Definition ast.h:105
@ PM_TOKEN_EQUAL_EQUAL
==
Definition ast.h:198
@ PM_TOKEN_UPLUS
+@
Definition ast.h:528
@ PM_TOKEN_FLOAT_IMAGINARY
a floating pointer number with an imaginary suffix
Definition ast.h:213
@ PM_TOKEN_KEYWORD_BEGIN_UPCASE
BEGIN.
Definition ast.h:273
@ PM_TOKEN_LESS_EQUAL_GREATER
<=>
Definition ast.h:399
@ PM_TOKEN_KEYWORD_RESCUE_MODIFIER
rescue in the modifier form
Definition ast.h:333
@ PM_TOKEN_MINUS_GREATER
->
Definition ast.h:417
@ PM_TOKEN_KEYWORD_FALSE
false
Definition ast.h:303
@ PM_TOKEN_PIPE_PIPE_EQUAL
||=
Definition ast.h:459
@ PM_TOKEN_KEYWORD_IF
if
Definition ast.h:309
@ PM_TOKEN_EMBEXPR_BEGIN
#{
Definition ast.h:189
@ PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES
( for a parentheses node
Definition ast.h:429
@ PM_TOKEN_EMBDOC_END
=end
Definition ast.h:183
@ PM_TOKEN_KEYWORD_ELSE
else
Definition ast.h:54
@ PM_TOKEN_BACK_REFERENCE
a back reference
Definition ast.h:111
@ PM_TOKEN_BRACKET_LEFT
[
Definition ast.h:132
@ PM_TOKEN_EOF
final token in the file
Definition ast.h:39
@ PM_TOKEN_PIPE_PIPE
||
Definition ast.h:456
@ PM_TOKEN_KEYWORD_NIL
nil
Definition ast.h:321
@ PM_TOKEN_PERCENT_UPPER_W
%W
Definition ast.h:450
@ PM_TOKEN_KEYWORD_RETURN
return
Definition ast.h:339
@ PM_TOKEN_CLASS_VARIABLE
a class variable
Definition ast.h:156
@ PM_TOKEN_PIPE
|
Definition ast.h:87
@ PM_TOKEN_PARENTHESIS_LEFT
(
Definition ast.h:423
@ PM_TOKEN_BANG_TILDE
!~
Definition ast.h:120
@ PM_TOKEN_DOT
the .
Definition ast.h:171
@ PM_TOKEN_PARENTHESIS_RIGHT
)
Definition ast.h:84
@ PM_TOKEN_KEYWORD_RESCUE
rescue
Definition ast.h:69
@ PM_TOKEN_INSTANCE_VARIABLE
an instance variable
Definition ast.h:249
@ PM_TOKEN_PIPE_EQUAL
|=
Definition ast.h:453
@ PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL
[]=
Definition ast.h:141
@ PM_TOKEN_UAMPERSAND
unary &
Definition ast.h:510
@ PM_TOKEN_MINUS
-
Definition ast.h:411
@ PM_TOKEN_CONSTANT
a constant
Definition ast.h:168
@ PM_TOKEN_IDENTIFIER
an identifier
Definition ast.h:243
@ PM_TOKEN_EMBDOC_BEGIN
=begin
Definition ast.h:180
@ PM_TOKEN_STAR_EQUAL
*=
Definition ast.h:486
@ PM_TOKEN_KEYWORD_OR
or
Definition ast.h:327
@ PM_TOKEN_KEYWORD_AND
and
Definition ast.h:267
@ PM_TOKEN_LESS
<
Definition ast.h:393
@ PM_TOKEN_KEYWORD_BREAK
break
Definition ast.h:276
@ PM_TOKEN_PERCENT_LOWER_W
%w
Definition ast.h:441
@ PM_TOKEN_SYMBOL_BEGIN
the beginning of a symbol
Definition ast.h:504
@ PM_TOKEN_METHOD_NAME
a method name
Definition ast.h:408
@ PM_TOKEN_KEYWORD_CASE
case
Definition ast.h:279
@ PM_TOKEN_WORDS_SEP
a separator between words in a list
Definition ast.h:537
@ PM_TOKEN_FLOAT_RATIONAL
a floating pointer number with a rational suffix
Definition ast.h:216
@ PM_TOKEN_LESS_LESS_EQUAL
<<=
Definition ast.h:405
@ PM_TOKEN_EMBDOC_LINE
a line inside of embedded documentation
Definition ast.h:186
@ PM_TOKEN_KEYWORD_SUPER
super
Definition ast.h:345
@ PM_TOKEN_KEYWORD_DO
do
Definition ast.h:51
@ PM_TOKEN_KEYWORD_REDO
redo
Definition ast.h:330
@ PM_TOKEN_EQUAL_TILDE
=~
Definition ast.h:207
@ PM_TOKEN_EMBEXPR_END
}
Definition ast.h:48
@ PM_TOKEN_KEYWORD_END_UPCASE
END.
Definition ast.h:300
@ PM_TOKEN_KEYWORD___LINE__
__LINE__
Definition ast.h:381
@ PM_TOKEN_BRACE_LEFT_HASH
{ for a hash literal
Definition ast.h:129
@ PM_TOKEN_STRING_END
the end of a string
Definition ast.h:501
@ PM_TOKEN_WORDS_SEP_IMPLICIT
a separator between words in a list that has no source characters
Definition ast.h:540
@ PM_TOKEN_STRING_CONTENT
the contents of a string
Definition ast.h:498
@ PM_TOKEN_BRACE_LEFT
{
Definition ast.h:123
@ PM_TOKEN_COLON_COLON
::
Definition ast.h:162
@ PM_TOKEN_GREATER_GREATER
>>
Definition ast.h:231
@ PM_TOKEN_PERCENT_LOWER_X
%x
Definition ast.h:444
@ PM_TOKEN_PARENTHESIS_LEFT_GROUPING
( scanned at the beginning of an expression
Definition ast.h:426
@ PM_TOKEN_KEYWORD_SELF
self
Definition ast.h:342
@ PM_TOKEN_PERCENT_LOWER_I
%i
Definition ast.h:438
@ PM_TOKEN_NEWLINE_TERMINATOR
a newline that terminates a construct where a newline is otherwise insignificant
Definition ast.h:81
@ PM_TOKEN_KEYWORD_ALIAS
alias
Definition ast.h:264
@ PM_TOKEN_GLOBAL_VARIABLE
a global variable
Definition ast.h:222
@ PM_TOKEN_KEYWORD_IF_MODIFIER
if in the modifier form
Definition ast.h:312
@ PM_TOKEN_SLASH
/
Definition ast.h:477
@ PM_TOKEN_KEYWORD_RETRY
retry
Definition ast.h:336
@ PM_TOKEN_COLON
:
Definition ast.h:159
@ PM_TOKEN_KEYWORD_UNDEF
undef
Definition ast.h:351
@ PM_TOKEN_BRACKET_RIGHT
]
Definition ast.h:144
@ PM_TOKEN_KEYWORD_FOR
for
Definition ast.h:306
@ PM_TOKEN_KEYWORD_THEN
then
Definition ast.h:72
@ PM_TOKEN_QUESTION_MARK
?
Definition ast.h:468
@ PM_TOKEN___END__
marker for the point in the file at which the parser should stop
Definition ast.h:546
@ PM_TOKEN_KEYWORD_WHILE
while
Definition ast.h:366
@ PM_TOKEN_EQUAL
=
Definition ast.h:195
@ PM_TOKEN_KEYWORD_DEF
def
Definition ast.h:285
@ PM_TOKEN_UDOT_DOT_DOT
unary ... operator
Definition ast.h:519
@ PM_TOKEN_STAR
Definition ast.h:483
@ PM_TOKEN_KEYWORD_WHILE_MODIFIER
while in the modifier form
Definition ast.h:369
@ PM_TOKEN_KEYWORD_TRUE
true
Definition ast.h:348
@ PM_TOKEN_BRACE_RIGHT
}
Definition ast.h:42
@ PM_TOKEN_SEMICOLON
;
Definition ast.h:90
@ PM_TOKEN_REGEXP_BEGIN
the beginning of a regular expression
Definition ast.h:471
@ PM_TOKEN_CARET
^
Definition ast.h:147
@ PM_TOKEN_PERCENT_UPPER_I
%I
Definition ast.h:447
@ PM_TOKEN_KEYWORD_DO_LOOP
do keyword for a predicate in a while, until, or for loop
Definition ast.h:297
@ PM_TOKEN_KEYWORD_MODULE
module
Definition ast.h:315
@ PM_TOKEN_PLUS
+
Definition ast.h:462
@ PM_TOKEN_KEYWORD_NEXT
next
Definition ast.h:318
@ PM_TOKEN_BACKTICK
` as a method name
Definition ast.h:108
@ PM_TOKEN_INTEGER_IMAGINARY
an integer with an imaginary suffix
Definition ast.h:255
@ PM_TOKEN_LABEL
a label
Definition ast.h:384
@ PM_TOKEN_STAR_STAR_EQUAL
**=
Definition ast.h:492
@ PM_TOKEN_CHARACTER_LITERAL
a character literal
Definition ast.h:153
@ PM_TOKEN_XSTRING_BEGIN
the beginning of an execution string
Definition ast.h:543
@ PM_TOKEN_AMPERSAND_AMPERSAND
&&
Definition ast.h:96
@ PM_TOKEN_UMINUS
-@
Definition ast.h:522
@ PM_TOKEN_LESS_LESS
<<
Definition ast.h:402
@ PM_TOKEN_GREATER_EQUAL
>=
Definition ast.h:228
@ PM_TOKEN_COMMENT
a comment
Definition ast.h:165
@ PM_TOKEN_CARET_EQUAL
^=
Definition ast.h:150
@ PM_TOKEN_KEYWORD_ELSIF
elsif
Definition ast.h:57
@ PM_TOKEN_STRING_BEGIN
the beginning of a string
Definition ast.h:495
@ PM_TOKEN_LESS_EQUAL
<=
Definition ast.h:396
struct pm_global_variable_or_write_node pm_global_variable_or_write_node_t
GlobalVariableOrWriteNode.
PRISM_EXPORTED_FUNCTION pm_source_file_node_t * pm_source_file_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_string_t filepath)
Allocate and initialize a new SourceFileNode node.
PRISM_EXPORTED_FUNCTION pm_nil_node_t * pm_nil_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new NilNode node.
enum pm_array_node_flags pm_array_node_flags_t
Flags for array nodes.
struct pm_rescue_node pm_rescue_node_t
RescueNode.
PRISM_EXPORTED_FUNCTION pm_interpolated_string_node_t * pm_interpolated_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc)
Allocate and initialize a new InterpolatedStringNode node.
PRISM_EXPORTED_FUNCTION pm_class_variable_write_node_t * pm_class_variable_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, struct pm_node *value, pm_location_t operator_loc)
Allocate and initialize a new ClassVariableWriteNode node.
PRISM_EXPORTED_FUNCTION pm_shareable_constant_node_t * pm_shareable_constant_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *write)
Allocate and initialize a new ShareableConstantNode node.
struct pm_array_node pm_array_node_t
ArrayNode.
PRISM_EXPORTED_FUNCTION pm_multi_target_node_t * pm_multi_target_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_node_list_t lefts, struct pm_node *rest, pm_node_list_t rights, pm_location_t lparen_loc, pm_location_t rparen_loc)
Allocate and initialize a new MultiTargetNode node.
struct pm_while_node pm_while_node_t
WhileNode.
PRISM_EXPORTED_FUNCTION pm_module_node_t * pm_module_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, pm_location_t module_keyword_loc, struct pm_node *constant_path, struct pm_node *body, pm_location_t end_keyword_loc, pm_constant_id_t name)
Allocate and initialize a new ModuleNode node.
struct pm_global_variable_write_node pm_global_variable_write_node_t
GlobalVariableWriteNode.
struct pm_instance_variable_or_write_node pm_instance_variable_or_write_node_t
InstanceVariableOrWriteNode.
struct pm_source_line_node pm_source_line_node_t
SourceLineNode.
pm_parameter_flags
Flags for parameter nodes.
Definition ast.h:8072
@ PM_PARAMETER_FLAGS_REPEATED_PARAMETER
a parameter name that has been repeated in the method signature
Definition ast.h:8074
struct pm_no_block_parameter_node pm_no_block_parameter_node_t
NoBlockParameterNode.
pm_encoding_flags
Flags for nodes that have unescaped content.
Definition ast.h:8007
@ PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
internal bytes forced the encoding to binary
Definition ast.h:8012
@ PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING
internal bytes forced the encoding to UTF-8
Definition ast.h:8009
PRISM_EXPORTED_FUNCTION pm_instance_variable_and_write_node_t * pm_instance_variable_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_t name, pm_location_t name_loc, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new InstanceVariableAndWriteNode node.
PRISM_EXPORTED_FUNCTION pm_index_and_write_node_t * pm_index_and_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *receiver, pm_location_t call_operator_loc, pm_location_t opening_loc, struct pm_arguments_node *arguments, pm_location_t closing_loc, struct pm_block_argument_node *block, pm_location_t operator_loc, struct pm_node *value)
Allocate and initialize a new IndexAndWriteNode node.
struct pm_interpolated_match_last_line_node pm_interpolated_match_last_line_node_t
InterpolatedMatchLastLineNode.
struct pm_numbered_parameters_node pm_numbered_parameters_node_t
NumberedParametersNode.
struct pm_class_variable_operator_write_node pm_class_variable_operator_write_node_t
ClassVariableOperatorWriteNode.
struct pm_next_node pm_next_node_t
NextNode.
struct pm_unless_node pm_unless_node_t
UnlessNode.
struct pm_interpolated_regular_expression_node pm_interpolated_regular_expression_node_t
InterpolatedRegularExpressionNode.
struct pm_instance_variable_target_node pm_instance_variable_target_node_t
InstanceVariableTargetNode.
enum pm_parameter_flags pm_parameter_flags_t
Flags for parameter nodes.
struct pm_string_node pm_string_node_t
StringNode.
struct pm_float_node pm_float_node_t
FloatNode.
PRISM_EXPORTED_FUNCTION pm_and_node_t * pm_and_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_node *left, struct pm_node *right, pm_location_t operator_loc)
Allocate and initialize a new AndNode node.
struct pm_global_variable_operator_write_node pm_global_variable_operator_write_node_t
GlobalVariableOperatorWriteNode.
PRISM_EXPORTED_FUNCTION pm_interpolated_x_string_node_t * pm_interpolated_x_string_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t opening_loc, pm_node_list_t parts, pm_location_t closing_loc)
Allocate and initialize a new InterpolatedXStringNode node.
PRISM_EXPORTED_FUNCTION pm_true_node_t * pm_true_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location)
Allocate and initialize a new TrueNode node.
PRISM_EXPORTED_FUNCTION pm_match_write_node_t * pm_match_write_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_call_node *call, pm_node_list_t targets)
Allocate and initialize a new MatchWriteNode node.
struct pm_instance_variable_operator_write_node pm_instance_variable_operator_write_node_t
InstanceVariableOperatorWriteNode.
pm_loop_flags
Flags for while and until loop nodes.
Definition ast.h:8062
@ PM_LOOP_FLAGS_BEGIN_MODIFIER
a loop after a begin statement, so the body is executed first before the condition
Definition ast.h:8064
struct pm_pinned_variable_node pm_pinned_variable_node_t
PinnedVariableNode.
PRISM_EXPORTED_FUNCTION pm_program_node_t * pm_program_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_constant_id_list_t locals, struct pm_statements_node *statements)
Allocate and initialize a new ProgramNode node.
struct pm_instance_variable_and_write_node pm_instance_variable_and_write_node_t
InstanceVariableAndWriteNode.
PRISM_EXPORTED_FUNCTION pm_splat_node_t * pm_splat_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, pm_location_t operator_loc, struct pm_node *expression)
Allocate and initialize a new SplatNode node.
struct pm_program_node pm_program_node_t
ProgramNode.
PRISM_EXPORTED_FUNCTION pm_break_node_t * pm_break_node_new(pm_arena_t *arena, uint32_t node_id, pm_node_flags_t flags, pm_location_t location, struct pm_arguments_node *arguments, pm_location_t keyword_loc)
Allocate and initialize a new BreakNode node.
struct pm_find_pattern_node pm_find_pattern_node_t
FindPatternNode.
A data structure that stores a set of strings.
uint32_t pm_constant_id_t
A constant id is a unique identifier for a constant in the constant pool.
Definition constant_pool.h:30
This module provides functions for working with arbitrary-sized integers.
A view of a sequence of bytes owned by someone else.
AliasGlobalVariableNode.
Definition ast.h:1170
PM_NODE_ALIGNAS struct pm_node * new_name
AliasGlobalVariableNode::new_name.
Definition ast.h:1182
pm_node_t base
The embedded base node.
Definition ast.h:1172
pm_location_t keyword_loc
AliasGlobalVariableNode::keyword_loc.
Definition ast.h:1202
PM_NODE_ALIGNAS struct pm_node * old_name
AliasGlobalVariableNode::old_name.
Definition ast.h:1192
AliasMethodNode.
Definition ast.h:1217
PM_NODE_ALIGNAS struct pm_node * old_name
AliasMethodNode::old_name.
Definition ast.h:1251
pm_node_t base
The embedded base node.
Definition ast.h:1219
pm_location_t keyword_loc
AliasMethodNode::keyword_loc.
Definition ast.h:1261
PM_NODE_ALIGNAS struct pm_node * new_name
AliasMethodNode::new_name.
Definition ast.h:1235
AlternationPatternNode.
Definition ast.h:1276
pm_location_t operator_loc
AlternationPatternNode::operator_loc.
Definition ast.h:1308
PM_NODE_ALIGNAS struct pm_node * left
AlternationPatternNode::left.
Definition ast.h:1288
pm_node_t base
The embedded base node.
Definition ast.h:1278
PM_NODE_ALIGNAS struct pm_node * right
AlternationPatternNode::right.
Definition ast.h:1298
AndNode.
Definition ast.h:1323
PM_NODE_ALIGNAS struct pm_node * left
AndNode::left.
Definition ast.h:1338
PM_NODE_ALIGNAS struct pm_node * right
AndNode::right.
Definition ast.h:1351
pm_location_t operator_loc
AndNode::operator_loc.
Definition ast.h:1361
pm_node_t base
The embedded base node.
Definition ast.h:1325
ArgumentsNode.
Definition ast.h:1383
pm_node_t base
The embedded base node.
Definition ast.h:1385
struct pm_node_list arguments
ArgumentsNode::arguments.
Definition ast.h:1395
ArrayNode.
Definition ast.h:1413
pm_node_t base
The embedded base node.
Definition ast.h:1415
pm_location_t closing_loc
ArrayNode::closing_loc.
Definition ast.h:1446
struct pm_node_list elements
ArrayNode::elements.
Definition ast.h:1422
pm_location_t opening_loc
ArrayNode::opening_loc.
Definition ast.h:1434
ArrayPatternNode.
Definition ast.h:1473
struct pm_node_list requireds
ArrayPatternNode::requireds.
Definition ast.h:1501
PM_NODE_ALIGNAS struct pm_node * rest
ArrayPatternNode::rest.
Definition ast.h:1511
PM_NODE_ALIGNAS struct pm_node * constant
ArrayPatternNode::constant.
Definition ast.h:1491
pm_location_t opening_loc
ArrayPatternNode::opening_loc.
Definition ast.h:1531
pm_node_t base
The embedded base node.
Definition ast.h:1475
pm_location_t closing_loc
ArrayPatternNode::closing_loc.
Definition ast.h:1541
struct pm_node_list posts
ArrayPatternNode::posts.
Definition ast.h:1521
AssocNode.
Definition ast.h:1556
pm_node_t base
The embedded base node.
Definition ast.h:1558
PM_NODE_ALIGNAS struct pm_node * value
AssocNode::value.
Definition ast.h:1587
PM_NODE_ALIGNAS struct pm_node * key
AssocNode::key.
Definition ast.h:1574
pm_location_t operator_loc
AssocNode::operator_loc.
Definition ast.h:1597
AssocSplatNode.
Definition ast.h:1612
pm_node_t base
The embedded base node.
Definition ast.h:1614
pm_location_t operator_loc
AssocSplatNode::operator_loc.
Definition ast.h:1634
PM_NODE_ALIGNAS struct pm_node * value
AssocSplatNode::value.
Definition ast.h:1624
BackReferenceReadNode.
Definition ast.h:1649
pm_constant_id_t name
BackReferenceReadNode::name.
Definition ast.h:1662
pm_node_t base
The embedded base node.
Definition ast.h:1651
BeginNode.
Definition ast.h:1679
PM_NODE_ALIGNAS struct pm_else_node * else_clause
BeginNode::else_clause.
Definition ast.h:1721
PM_NODE_ALIGNAS struct pm_ensure_node * ensure_clause
BeginNode::ensure_clause.
Definition ast.h:1731
PM_NODE_ALIGNAS struct pm_statements_node * statements
BeginNode::statements.
Definition ast.h:1701
PM_NODE_ALIGNAS struct pm_rescue_node * rescue_clause
BeginNode::rescue_clause.
Definition ast.h:1711
pm_node_t base
The embedded base node.
Definition ast.h:1681
pm_location_t end_keyword_loc
BeginNode::end_keyword_loc.
Definition ast.h:1741
pm_location_t begin_keyword_loc
BeginNode::begin_keyword_loc.
Definition ast.h:1691
BlockArgumentNode.
Definition ast.h:1756
PM_NODE_ALIGNAS struct pm_node * expression
BlockArgumentNode::expression.
Definition ast.h:1768
pm_node_t base
The embedded base node.
Definition ast.h:1758
pm_location_t operator_loc
BlockArgumentNode::operator_loc.
Definition ast.h:1778
BlockLocalVariableNode.
Definition ast.h:1796
pm_node_t base
The embedded base node.
Definition ast.h:1798
pm_constant_id_t name
BlockLocalVariableNode::name.
Definition ast.h:1808
BlockNode.
Definition ast.h:1823
pm_node_t base
The embedded base node.
Definition ast.h:1825
pm_location_t closing_loc
BlockNode::closing_loc.
Definition ast.h:1879
PM_NODE_ALIGNAS struct pm_node * parameters
BlockNode::parameters.
Definition ast.h:1849
pm_location_t opening_loc
BlockNode::opening_loc.
Definition ast.h:1869
pm_constant_id_list_t locals
BlockNode::locals.
Definition ast.h:1835
PM_NODE_ALIGNAS struct pm_node * body
BlockNode::body.
Definition ast.h:1859
BlockParameterNode.
Definition ast.h:1898
pm_location_t operator_loc
BlockParameterNode::operator_loc.
Definition ast.h:1932
pm_location_t name_loc
BlockParameterNode::name_loc.
Definition ast.h:1921
pm_constant_id_t name
BlockParameterNode::name.
Definition ast.h:1911
pm_node_t base
The embedded base node.
Definition ast.h:1900
BlockParametersNode.
Definition ast.h:1951
pm_node_t base
The embedded base node.
Definition ast.h:1953
struct pm_node_list locals
BlockParametersNode::locals.
Definition ast.h:1981
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
BlockParametersNode::parameters.
Definition ast.h:1967
pm_location_t closing_loc
BlockParametersNode::closing_loc.
Definition ast.h:2009
pm_location_t opening_loc
BlockParametersNode::opening_loc.
Definition ast.h:1995
BreakNode.
Definition ast.h:2024
pm_location_t keyword_loc
BreakNode::keyword_loc.
Definition ast.h:2046
pm_node_t base
The embedded base node.
Definition ast.h:2026
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
BreakNode::arguments.
Definition ast.h:2036
CallAndWriteNode.
Definition ast.h:2067
pm_location_t operator_loc
CallAndWriteNode::operator_loc.
Definition ast.h:2129
PM_NODE_ALIGNAS struct pm_node * receiver
CallAndWriteNode::receiver.
Definition ast.h:2079
pm_node_t base
The embedded base node.
Definition ast.h:2069
PM_NODE_ALIGNAS struct pm_node * value
CallAndWriteNode::value.
Definition ast.h:2139
pm_location_t call_operator_loc
CallAndWriteNode::call_operator_loc.
Definition ast.h:2089
pm_location_t message_loc
CallAndWriteNode::message_loc.
Definition ast.h:2099
pm_constant_id_t read_name
CallAndWriteNode::read_name.
Definition ast.h:2109
pm_constant_id_t write_name
CallAndWriteNode::write_name.
Definition ast.h:2119
CallNode.
Definition ast.h:2175
pm_location_t opening_loc
CallNode::opening_loc.
Definition ast.h:2236
pm_location_t closing_loc
CallNode::closing_loc.
Definition ast.h:2256
pm_constant_id_t name
CallNode::name.
Definition ast.h:2216
pm_node_t base
The embedded base node.
Definition ast.h:2177
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
CallNode::arguments.
Definition ast.h:2246
pm_location_t equal_loc
CallNode::equal_loc.
Definition ast.h:2269
pm_location_t call_operator_loc
CallNode::call_operator_loc.
Definition ast.h:2206
pm_location_t message_loc
CallNode::message_loc.
Definition ast.h:2226
PM_NODE_ALIGNAS struct pm_node * block
CallNode::block.
Definition ast.h:2279
PM_NODE_ALIGNAS struct pm_node * receiver
CallNode::receiver.
Definition ast.h:2193
CallOperatorWriteNode.
Definition ast.h:2300
pm_constant_id_t read_name
CallOperatorWriteNode::read_name.
Definition ast.h:2342
pm_constant_id_t binary_operator
CallOperatorWriteNode::binary_operator.
Definition ast.h:2362
pm_location_t binary_operator_loc
CallOperatorWriteNode::binary_operator_loc.
Definition ast.h:2372
pm_node_t base
The embedded base node.
Definition ast.h:2302
pm_constant_id_t write_name
CallOperatorWriteNode::write_name.
Definition ast.h:2352
pm_location_t message_loc
CallOperatorWriteNode::message_loc.
Definition ast.h:2332
PM_NODE_ALIGNAS struct pm_node * receiver
CallOperatorWriteNode::receiver.
Definition ast.h:2312
PM_NODE_ALIGNAS struct pm_node * value
CallOperatorWriteNode::value.
Definition ast.h:2382
pm_location_t call_operator_loc
CallOperatorWriteNode::call_operator_loc.
Definition ast.h:2322
CallOrWriteNode.
Definition ast.h:2403
pm_location_t operator_loc
CallOrWriteNode::operator_loc.
Definition ast.h:2465
pm_location_t call_operator_loc
CallOrWriteNode::call_operator_loc.
Definition ast.h:2425
PM_NODE_ALIGNAS struct pm_node * receiver
CallOrWriteNode::receiver.
Definition ast.h:2415
pm_node_t base
The embedded base node.
Definition ast.h:2405
PM_NODE_ALIGNAS struct pm_node * value
CallOrWriteNode::value.
Definition ast.h:2475
pm_constant_id_t write_name
CallOrWriteNode::write_name.
Definition ast.h:2455
pm_constant_id_t read_name
CallOrWriteNode::read_name.
Definition ast.h:2445
pm_location_t message_loc
CallOrWriteNode::message_loc.
Definition ast.h:2435
CallTargetNode.
Definition ast.h:2504
pm_node_t base
The embedded base node.
Definition ast.h:2506
pm_constant_id_t name
CallTargetNode::name.
Definition ast.h:2536
PM_NODE_ALIGNAS struct pm_node * receiver
CallTargetNode::receiver.
Definition ast.h:2516
pm_location_t call_operator_loc
CallTargetNode::call_operator_loc.
Definition ast.h:2526
pm_location_t message_loc
CallTargetNode::message_loc.
Definition ast.h:2546
CapturePatternNode.
Definition ast.h:2561
pm_location_t operator_loc
CapturePatternNode::operator_loc.
Definition ast.h:2593
pm_node_t base
The embedded base node.
Definition ast.h:2563
PM_NODE_ALIGNAS struct pm_node * value
CapturePatternNode::value.
Definition ast.h:2573
PM_NODE_ALIGNAS struct pm_local_variable_target_node * target
CapturePatternNode::target.
Definition ast.h:2583
CaseMatchNode.
Definition ast.h:2610
pm_location_t end_keyword_loc
CaseMatchNode::end_keyword_loc.
Definition ast.h:2662
struct pm_node_list conditions
CaseMatchNode::conditions.
Definition ast.h:2632
pm_node_t base
The embedded base node.
Definition ast.h:2612
pm_location_t case_keyword_loc
CaseMatchNode::case_keyword_loc.
Definition ast.h:2652
PM_NODE_ALIGNAS struct pm_node * predicate
CaseMatchNode::predicate.
Definition ast.h:2622
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseMatchNode::else_clause.
Definition ast.h:2642
CaseNode.
Definition ast.h:2679
PM_NODE_ALIGNAS struct pm_else_node * else_clause
CaseNode::else_clause.
Definition ast.h:2711
struct pm_node_list conditions
CaseNode::conditions.
Definition ast.h:2701
PM_NODE_ALIGNAS struct pm_node * predicate
CaseNode::predicate.
Definition ast.h:2691
pm_node_t base
The embedded base node.
Definition ast.h:2681
pm_location_t case_keyword_loc
CaseNode::case_keyword_loc.
Definition ast.h:2721
pm_location_t end_keyword_loc
CaseNode::end_keyword_loc.
Definition ast.h:2731
ClassNode.
Definition ast.h:2746
pm_location_t class_keyword_loc
ClassNode::class_keyword_loc.
Definition ast.h:2763
pm_location_t end_keyword_loc
ClassNode::end_keyword_loc.
Definition ast.h:2808
pm_constant_id_list_t locals
ClassNode::locals.
Definition ast.h:2753
PM_NODE_ALIGNAS struct pm_node * superclass
ClassNode::superclass.
Definition ast.h:2788
pm_location_t inheritance_operator_loc
ClassNode::inheritance_operator_loc.
Definition ast.h:2778
pm_constant_id_t name
ClassNode::name.
Definition ast.h:2817
pm_node_t base
The embedded base node.
Definition ast.h:2748
PM_NODE_ALIGNAS struct pm_node * constant_path
ClassNode::constant_path.
Definition ast.h:2768
PM_NODE_ALIGNAS struct pm_node * body
ClassNode::body.
Definition ast.h:2798
ClassVariableAndWriteNode.
Definition ast.h:2832
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableAndWriteNode::value.
Definition ast.h:2874
pm_constant_id_t name
ClassVariableAndWriteNode::name.
Definition ast.h:2844
pm_location_t operator_loc
ClassVariableAndWriteNode::operator_loc.
Definition ast.h:2864
pm_node_t base
The embedded base node.
Definition ast.h:2834
pm_location_t name_loc
ClassVariableAndWriteNode::name_loc.
Definition ast.h:2854
ClassVariableOperatorWriteNode.
Definition ast.h:2889
pm_node_t base
The embedded base node.
Definition ast.h:2891
pm_constant_id_t name
ClassVariableOperatorWriteNode::name.
Definition ast.h:2896
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOperatorWriteNode::value.
Definition ast.h:2911
pm_location_t name_loc
ClassVariableOperatorWriteNode::name_loc.
Definition ast.h:2901
pm_constant_id_t binary_operator
ClassVariableOperatorWriteNode::binary_operator.
Definition ast.h:2916
pm_location_t binary_operator_loc
ClassVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:2906
ClassVariableOrWriteNode.
Definition ast.h:2931
pm_node_t base
The embedded base node.
Definition ast.h:2933
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableOrWriteNode::value.
Definition ast.h:2953
pm_location_t name_loc
ClassVariableOrWriteNode::name_loc.
Definition ast.h:2943
pm_location_t operator_loc
ClassVariableOrWriteNode::operator_loc.
Definition ast.h:2948
pm_constant_id_t name
ClassVariableOrWriteNode::name.
Definition ast.h:2938
ClassVariableReadNode.
Definition ast.h:2968
pm_node_t base
The embedded base node.
Definition ast.h:2970
pm_constant_id_t name
ClassVariableReadNode::name.
Definition ast.h:2981
ClassVariableTargetNode.
Definition ast.h:2996
pm_node_t base
The embedded base node.
Definition ast.h:2998
pm_constant_id_t name
ClassVariableTargetNode::name.
Definition ast.h:3003
ClassVariableWriteNode.
Definition ast.h:3018
pm_location_t name_loc
ClassVariableWriteNode::name_loc.
Definition ast.h:3041
PM_NODE_ALIGNAS struct pm_node * value
ClassVariableWriteNode::value.
Definition ast.h:3054
pm_node_t base
The embedded base node.
Definition ast.h:3020
pm_location_t operator_loc
ClassVariableWriteNode::operator_loc.
Definition ast.h:3064
pm_constant_id_t name
ClassVariableWriteNode::name.
Definition ast.h:3031
ConstantAndWriteNode.
Definition ast.h:3079
pm_location_t operator_loc
ConstantAndWriteNode::operator_loc.
Definition ast.h:3096
PM_NODE_ALIGNAS struct pm_node * value
ConstantAndWriteNode::value.
Definition ast.h:3101
pm_location_t name_loc
ConstantAndWriteNode::name_loc.
Definition ast.h:3091
pm_constant_id_t name
ConstantAndWriteNode::name.
Definition ast.h:3086
pm_node_t base
The embedded base node.
Definition ast.h:3081
A list of constant IDs.
Definition constant_pool.h:51
ConstantOperatorWriteNode.
Definition ast.h:3116
pm_constant_id_t name
ConstantOperatorWriteNode::name.
Definition ast.h:3123
pm_location_t name_loc
ConstantOperatorWriteNode::name_loc.
Definition ast.h:3128
pm_constant_id_t binary_operator
ConstantOperatorWriteNode::binary_operator.
Definition ast.h:3143
pm_location_t binary_operator_loc
ConstantOperatorWriteNode::binary_operator_loc.
Definition ast.h:3133
PM_NODE_ALIGNAS struct pm_node * value
ConstantOperatorWriteNode::value.
Definition ast.h:3138
pm_node_t base
The embedded base node.
Definition ast.h:3118
ConstantOrWriteNode.
Definition ast.h:3158
pm_location_t operator_loc
ConstantOrWriteNode::operator_loc.
Definition ast.h:3175
PM_NODE_ALIGNAS struct pm_node * value
ConstantOrWriteNode::value.
Definition ast.h:3180
pm_location_t name_loc
ConstantOrWriteNode::name_loc.
Definition ast.h:3170
pm_constant_id_t name
ConstantOrWriteNode::name.
Definition ast.h:3165
pm_node_t base
The embedded base node.
Definition ast.h:3160
ConstantPathAndWriteNode.
Definition ast.h:3195
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathAndWriteNode::target.
Definition ast.h:3202
pm_node_t base
The embedded base node.
Definition ast.h:3197
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathAndWriteNode::value.
Definition ast.h:3212
pm_location_t operator_loc
ConstantPathAndWriteNode::operator_loc.
Definition ast.h:3207
ConstantPathNode.
Definition ast.h:3227
pm_location_t delimiter_loc
ConstantPathNode::delimiter_loc.
Definition ast.h:3265
pm_node_t base
The embedded base node.
Definition ast.h:3229
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathNode::parent.
Definition ast.h:3245
pm_location_t name_loc
ConstantPathNode::name_loc.
Definition ast.h:3278
pm_constant_id_t name
ConstantPathNode::name.
Definition ast.h:3252
ConstantPathOperatorWriteNode.
Definition ast.h:3293
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOperatorWriteNode::target.
Definition ast.h:3300
pm_constant_id_t binary_operator
ConstantPathOperatorWriteNode::binary_operator.
Definition ast.h:3315
pm_node_t base
The embedded base node.
Definition ast.h:3295
pm_location_t binary_operator_loc
ConstantPathOperatorWriteNode::binary_operator_loc.
Definition ast.h:3305
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOperatorWriteNode::value.
Definition ast.h:3310
ConstantPathOrWriteNode.
Definition ast.h:3330
pm_location_t operator_loc
ConstantPathOrWriteNode::operator_loc.
Definition ast.h:3342
pm_node_t base
The embedded base node.
Definition ast.h:3332
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathOrWriteNode::value.
Definition ast.h:3347
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathOrWriteNode::target.
Definition ast.h:3337
ConstantPathTargetNode.
Definition ast.h:3362
pm_node_t base
The embedded base node.
Definition ast.h:3364
pm_location_t delimiter_loc
ConstantPathTargetNode::delimiter_loc.
Definition ast.h:3379
pm_constant_id_t name
ConstantPathTargetNode::name.
Definition ast.h:3374
PM_NODE_ALIGNAS struct pm_node * parent
ConstantPathTargetNode::parent.
Definition ast.h:3369
pm_location_t name_loc
ConstantPathTargetNode::name_loc.
Definition ast.h:3384
ConstantPathWriteNode.
Definition ast.h:3405
PM_NODE_ALIGNAS struct pm_node * value
ConstantPathWriteNode::value.
Definition ast.h:3440
pm_location_t operator_loc
ConstantPathWriteNode::operator_loc.
Definition ast.h:3430
pm_node_t base
The embedded base node.
Definition ast.h:3407
PM_NODE_ALIGNAS struct pm_constant_path_node * target
ConstantPathWriteNode::target.
Definition ast.h:3420
ConstantReadNode.
Definition ast.h:3455
pm_node_t base
The embedded base node.
Definition ast.h:3457
pm_constant_id_t name
ConstantReadNode::name.
Definition ast.h:3468
ConstantTargetNode.
Definition ast.h:3483
pm_node_t base
The embedded base node.
Definition ast.h:3485
pm_constant_id_t name
ConstantTargetNode::name.
Definition ast.h:3490
ConstantWriteNode.
Definition ast.h:3505
pm_node_t base
The embedded base node.
Definition ast.h:3507
PM_NODE_ALIGNAS struct pm_node * value
ConstantWriteNode::value.
Definition ast.h:3541
pm_constant_id_t name
ConstantWriteNode::name.
Definition ast.h:3518
pm_location_t name_loc
ConstantWriteNode::name_loc.
Definition ast.h:3528
pm_location_t operator_loc
ConstantWriteNode::operator_loc.
Definition ast.h:3551
DefNode.
Definition ast.h:3567
pm_location_t end_keyword_loc
DefNode::end_keyword_loc.
Definition ast.h:3629
pm_constant_id_t name
DefNode::name.
Definition ast.h:3574
pm_location_t name_loc
DefNode::name_loc.
Definition ast.h:3579
pm_location_t rparen_loc
DefNode::rparen_loc.
Definition ast.h:3619
PM_NODE_ALIGNAS struct pm_parameters_node * parameters
DefNode::parameters.
Definition ast.h:3589
pm_location_t equal_loc
DefNode::equal_loc.
Definition ast.h:3624
pm_location_t def_keyword_loc
DefNode::def_keyword_loc.
Definition ast.h:3604
pm_node_t base
The embedded base node.
Definition ast.h:3569
pm_location_t lparen_loc
DefNode::lparen_loc.
Definition ast.h:3614
PM_NODE_ALIGNAS struct pm_node * receiver
DefNode::receiver.
Definition ast.h:3584
PM_NODE_ALIGNAS struct pm_node * body
DefNode::body.
Definition ast.h:3594
pm_location_t operator_loc
DefNode::operator_loc.
Definition ast.h:3609
pm_constant_id_list_t locals
DefNode::locals.
Definition ast.h:3599
DefinedNode.
Definition ast.h:3644
PM_NODE_ALIGNAS struct pm_node * value
DefinedNode::value.
Definition ast.h:3656
pm_location_t lparen_loc
DefinedNode::lparen_loc.
Definition ast.h:3651
pm_node_t base
The embedded base node.
Definition ast.h:3646
pm_location_t rparen_loc
DefinedNode::rparen_loc.
Definition ast.h:3661
pm_location_t keyword_loc
DefinedNode::keyword_loc.
Definition ast.h:3666
ElseNode.
Definition ast.h:3681
pm_location_t else_keyword_loc
ElseNode::else_keyword_loc.
Definition ast.h:3688
pm_node_t base
The embedded base node.
Definition ast.h:3683
PM_NODE_ALIGNAS struct pm_statements_node * statements
ElseNode::statements.
Definition ast.h:3693
pm_location_t end_keyword_loc
ElseNode::end_keyword_loc.
Definition ast.h:3698
EmbeddedStatementsNode.
Definition ast.h:3713
PM_NODE_ALIGNAS struct pm_statements_node * statements
EmbeddedStatementsNode::statements.
Definition ast.h:3725
pm_location_t closing_loc
EmbeddedStatementsNode::closing_loc.
Definition ast.h:3730
pm_node_t base
The embedded base node.
Definition ast.h:3715
pm_location_t opening_loc
EmbeddedStatementsNode::opening_loc.
Definition ast.h:3720
EmbeddedVariableNode.
Definition ast.h:3745
PM_NODE_ALIGNAS struct pm_node * variable
EmbeddedVariableNode::variable.
Definition ast.h:3757
pm_location_t operator_loc
EmbeddedVariableNode::operator_loc.
Definition ast.h:3752
pm_node_t base
The embedded base node.
Definition ast.h:3747
EnsureNode.
Definition ast.h:3776
PM_NODE_ALIGNAS struct pm_statements_node * statements
EnsureNode::statements.
Definition ast.h:3788
pm_node_t base
The embedded base node.
Definition ast.h:3778
pm_location_t ensure_keyword_loc
EnsureNode::ensure_keyword_loc.
Definition ast.h:3783
pm_location_t end_keyword_loc
EnsureNode::end_keyword_loc.
Definition ast.h:3793
ErrorRecoveryNode.
Definition ast.h:3805
PM_NODE_ALIGNAS struct pm_node * unexpected
ErrorRecoveryNode::unexpected.
Definition ast.h:3814
pm_node_t base
The embedded base node.
Definition ast.h:3807
FalseNode.
Definition ast.h:3829
pm_node_t base
The embedded base node.
Definition ast.h:3831
FindPatternNode.
Definition ast.h:3855
PM_NODE_ALIGNAS struct pm_splat_node * left
FindPatternNode::left.
Definition ast.h:3880
PM_NODE_ALIGNAS struct pm_splat_node * right
FindPatternNode::right.
Definition ast.h:3906
pm_location_t opening_loc
FindPatternNode::opening_loc.
Definition ast.h:3919
pm_node_t base
The embedded base node.
Definition ast.h:3857
PM_NODE_ALIGNAS struct pm_node * constant
FindPatternNode::constant.
Definition ast.h:3867
struct pm_node_list requireds
FindPatternNode::requireds.
Definition ast.h:3893
pm_location_t closing_loc
FindPatternNode::closing_loc.
Definition ast.h:3932
FlipFlopNode.
Definition ast.h:3950
PM_NODE_ALIGNAS struct pm_node * left
FlipFlopNode::left.
Definition ast.h:3957
pm_node_t base
The embedded base node.
Definition ast.h:3952
pm_location_t operator_loc
FlipFlopNode::operator_loc.
Definition ast.h:3967
PM_NODE_ALIGNAS struct pm_node * right
FlipFlopNode::right.
Definition ast.h:3962
FloatNode.
Definition ast.h:3982
double value
FloatNode::value.
Definition ast.h:3991
pm_node_t base
The embedded base node.
Definition ast.h:3984
ForNode.
Definition ast.h:4006
PM_NODE_ALIGNAS struct pm_node * index
ForNode::index.
Definition ast.h:4018
PM_NODE_ALIGNAS struct pm_node * collection
ForNode::collection.
Definition ast.h:4028
pm_node_t base
The embedded base node.
Definition ast.h:4008
PM_NODE_ALIGNAS struct pm_statements_node * statements
ForNode::statements.
Definition ast.h:4040
pm_location_t end_keyword_loc
ForNode::end_keyword_loc.
Definition ast.h:4080
pm_location_t for_keyword_loc
ForNode::for_keyword_loc.
Definition ast.h:4050
pm_location_t do_keyword_loc
ForNode::do_keyword_loc.
Definition ast.h:4070
pm_location_t in_keyword_loc
ForNode::in_keyword_loc.
Definition ast.h:4060
ForwardingArgumentsNode.
Definition ast.h:4097
pm_node_t base
The embedded base node.
Definition ast.h:4099
ForwardingParameterNode.
Definition ast.h:4115
pm_node_t base
The embedded base node.
Definition ast.h:4117
ForwardingSuperNode.
Definition ast.h:4137
pm_node_t base
The embedded base node.
Definition ast.h:4139
PM_NODE_ALIGNAS struct pm_block_node * block
ForwardingSuperNode::block.
Definition ast.h:4157
pm_location_t keyword_loc
ForwardingSuperNode::keyword_loc.
Definition ast.h:4150
GlobalVariableAndWriteNode.
Definition ast.h:4172
pm_location_t operator_loc
GlobalVariableAndWriteNode::operator_loc.
Definition ast.h:4189
pm_node_t base
The embedded base node.
Definition ast.h:4174
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableAndWriteNode::value.
Definition ast.h:4194
pm_location_t name_loc
GlobalVariableAndWriteNode::name_loc.
Definition ast.h:4184
pm_constant_id_t name
GlobalVariableAndWriteNode::name.
Definition ast.h:4179
GlobalVariableOperatorWriteNode.
Definition ast.h:4209
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOperatorWriteNode::value.
Definition ast.h:4231
pm_constant_id_t name
GlobalVariableOperatorWriteNode::name.
Definition ast.h:4216
pm_constant_id_t binary_operator
GlobalVariableOperatorWriteNode::binary_operator.
Definition ast.h:4236
pm_location_t name_loc
GlobalVariableOperatorWriteNode::name_loc.
Definition ast.h:4221
pm_node_t base
The embedded base node.
Definition ast.h:4211
pm_location_t binary_operator_loc
GlobalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:4226
GlobalVariableOrWriteNode.
Definition ast.h:4251
pm_constant_id_t name
GlobalVariableOrWriteNode::name.
Definition ast.h:4258
pm_location_t name_loc
GlobalVariableOrWriteNode::name_loc.
Definition ast.h:4263
pm_node_t base
The embedded base node.
Definition ast.h:4253
pm_location_t operator_loc
GlobalVariableOrWriteNode::operator_loc.
Definition ast.h:4268
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableOrWriteNode::value.
Definition ast.h:4273
GlobalVariableReadNode.
Definition ast.h:4288
pm_node_t base
The embedded base node.
Definition ast.h:4290
pm_constant_id_t name
GlobalVariableReadNode::name.
Definition ast.h:4301
GlobalVariableTargetNode.
Definition ast.h:4316
pm_constant_id_t name
GlobalVariableTargetNode::name.
Definition ast.h:4323
pm_node_t base
The embedded base node.
Definition ast.h:4318
GlobalVariableWriteNode.
Definition ast.h:4338
pm_location_t name_loc
GlobalVariableWriteNode::name_loc.
Definition ast.h:4361
pm_location_t operator_loc
GlobalVariableWriteNode::operator_loc.
Definition ast.h:4384
pm_constant_id_t name
GlobalVariableWriteNode::name.
Definition ast.h:4351
pm_node_t base
The embedded base node.
Definition ast.h:4340
PM_NODE_ALIGNAS struct pm_node * value
GlobalVariableWriteNode::value.
Definition ast.h:4374
HashNode.
Definition ast.h:4399
struct pm_node_list elements
HashNode::elements.
Definition ast.h:4424
pm_node_t base
The embedded base node.
Definition ast.h:4401
pm_location_t closing_loc
HashNode::closing_loc.
Definition ast.h:4434
pm_location_t opening_loc
HashNode::opening_loc.
Definition ast.h:4411
HashPatternNode.
Definition ast.h:4458
PM_NODE_ALIGNAS struct pm_node * constant
HashPatternNode::constant.
Definition ast.h:4473
struct pm_node_list elements
HashPatternNode::elements.
Definition ast.h:4483
pm_location_t opening_loc
HashPatternNode::opening_loc.
Definition ast.h:4512
pm_node_t base
The embedded base node.
Definition ast.h:4460
pm_location_t closing_loc
HashPatternNode::closing_loc.
Definition ast.h:4525
PM_NODE_ALIGNAS struct pm_node * rest
HashPatternNode::rest.
Definition ast.h:4499
IfNode.
Definition ast.h:4546
PM_NODE_ALIGNAS struct pm_node * predicate
IfNode::predicate.
Definition ast.h:4578
pm_location_t end_keyword_loc
IfNode::end_keyword_loc.
Definition ast.h:4636
pm_location_t if_keyword_loc
IfNode::if_keyword_loc.
Definition ast.h:4560
PM_NODE_ALIGNAS struct pm_statements_node * statements
IfNode::statements.
Definition ast.h:4605
pm_node_t base
The embedded base node.
Definition ast.h:4548
pm_location_t then_keyword_loc
IfNode::then_keyword_loc.
Definition ast.h:4591
PM_NODE_ALIGNAS struct pm_node * subsequent
IfNode::subsequent.
Definition ast.h:4624
ImaginaryNode.
Definition ast.h:4651
pm_node_t base
The embedded base node.
Definition ast.h:4653
PM_NODE_ALIGNAS struct pm_node * numeric
ImaginaryNode::numeric.
Definition ast.h:4658
ImplicitNode.
Definition ast.h:4679
pm_node_t base
The embedded base node.
Definition ast.h:4681
PM_NODE_ALIGNAS struct pm_node * value
ImplicitNode::value.
Definition ast.h:4686
ImplicitRestNode.
Definition ast.h:4710
pm_node_t base
The embedded base node.
Definition ast.h:4712
InNode.
Definition ast.h:4727
pm_location_t in_keyword_loc
InNode::in_keyword_loc.
Definition ast.h:4744
PM_NODE_ALIGNAS struct pm_node * pattern
InNode::pattern.
Definition ast.h:4734
PM_NODE_ALIGNAS struct pm_statements_node * statements
InNode::statements.
Definition ast.h:4739
pm_location_t then_keyword_loc
InNode::then_keyword_loc.
Definition ast.h:4749
pm_node_t base
The embedded base node.
Definition ast.h:4729
IndexAndWriteNode.
Definition ast.h:4770
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexAndWriteNode::arguments.
Definition ast.h:4792
pm_node_t base
The embedded base node.
Definition ast.h:4772
pm_location_t operator_loc
IndexAndWriteNode::operator_loc.
Definition ast.h:4807
pm_location_t closing_loc
IndexAndWriteNode::closing_loc.
Definition ast.h:4797
pm_location_t opening_loc
IndexAndWriteNode::opening_loc.
Definition ast.h:4787
pm_location_t call_operator_loc
IndexAndWriteNode::call_operator_loc.
Definition ast.h:4782
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexAndWriteNode::block.
Definition ast.h:4802
PM_NODE_ALIGNAS struct pm_node * receiver
IndexAndWriteNode::receiver.
Definition ast.h:4777
PM_NODE_ALIGNAS struct pm_node * value
IndexAndWriteNode::value.
Definition ast.h:4812
IndexOperatorWriteNode.
Definition ast.h:4833
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOperatorWriteNode::block.
Definition ast.h:4865
pm_node_t base
The embedded base node.
Definition ast.h:4835
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOperatorWriteNode::receiver.
Definition ast.h:4840
pm_location_t binary_operator_loc
IndexOperatorWriteNode::binary_operator_loc.
Definition ast.h:4875
PM_NODE_ALIGNAS struct pm_node * value
IndexOperatorWriteNode::value.
Definition ast.h:4880
pm_location_t opening_loc
IndexOperatorWriteNode::opening_loc.
Definition ast.h:4850
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOperatorWriteNode::arguments.
Definition ast.h:4855
pm_location_t call_operator_loc
IndexOperatorWriteNode::call_operator_loc.
Definition ast.h:4845
pm_location_t closing_loc
IndexOperatorWriteNode::closing_loc.
Definition ast.h:4860
pm_constant_id_t binary_operator
IndexOperatorWriteNode::binary_operator.
Definition ast.h:4870
IndexOrWriteNode.
Definition ast.h:4901
pm_location_t closing_loc
IndexOrWriteNode::closing_loc.
Definition ast.h:4928
pm_location_t call_operator_loc
IndexOrWriteNode::call_operator_loc.
Definition ast.h:4913
pm_node_t base
The embedded base node.
Definition ast.h:4903
pm_location_t operator_loc
IndexOrWriteNode::operator_loc.
Definition ast.h:4938
pm_location_t opening_loc
IndexOrWriteNode::opening_loc.
Definition ast.h:4918
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexOrWriteNode::arguments.
Definition ast.h:4923
PM_NODE_ALIGNAS struct pm_node * value
IndexOrWriteNode::value.
Definition ast.h:4943
PM_NODE_ALIGNAS struct pm_node * receiver
IndexOrWriteNode::receiver.
Definition ast.h:4908
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexOrWriteNode::block.
Definition ast.h:4933
IndexTargetNode.
Definition ast.h:4972
pm_node_t base
The embedded base node.
Definition ast.h:4974
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
IndexTargetNode::arguments.
Definition ast.h:4989
pm_location_t closing_loc
IndexTargetNode::closing_loc.
Definition ast.h:4994
PM_NODE_ALIGNAS struct pm_block_argument_node * block
IndexTargetNode::block.
Definition ast.h:4999
pm_location_t opening_loc
IndexTargetNode::opening_loc.
Definition ast.h:4984
PM_NODE_ALIGNAS struct pm_node * receiver
IndexTargetNode::receiver.
Definition ast.h:4979
InstanceVariableAndWriteNode.
Definition ast.h:5014
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableAndWriteNode::value.
Definition ast.h:5036
pm_location_t operator_loc
InstanceVariableAndWriteNode::operator_loc.
Definition ast.h:5031
pm_location_t name_loc
InstanceVariableAndWriteNode::name_loc.
Definition ast.h:5026
pm_node_t base
The embedded base node.
Definition ast.h:5016
pm_constant_id_t name
InstanceVariableAndWriteNode::name.
Definition ast.h:5021
InstanceVariableOperatorWriteNode.
Definition ast.h:5051
pm_constant_id_t binary_operator
InstanceVariableOperatorWriteNode::binary_operator.
Definition ast.h:5078
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOperatorWriteNode::value.
Definition ast.h:5073
pm_location_t binary_operator_loc
InstanceVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5068
pm_constant_id_t name
InstanceVariableOperatorWriteNode::name.
Definition ast.h:5058
pm_node_t base
The embedded base node.
Definition ast.h:5053
pm_location_t name_loc
InstanceVariableOperatorWriteNode::name_loc.
Definition ast.h:5063
InstanceVariableOrWriteNode.
Definition ast.h:5093
pm_location_t operator_loc
InstanceVariableOrWriteNode::operator_loc.
Definition ast.h:5110
pm_node_t base
The embedded base node.
Definition ast.h:5095
pm_location_t name_loc
InstanceVariableOrWriteNode::name_loc.
Definition ast.h:5105
pm_constant_id_t name
InstanceVariableOrWriteNode::name.
Definition ast.h:5100
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableOrWriteNode::value.
Definition ast.h:5115
InstanceVariableReadNode.
Definition ast.h:5130
pm_constant_id_t name
InstanceVariableReadNode::name.
Definition ast.h:5143
pm_node_t base
The embedded base node.
Definition ast.h:5132
InstanceVariableTargetNode.
Definition ast.h:5158
pm_constant_id_t name
InstanceVariableTargetNode::name.
Definition ast.h:5165
pm_node_t base
The embedded base node.
Definition ast.h:5160
InstanceVariableWriteNode.
Definition ast.h:5180
pm_location_t operator_loc
InstanceVariableWriteNode::operator_loc.
Definition ast.h:5226
PM_NODE_ALIGNAS struct pm_node * value
InstanceVariableWriteNode::value.
Definition ast.h:5216
pm_constant_id_t name
InstanceVariableWriteNode::name.
Definition ast.h:5193
pm_node_t base
The embedded base node.
Definition ast.h:5182
pm_location_t name_loc
InstanceVariableWriteNode::name_loc.
Definition ast.h:5203
IntegerNode.
Definition ast.h:5247
pm_integer_t value
IntegerNode::value.
Definition ast.h:5256
pm_node_t base
The embedded base node.
Definition ast.h:5249
A structure represents an arbitrary-sized integer.
Definition integer.h:19
InterpolatedMatchLastLineNode.
Definition ast.h:5284
pm_node_t base
The embedded base node.
Definition ast.h:5286
pm_location_t closing_loc
InterpolatedMatchLastLineNode::closing_loc.
Definition ast.h:5301
struct pm_node_list parts
InterpolatedMatchLastLineNode::parts.
Definition ast.h:5296
pm_location_t opening_loc
InterpolatedMatchLastLineNode::opening_loc.
Definition ast.h:5291
InterpolatedRegularExpressionNode.
Definition ast.h:5329
pm_location_t opening_loc
InterpolatedRegularExpressionNode::opening_loc.
Definition ast.h:5336
struct pm_node_list parts
InterpolatedRegularExpressionNode::parts.
Definition ast.h:5341
pm_node_t base
The embedded base node.
Definition ast.h:5331
pm_location_t closing_loc
InterpolatedRegularExpressionNode::closing_loc.
Definition ast.h:5346
InterpolatedStringNode.
Definition ast.h:5365
pm_node_t base
The embedded base node.
Definition ast.h:5367
pm_location_t closing_loc
InterpolatedStringNode::closing_loc.
Definition ast.h:5382
pm_location_t opening_loc
InterpolatedStringNode::opening_loc.
Definition ast.h:5372
struct pm_node_list parts
InterpolatedStringNode::parts.
Definition ast.h:5377
InterpolatedSymbolNode.
Definition ast.h:5397
struct pm_node_list parts
InterpolatedSymbolNode::parts.
Definition ast.h:5409
pm_location_t closing_loc
InterpolatedSymbolNode::closing_loc.
Definition ast.h:5414
pm_location_t opening_loc
InterpolatedSymbolNode::opening_loc.
Definition ast.h:5404
pm_node_t base
The embedded base node.
Definition ast.h:5399
InterpolatedXStringNode.
Definition ast.h:5429
pm_location_t opening_loc
InterpolatedXStringNode::opening_loc.
Definition ast.h:5436
pm_location_t closing_loc
InterpolatedXStringNode::closing_loc.
Definition ast.h:5446
pm_node_t base
The embedded base node.
Definition ast.h:5431
struct pm_node_list parts
InterpolatedXStringNode::parts.
Definition ast.h:5441
ItLocalVariableReadNode.
Definition ast.h:5461
pm_node_t base
The embedded base node.
Definition ast.h:5463
ItParametersNode.
Definition ast.h:5478
pm_node_t base
The embedded base node.
Definition ast.h:5480
KeywordHashNode.
Definition ast.h:5498
pm_node_t base
The embedded base node.
Definition ast.h:5500
struct pm_node_list elements
KeywordHashNode::elements.
Definition ast.h:5505
KeywordRestParameterNode.
Definition ast.h:5524
pm_node_t base
The embedded base node.
Definition ast.h:5526
pm_constant_id_t name
KeywordRestParameterNode::name.
Definition ast.h:5531
pm_location_t operator_loc
KeywordRestParameterNode::operator_loc.
Definition ast.h:5541
pm_location_t name_loc
KeywordRestParameterNode::name_loc.
Definition ast.h:5536
LambdaNode.
Definition ast.h:5556
pm_location_t closing_loc
LambdaNode::closing_loc.
Definition ast.h:5578
pm_node_t base
The embedded base node.
Definition ast.h:5558
pm_location_t opening_loc
LambdaNode::opening_loc.
Definition ast.h:5573
pm_location_t operator_loc
LambdaNode::operator_loc.
Definition ast.h:5568
pm_constant_id_list_t locals
LambdaNode::locals.
Definition ast.h:5563
PM_NODE_ALIGNAS struct pm_node * body
LambdaNode::body.
Definition ast.h:5588
PM_NODE_ALIGNAS struct pm_node * parameters
LambdaNode::parameters.
Definition ast.h:5583
LocalVariableAndWriteNode.
Definition ast.h:5603
pm_constant_id_t name
LocalVariableAndWriteNode::name.
Definition ast.h:5625
pm_node_t base
The embedded base node.
Definition ast.h:5605
uint32_t depth
LocalVariableAndWriteNode::depth.
Definition ast.h:5630
pm_location_t operator_loc
LocalVariableAndWriteNode::operator_loc.
Definition ast.h:5615
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableAndWriteNode::value.
Definition ast.h:5620
pm_location_t name_loc
LocalVariableAndWriteNode::name_loc.
Definition ast.h:5610
LocalVariableOperatorWriteNode.
Definition ast.h:5645
uint32_t depth
LocalVariableOperatorWriteNode::depth.
Definition ast.h:5677
pm_constant_id_t binary_operator
LocalVariableOperatorWriteNode::binary_operator.
Definition ast.h:5672
pm_node_t base
The embedded base node.
Definition ast.h:5647
pm_location_t name_loc
LocalVariableOperatorWriteNode::name_loc.
Definition ast.h:5652
pm_location_t binary_operator_loc
LocalVariableOperatorWriteNode::binary_operator_loc.
Definition ast.h:5657
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOperatorWriteNode::value.
Definition ast.h:5662
pm_constant_id_t name
LocalVariableOperatorWriteNode::name.
Definition ast.h:5667
LocalVariableOrWriteNode.
Definition ast.h:5692
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableOrWriteNode::value.
Definition ast.h:5709
uint32_t depth
LocalVariableOrWriteNode::depth.
Definition ast.h:5719
pm_location_t operator_loc
LocalVariableOrWriteNode::operator_loc.
Definition ast.h:5704
pm_node_t base
The embedded base node.
Definition ast.h:5694
pm_constant_id_t name
LocalVariableOrWriteNode::name.
Definition ast.h:5714
pm_location_t name_loc
LocalVariableOrWriteNode::name_loc.
Definition ast.h:5699
LocalVariableReadNode.
Definition ast.h:5734
uint32_t depth
LocalVariableReadNode::depth.
Definition ast.h:5764
pm_constant_id_t name
LocalVariableReadNode::name.
Definition ast.h:5751
pm_node_t base
The embedded base node.
Definition ast.h:5736
LocalVariableTargetNode.
Definition ast.h:5782
uint32_t depth
LocalVariableTargetNode::depth.
Definition ast.h:5794
pm_constant_id_t name
LocalVariableTargetNode::name.
Definition ast.h:5789
pm_node_t base
The embedded base node.
Definition ast.h:5784
LocalVariableWriteNode.
Definition ast.h:5809
PM_NODE_ALIGNAS struct pm_node * value
LocalVariableWriteNode::value.
Definition ast.h:5862
pm_location_t operator_loc
LocalVariableWriteNode::operator_loc.
Definition ast.h:5872
pm_location_t name_loc
LocalVariableWriteNode::name_loc.
Definition ast.h:5845
pm_node_t base
The embedded base node.
Definition ast.h:5811
uint32_t depth
LocalVariableWriteNode::depth.
Definition ast.h:5835
pm_constant_id_t name
LocalVariableWriteNode::name.
Definition ast.h:5822
This struct represents a slice in the source code, defined by an offset and a length.
Definition ast.h:584
uint32_t start
The offset of the location from the start of the source.
Definition ast.h:586
uint32_t length
The length of the location.
Definition ast.h:589
MatchLastLineNode.
Definition ast.h:5900
pm_location_t content_loc
MatchLastLineNode::content_loc.
Definition ast.h:5912
pm_location_t opening_loc
MatchLastLineNode::opening_loc.
Definition ast.h:5907
pm_location_t closing_loc
MatchLastLineNode::closing_loc.
Definition ast.h:5917
pm_string_t unescaped
MatchLastLineNode::unescaped.
Definition ast.h:5922
pm_node_t base
The embedded base node.
Definition ast.h:5902
MatchPredicateNode.
Definition ast.h:5937
pm_location_t keyword_loc
MatchPredicateNode::keyword_loc.
Definition ast.h:5954
PM_NODE_ALIGNAS struct pm_node * pattern
MatchPredicateNode::pattern.
Definition ast.h:5949
PM_NODE_ALIGNAS struct pm_node * value
MatchPredicateNode::value.
Definition ast.h:5944
pm_node_t base
The embedded base node.
Definition ast.h:5939
MatchRequiredNode.
Definition ast.h:5969
pm_node_t base
The embedded base node.
Definition ast.h:5971
pm_location_t operator_loc
MatchRequiredNode::operator_loc.
Definition ast.h:6040
PM_NODE_ALIGNAS struct pm_node * pattern
MatchRequiredNode::pattern.
Definition ast.h:6030
PM_NODE_ALIGNAS struct pm_node * value
MatchRequiredNode::value.
Definition ast.h:5981
MatchWriteNode.
Definition ast.h:6055
pm_node_t base
The embedded base node.
Definition ast.h:6057
PM_NODE_ALIGNAS struct pm_call_node * call
MatchWriteNode::call.
Definition ast.h:6062
struct pm_node_list targets
MatchWriteNode::targets.
Definition ast.h:6067
ModuleNode.
Definition ast.h:6082
pm_location_t end_keyword_loc
ModuleNode::end_keyword_loc.
Definition ast.h:6109
PM_NODE_ALIGNAS struct pm_node * constant_path
ModuleNode::constant_path.
Definition ast.h:6099
PM_NODE_ALIGNAS struct pm_node * body
ModuleNode::body.
Definition ast.h:6104
pm_constant_id_list_t locals
ModuleNode::locals.
Definition ast.h:6089
pm_node_t base
The embedded base node.
Definition ast.h:6084
pm_location_t module_keyword_loc
ModuleNode::module_keyword_loc.
Definition ast.h:6094
pm_constant_id_t name
ModuleNode::name.
Definition ast.h:6114
MultiTargetNode.
Definition ast.h:6134
PM_NODE_ALIGNAS struct pm_node * rest
MultiTargetNode::rest.
Definition ast.h:6171
pm_node_t base
The embedded base node.
Definition ast.h:6136
pm_location_t lparen_loc
MultiTargetNode::lparen_loc.
Definition ast.h:6191
struct pm_node_list lefts
MultiTargetNode::lefts.
Definition ast.h:6151
pm_location_t rparen_loc
MultiTargetNode::rparen_loc.
Definition ast.h:6201
struct pm_node_list rights
MultiTargetNode::rights.
Definition ast.h:6181
MultiWriteNode.
Definition ast.h:6216
pm_location_t rparen_loc
MultiWriteNode::rparen_loc.
Definition ast.h:6283
PM_NODE_ALIGNAS struct pm_node * rest
MultiWriteNode::rest.
Definition ast.h:6253
struct pm_node_list rights
MultiWriteNode::rights.
Definition ast.h:6263
pm_location_t operator_loc
MultiWriteNode::operator_loc.
Definition ast.h:6293
PM_NODE_ALIGNAS struct pm_node * value
MultiWriteNode::value.
Definition ast.h:6303
pm_location_t lparen_loc
MultiWriteNode::lparen_loc.
Definition ast.h:6273
struct pm_node_list lefts
MultiWriteNode::lefts.
Definition ast.h:6233
pm_node_t base
The embedded base node.
Definition ast.h:6218
NextNode.
Definition ast.h:6318
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
NextNode::arguments.
Definition ast.h:6325
pm_node_t base
The embedded base node.
Definition ast.h:6320
pm_location_t keyword_loc
NextNode::keyword_loc.
Definition ast.h:6330
NilNode.
Definition ast.h:6345
pm_node_t base
The embedded base node.
Definition ast.h:6347
NoBlockParameterNode.
Definition ast.h:6363
pm_location_t keyword_loc
NoBlockParameterNode::keyword_loc.
Definition ast.h:6375
pm_node_t base
The embedded base node.
Definition ast.h:6365
pm_location_t operator_loc
NoBlockParameterNode::operator_loc.
Definition ast.h:6370
NoKeywordsParameterNode.
Definition ast.h:6391
pm_location_t keyword_loc
NoKeywordsParameterNode::keyword_loc.
Definition ast.h:6403
pm_location_t operator_loc
NoKeywordsParameterNode::operator_loc.
Definition ast.h:6398
pm_node_t base
The embedded base node.
Definition ast.h:6393
A list of nodes in the source, most often used for lists of children.
Definition ast.h:597
size_t size
The number of nodes in the list.
Definition ast.h:599
struct pm_node ** nodes
The nodes in the list.
Definition ast.h:605
size_t capacity
The capacity of the list that has been allocated.
Definition ast.h:602
This is the base structure that represents a node in the syntax tree.
Definition ast.h:1095
pm_node_type_t type
This represents the type of the node.
Definition ast.h:1100
uint32_t node_id
The unique identifier for this node, which is deterministic based on the source.
Definition ast.h:1114
pm_node_flags_t flags
This represents any flags on the node.
Definition ast.h:1106
pm_location_t location
This is the location of the node in the source.
Definition ast.h:1120
NumberedParametersNode.
Definition ast.h:6418
pm_node_t base
The embedded base node.
Definition ast.h:6420
uint8_t maximum
NumberedParametersNode::maximum.
Definition ast.h:6425
NumberedReferenceReadNode.
Definition ast.h:6440
pm_node_t base
The embedded base node.
Definition ast.h:6442
uint32_t number
NumberedReferenceReadNode::number.
Definition ast.h:6455
OptionalKeywordParameterNode.
Definition ast.h:6474
pm_node_t base
The embedded base node.
Definition ast.h:6476
pm_constant_id_t name
OptionalKeywordParameterNode::name.
Definition ast.h:6481
PM_NODE_ALIGNAS struct pm_node * value
OptionalKeywordParameterNode::value.
Definition ast.h:6491
pm_location_t name_loc
OptionalKeywordParameterNode::name_loc.
Definition ast.h:6486
OptionalParameterNode.
Definition ast.h:6510
pm_location_t name_loc
OptionalParameterNode::name_loc.
Definition ast.h:6522
pm_constant_id_t name
OptionalParameterNode::name.
Definition ast.h:6517
pm_node_t base
The embedded base node.
Definition ast.h:6512
pm_location_t operator_loc
OptionalParameterNode::operator_loc.
Definition ast.h:6527
PM_NODE_ALIGNAS struct pm_node * value
OptionalParameterNode::value.
Definition ast.h:6532
OrNode.
Definition ast.h:6547
PM_NODE_ALIGNAS struct pm_node * right
OrNode::right.
Definition ast.h:6575
pm_node_t base
The embedded base node.
Definition ast.h:6549
PM_NODE_ALIGNAS struct pm_node * left
OrNode::left.
Definition ast.h:6562
pm_location_t operator_loc
OrNode::operator_loc.
Definition ast.h:6585
ParametersNode.
Definition ast.h:6601
PM_NODE_ALIGNAS struct pm_node * block
ParametersNode::block.
Definition ast.h:6638
struct pm_node_list requireds
ParametersNode::requireds.
Definition ast.h:6608
struct pm_node_list optionals
ParametersNode::optionals.
Definition ast.h:6613
struct pm_node_list posts
ParametersNode::posts.
Definition ast.h:6623
pm_node_t base
The embedded base node.
Definition ast.h:6603
PM_NODE_ALIGNAS struct pm_node * rest
ParametersNode::rest.
Definition ast.h:6618
struct pm_node_list keywords
ParametersNode::keywords.
Definition ast.h:6628
PM_NODE_ALIGNAS struct pm_node * keyword_rest
ParametersNode::keyword_rest.
Definition ast.h:6633
ParenthesesNode.
Definition ast.h:6656
pm_location_t closing_loc
ParenthesesNode::closing_loc.
Definition ast.h:6673
pm_node_t base
The embedded base node.
Definition ast.h:6658
pm_location_t opening_loc
ParenthesesNode::opening_loc.
Definition ast.h:6668
PM_NODE_ALIGNAS struct pm_node * body
ParenthesesNode::body.
Definition ast.h:6663
PinnedExpressionNode.
Definition ast.h:6688
pm_node_t base
The embedded base node.
Definition ast.h:6690
pm_location_t rparen_loc
PinnedExpressionNode::rparen_loc.
Definition ast.h:6730
pm_location_t lparen_loc
PinnedExpressionNode::lparen_loc.
Definition ast.h:6720
PM_NODE_ALIGNAS struct pm_node * expression
PinnedExpressionNode::expression.
Definition ast.h:6700
pm_location_t operator_loc
PinnedExpressionNode::operator_loc.
Definition ast.h:6710
PinnedVariableNode.
Definition ast.h:6745
pm_node_t base
The embedded base node.
Definition ast.h:6747
PM_NODE_ALIGNAS struct pm_node * variable
PinnedVariableNode::variable.
Definition ast.h:6757
pm_location_t operator_loc
PinnedVariableNode::operator_loc.
Definition ast.h:6767
PostExecutionNode.
Definition ast.h:6782
pm_location_t closing_loc
PostExecutionNode::closing_loc.
Definition ast.h:6804
pm_node_t base
The embedded base node.
Definition ast.h:6784
pm_location_t opening_loc
PostExecutionNode::opening_loc.
Definition ast.h:6799
pm_location_t keyword_loc
PostExecutionNode::keyword_loc.
Definition ast.h:6794
PM_NODE_ALIGNAS struct pm_statements_node * statements
PostExecutionNode::statements.
Definition ast.h:6789
PreExecutionNode.
Definition ast.h:6819
pm_location_t closing_loc
PreExecutionNode::closing_loc.
Definition ast.h:6841
pm_location_t opening_loc
PreExecutionNode::opening_loc.
Definition ast.h:6836
PM_NODE_ALIGNAS struct pm_statements_node * statements
PreExecutionNode::statements.
Definition ast.h:6826
pm_node_t base
The embedded base node.
Definition ast.h:6821
pm_location_t keyword_loc
PreExecutionNode::keyword_loc.
Definition ast.h:6831
ProgramNode.
Definition ast.h:6853
pm_node_t base
The embedded base node.
Definition ast.h:6855
PM_NODE_ALIGNAS struct pm_statements_node * statements
ProgramNode::statements.
Definition ast.h:6865
pm_constant_id_list_t locals
ProgramNode::locals.
Definition ast.h:6860
RangeNode.
Definition ast.h:6886
pm_location_t operator_loc
RangeNode::operator_loc.
Definition ast.h:6922
pm_node_t base
The embedded base node.
Definition ast.h:6888
PM_NODE_ALIGNAS struct pm_node * right
RangeNode::right.
Definition ast.h:6915
PM_NODE_ALIGNAS struct pm_node * left
RangeNode::left.
Definition ast.h:6901
RationalNode.
Definition ast.h:6943
pm_node_t base
The embedded base node.
Definition ast.h:6945
pm_integer_t denominator
RationalNode::denominator.
Definition ast.h:6963
pm_integer_t numerator
RationalNode::numerator.
Definition ast.h:6954
RedoNode.
Definition ast.h:6978
pm_node_t base
The embedded base node.
Definition ast.h:6980
RegularExpressionNode.
Definition ast.h:7008
pm_location_t closing_loc
RegularExpressionNode::closing_loc.
Definition ast.h:7025
pm_node_t base
The embedded base node.
Definition ast.h:7010
pm_string_t unescaped
RegularExpressionNode::unescaped.
Definition ast.h:7030
pm_location_t opening_loc
RegularExpressionNode::opening_loc.
Definition ast.h:7015
pm_location_t content_loc
RegularExpressionNode::content_loc.
Definition ast.h:7020
RequiredKeywordParameterNode.
Definition ast.h:7049
pm_location_t name_loc
RequiredKeywordParameterNode::name_loc.
Definition ast.h:7061
pm_node_t base
The embedded base node.
Definition ast.h:7051
pm_constant_id_t name
RequiredKeywordParameterNode::name.
Definition ast.h:7056
RequiredParameterNode.
Definition ast.h:7080
pm_constant_id_t name
RequiredParameterNode::name.
Definition ast.h:7087
pm_node_t base
The embedded base node.
Definition ast.h:7082
RescueModifierNode.
Definition ast.h:7102
PM_NODE_ALIGNAS struct pm_node * expression
RescueModifierNode::expression.
Definition ast.h:7109
pm_node_t base
The embedded base node.
Definition ast.h:7104
pm_location_t keyword_loc
RescueModifierNode::keyword_loc.
Definition ast.h:7114
PM_NODE_ALIGNAS struct pm_node * rescue_expression
RescueModifierNode::rescue_expression.
Definition ast.h:7119
RescueNode.
Definition ast.h:7139
PM_NODE_ALIGNAS struct pm_statements_node * statements
RescueNode::statements.
Definition ast.h:7171
PM_NODE_ALIGNAS struct pm_rescue_node * subsequent
RescueNode::subsequent.
Definition ast.h:7176
pm_location_t keyword_loc
RescueNode::keyword_loc.
Definition ast.h:7146
PM_NODE_ALIGNAS struct pm_node * reference
RescueNode::reference.
Definition ast.h:7161
pm_location_t then_keyword_loc
RescueNode::then_keyword_loc.
Definition ast.h:7166
pm_location_t operator_loc
RescueNode::operator_loc.
Definition ast.h:7156
struct pm_node_list exceptions
RescueNode::exceptions.
Definition ast.h:7151
pm_node_t base
The embedded base node.
Definition ast.h:7141
RestParameterNode.
Definition ast.h:7195
pm_constant_id_t name
RestParameterNode::name.
Definition ast.h:7202
pm_location_t name_loc
RestParameterNode::name_loc.
Definition ast.h:7207
pm_node_t base
The embedded base node.
Definition ast.h:7197
pm_location_t operator_loc
RestParameterNode::operator_loc.
Definition ast.h:7212
RetryNode.
Definition ast.h:7227
pm_node_t base
The embedded base node.
Definition ast.h:7229
ReturnNode.
Definition ast.h:7244
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
ReturnNode::arguments.
Definition ast.h:7256
pm_location_t keyword_loc
ReturnNode::keyword_loc.
Definition ast.h:7251
pm_node_t base
The embedded base node.
Definition ast.h:7246
SelfNode.
Definition ast.h:7271
pm_node_t base
The embedded base node.
Definition ast.h:7273
ShareableConstantNode.
Definition ast.h:7294
PM_NODE_ALIGNAS struct pm_node * write
ShareableConstantNode::write.
Definition ast.h:7303
pm_node_t base
The embedded base node.
Definition ast.h:7296
SingletonClassNode.
Definition ast.h:7318
PM_NODE_ALIGNAS struct pm_node * body
SingletonClassNode::body.
Definition ast.h:7345
pm_node_t base
The embedded base node.
Definition ast.h:7320
pm_constant_id_list_t locals
SingletonClassNode::locals.
Definition ast.h:7325
pm_location_t operator_loc
SingletonClassNode::operator_loc.
Definition ast.h:7335
PM_NODE_ALIGNAS struct pm_node * expression
SingletonClassNode::expression.
Definition ast.h:7340
pm_location_t end_keyword_loc
SingletonClassNode::end_keyword_loc.
Definition ast.h:7350
pm_location_t class_keyword_loc
SingletonClassNode::class_keyword_loc.
Definition ast.h:7330
SourceEncodingNode.
Definition ast.h:7365
pm_node_t base
The embedded base node.
Definition ast.h:7367
SourceFileNode.
Definition ast.h:7388
pm_string_t filepath
SourceFileNode::filepath.
Definition ast.h:7397
pm_node_t base
The embedded base node.
Definition ast.h:7390
SourceLineNode.
Definition ast.h:7412
pm_node_t base
The embedded base node.
Definition ast.h:7414
SplatNode.
Definition ast.h:7429
pm_node_t base
The embedded base node.
Definition ast.h:7431
PM_NODE_ALIGNAS struct pm_node * expression
SplatNode::expression.
Definition ast.h:7441
pm_location_t operator_loc
SplatNode::operator_loc.
Definition ast.h:7436
StatementsNode.
Definition ast.h:7456
struct pm_node_list body
StatementsNode::body.
Definition ast.h:7463
pm_node_t base
The embedded base node.
Definition ast.h:7458
StringNode.
Definition ast.h:7490
pm_node_t base
The embedded base node.
Definition ast.h:7492
pm_string_t unescaped
StringNode::unescaped.
Definition ast.h:7512
pm_location_t content_loc
StringNode::content_loc.
Definition ast.h:7502
pm_location_t closing_loc
StringNode::closing_loc.
Definition ast.h:7507
pm_location_t opening_loc
StringNode::opening_loc.
Definition ast.h:7497
A view of a sequence of bytes.
Definition stringy.h:23
SuperNode.
Definition ast.h:7532
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
SuperNode::arguments.
Definition ast.h:7551
pm_location_t lparen_loc
SuperNode::lparen_loc.
Definition ast.h:7544
pm_node_t base
The embedded base node.
Definition ast.h:7534
pm_location_t keyword_loc
SuperNode::keyword_loc.
Definition ast.h:7539
pm_location_t rparen_loc
SuperNode::rparen_loc.
Definition ast.h:7556
PM_NODE_ALIGNAS struct pm_node * block
SuperNode::block.
Definition ast.h:7561
SymbolNode.
Definition ast.h:7584
pm_location_t opening_loc
SymbolNode::opening_loc.
Definition ast.h:7591
pm_location_t content_loc
SymbolNode::content_loc.
Definition ast.h:7596
pm_location_t closing_loc
SymbolNode::closing_loc.
Definition ast.h:7601
pm_string_t unescaped
SymbolNode::unescaped.
Definition ast.h:7606
pm_node_t base
The embedded base node.
Definition ast.h:7586
This struct represents a token in the Ruby source.
Definition ast.h:556
const uint8_t * end
A pointer to the end location of the token in the source.
Definition ast.h:564
const uint8_t * start
A pointer to the start location of the token in the source.
Definition ast.h:561
pm_token_type_t type
The type of the token.
Definition ast.h:558
TrueNode.
Definition ast.h:7621
pm_node_t base
The embedded base node.
Definition ast.h:7623
UndefNode.
Definition ast.h:7638
pm_node_t base
The embedded base node.
Definition ast.h:7640
pm_location_t keyword_loc
UndefNode::keyword_loc.
Definition ast.h:7650
struct pm_node_list names
UndefNode::names.
Definition ast.h:7645
UnlessNode.
Definition ast.h:7668
pm_location_t then_keyword_loc
UnlessNode::then_keyword_loc.
Definition ast.h:7706
PM_NODE_ALIGNAS struct pm_node * predicate
UnlessNode::predicate.
Definition ast.h:7696
PM_NODE_ALIGNAS struct pm_statements_node * statements
UnlessNode::statements.
Definition ast.h:7717
pm_location_t end_keyword_loc
UnlessNode::end_keyword_loc.
Definition ast.h:7737
PM_NODE_ALIGNAS struct pm_else_node * else_clause
UnlessNode::else_clause.
Definition ast.h:7727
pm_node_t base
The embedded base node.
Definition ast.h:7670
pm_location_t unless_keyword_loc
UnlessNode::unless_keyword_loc.
Definition ast.h:7683
UntilNode.
Definition ast.h:7758
pm_location_t end_keyword_loc
UntilNode::end_keyword_loc.
Definition ast.h:7775
pm_location_t until_keyword_loc
UntilNode::until_keyword_loc.
Definition ast.h:7765
pm_node_t base
The embedded base node.
Definition ast.h:7760
PM_NODE_ALIGNAS struct pm_statements_node * statements
UntilNode::statements.
Definition ast.h:7785
pm_location_t do_keyword_loc
UntilNode::do_keyword_loc.
Definition ast.h:7770
PM_NODE_ALIGNAS struct pm_node * predicate
UntilNode::predicate.
Definition ast.h:7780
WhenNode.
Definition ast.h:7802
pm_location_t when_keyword_loc
WhenNode::when_keyword_loc.
Definition ast.h:7809
pm_node_t base
The embedded base node.
Definition ast.h:7804
pm_location_t then_keyword_loc
WhenNode::then_keyword_loc.
Definition ast.h:7819
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhenNode::statements.
Definition ast.h:7824
struct pm_node_list conditions
WhenNode::conditions.
Definition ast.h:7814
WhileNode.
Definition ast.h:7845
PM_NODE_ALIGNAS struct pm_statements_node * statements
WhileNode::statements.
Definition ast.h:7872
pm_location_t while_keyword_loc
WhileNode::while_keyword_loc.
Definition ast.h:7852
pm_location_t end_keyword_loc
WhileNode::end_keyword_loc.
Definition ast.h:7862
pm_node_t base
The embedded base node.
Definition ast.h:7847
pm_location_t do_keyword_loc
WhileNode::do_keyword_loc.
Definition ast.h:7857
PM_NODE_ALIGNAS struct pm_node * predicate
WhileNode::predicate.
Definition ast.h:7867
XStringNode.
Definition ast.h:7891
pm_location_t closing_loc
XStringNode::closing_loc.
Definition ast.h:7908
pm_location_t opening_loc
XStringNode::opening_loc.
Definition ast.h:7898
pm_location_t content_loc
XStringNode::content_loc.
Definition ast.h:7903
pm_string_t unescaped
XStringNode::unescaped.
Definition ast.h:7913
pm_node_t base
The embedded base node.
Definition ast.h:7893
YieldNode.
Definition ast.h:7928
pm_location_t keyword_loc
YieldNode::keyword_loc.
Definition ast.h:7935
pm_location_t lparen_loc
YieldNode::lparen_loc.
Definition ast.h:7940
pm_node_t base
The embedded base node.
Definition ast.h:7930
pm_location_t rparen_loc
YieldNode::rparen_loc.
Definition ast.h:7950
PM_NODE_ALIGNAS struct pm_arguments_node * arguments
YieldNode::arguments.
Definition ast.h:7945