Ruby 3.3.5p100 (2024-09-03 revision ef084cc8f4958c1b6e4ead99136631bef6d8ddba)
|
The abstract syntax tree. More...
#include "prism/defines.h"
#include "prism/util/pm_constant_pool.h"
#include "prism/util/pm_string.h"
#include <assert.h>
#include <stddef.h>
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | pm_token_t |
This struct represents a token in the Ruby source. More... | |
struct | pm_location_t |
This represents a range of bytes in the source string to which a node or token corresponds. More... | |
struct | pm_node_list |
A list of nodes in the source, most often used for lists of children. More... | |
struct | pm_node |
This is the base structure that represents a node in the syntax tree. More... | |
struct | pm_alias_global_variable_node |
AliasGlobalVariableNode. More... | |
struct | pm_alias_method_node |
AliasMethodNode. More... | |
struct | pm_alternation_pattern_node |
AlternationPatternNode. More... | |
struct | pm_and_node |
AndNode. More... | |
struct | pm_arguments_node |
ArgumentsNode. More... | |
struct | pm_array_node |
ArrayNode. More... | |
struct | pm_array_pattern_node |
ArrayPatternNode. More... | |
struct | pm_assoc_node |
AssocNode. More... | |
struct | pm_assoc_splat_node |
AssocSplatNode. More... | |
struct | pm_back_reference_read_node |
BackReferenceReadNode. More... | |
struct | pm_begin_node |
BeginNode. More... | |
struct | pm_block_argument_node |
BlockArgumentNode. More... | |
struct | pm_block_local_variable_node |
BlockLocalVariableNode. More... | |
struct | pm_block_node |
BlockNode. More... | |
struct | pm_block_parameter_node |
BlockParameterNode. More... | |
struct | pm_block_parameters_node |
BlockParametersNode. More... | |
struct | pm_break_node |
BreakNode. More... | |
struct | pm_call_and_write_node |
CallAndWriteNode. More... | |
struct | pm_call_node |
CallNode. More... | |
struct | pm_call_operator_write_node |
CallOperatorWriteNode. More... | |
struct | pm_call_or_write_node |
CallOrWriteNode. More... | |
struct | pm_call_target_node |
CallTargetNode. More... | |
struct | pm_capture_pattern_node |
CapturePatternNode. More... | |
struct | pm_case_match_node |
CaseMatchNode. More... | |
struct | pm_case_node |
CaseNode. More... | |
struct | pm_class_node |
ClassNode. More... | |
struct | pm_class_variable_and_write_node |
ClassVariableAndWriteNode. More... | |
struct | pm_class_variable_operator_write_node |
ClassVariableOperatorWriteNode. More... | |
struct | pm_class_variable_or_write_node |
ClassVariableOrWriteNode. More... | |
struct | pm_class_variable_read_node |
ClassVariableReadNode. More... | |
struct | pm_class_variable_target_node |
ClassVariableTargetNode. More... | |
struct | pm_class_variable_write_node |
ClassVariableWriteNode. More... | |
struct | pm_constant_and_write_node |
ConstantAndWriteNode. More... | |
struct | pm_constant_operator_write_node |
ConstantOperatorWriteNode. More... | |
struct | pm_constant_or_write_node |
ConstantOrWriteNode. More... | |
struct | pm_constant_path_and_write_node |
ConstantPathAndWriteNode. More... | |
struct | pm_constant_path_node |
ConstantPathNode. More... | |
struct | pm_constant_path_operator_write_node |
ConstantPathOperatorWriteNode. More... | |
struct | pm_constant_path_or_write_node |
ConstantPathOrWriteNode. More... | |
struct | pm_constant_path_target_node |
ConstantPathTargetNode. More... | |
struct | pm_constant_path_write_node |
ConstantPathWriteNode. More... | |
struct | pm_constant_read_node |
ConstantReadNode. More... | |
struct | pm_constant_target_node |
ConstantTargetNode. More... | |
struct | pm_constant_write_node |
ConstantWriteNode. More... | |
struct | pm_def_node |
DefNode. More... | |
struct | pm_defined_node |
DefinedNode. More... | |
struct | pm_else_node |
ElseNode. More... | |
struct | pm_embedded_statements_node |
EmbeddedStatementsNode. More... | |
struct | pm_embedded_variable_node |
EmbeddedVariableNode. More... | |
struct | pm_ensure_node |
EnsureNode. More... | |
struct | pm_false_node |
FalseNode. More... | |
struct | pm_find_pattern_node |
FindPatternNode. More... | |
struct | pm_flip_flop_node |
FlipFlopNode. More... | |
struct | pm_float_node |
FloatNode. More... | |
struct | pm_for_node |
ForNode. More... | |
struct | pm_forwarding_arguments_node |
ForwardingArgumentsNode. More... | |
struct | pm_forwarding_parameter_node |
ForwardingParameterNode. More... | |
struct | pm_forwarding_super_node |
ForwardingSuperNode. More... | |
struct | pm_global_variable_and_write_node |
GlobalVariableAndWriteNode. More... | |
struct | pm_global_variable_operator_write_node |
GlobalVariableOperatorWriteNode. More... | |
struct | pm_global_variable_or_write_node |
GlobalVariableOrWriteNode. More... | |
struct | pm_global_variable_read_node |
GlobalVariableReadNode. More... | |
struct | pm_global_variable_target_node |
GlobalVariableTargetNode. More... | |
struct | pm_global_variable_write_node |
GlobalVariableWriteNode. More... | |
struct | pm_hash_node |
HashNode. More... | |
struct | pm_hash_pattern_node |
HashPatternNode. More... | |
struct | pm_if_node |
IfNode. More... | |
struct | pm_imaginary_node |
ImaginaryNode. More... | |
struct | pm_implicit_node |
ImplicitNode. More... | |
struct | pm_implicit_rest_node |
ImplicitRestNode. More... | |
struct | pm_in_node |
InNode. More... | |
struct | pm_index_and_write_node |
IndexAndWriteNode. More... | |
struct | pm_index_operator_write_node |
IndexOperatorWriteNode. More... | |
struct | pm_index_or_write_node |
IndexOrWriteNode. More... | |
struct | pm_index_target_node |
IndexTargetNode. More... | |
struct | pm_instance_variable_and_write_node |
InstanceVariableAndWriteNode. More... | |
struct | pm_instance_variable_operator_write_node |
InstanceVariableOperatorWriteNode. More... | |
struct | pm_instance_variable_or_write_node |
InstanceVariableOrWriteNode. More... | |
struct | pm_instance_variable_read_node |
InstanceVariableReadNode. More... | |
struct | pm_instance_variable_target_node |
InstanceVariableTargetNode. More... | |
struct | pm_instance_variable_write_node |
InstanceVariableWriteNode. More... | |
struct | pm_integer_node |
IntegerNode. More... | |
struct | pm_interpolated_match_last_line_node |
InterpolatedMatchLastLineNode. More... | |
struct | pm_interpolated_regular_expression_node |
InterpolatedRegularExpressionNode. More... | |
struct | pm_interpolated_string_node |
InterpolatedStringNode. More... | |
struct | pm_interpolated_symbol_node |
InterpolatedSymbolNode. More... | |
struct | pm_interpolated_x_string_node |
InterpolatedXStringNode. More... | |
struct | pm_keyword_hash_node |
KeywordHashNode. More... | |
struct | pm_keyword_rest_parameter_node |
KeywordRestParameterNode. More... | |
struct | pm_lambda_node |
LambdaNode. More... | |
struct | pm_local_variable_and_write_node |
LocalVariableAndWriteNode. More... | |
struct | pm_local_variable_operator_write_node |
LocalVariableOperatorWriteNode. More... | |
struct | pm_local_variable_or_write_node |
LocalVariableOrWriteNode. More... | |
struct | pm_local_variable_read_node |
LocalVariableReadNode. More... | |
struct | pm_local_variable_target_node |
LocalVariableTargetNode. More... | |
struct | pm_local_variable_write_node |
LocalVariableWriteNode. More... | |
struct | pm_match_last_line_node |
MatchLastLineNode. More... | |
struct | pm_match_predicate_node |
MatchPredicateNode. More... | |
struct | pm_match_required_node |
MatchRequiredNode. More... | |
struct | pm_match_write_node |
MatchWriteNode. More... | |
struct | pm_missing_node |
MissingNode. More... | |
struct | pm_module_node |
ModuleNode. More... | |
struct | pm_multi_target_node |
MultiTargetNode. More... | |
struct | pm_multi_write_node |
MultiWriteNode. More... | |
struct | pm_next_node |
NextNode. More... | |
struct | pm_nil_node |
NilNode. More... | |
struct | pm_no_keywords_parameter_node |
NoKeywordsParameterNode. More... | |
struct | pm_numbered_parameters_node |
NumberedParametersNode. More... | |
struct | pm_numbered_reference_read_node |
NumberedReferenceReadNode. More... | |
struct | pm_optional_keyword_parameter_node |
OptionalKeywordParameterNode. More... | |
struct | pm_optional_parameter_node |
OptionalParameterNode. More... | |
struct | pm_or_node |
OrNode. More... | |
struct | pm_parameters_node |
ParametersNode. More... | |
struct | pm_parentheses_node |
ParenthesesNode. More... | |
struct | pm_pinned_expression_node |
PinnedExpressionNode. More... | |
struct | pm_pinned_variable_node |
PinnedVariableNode. More... | |
struct | pm_post_execution_node |
PostExecutionNode. More... | |
struct | pm_pre_execution_node |
PreExecutionNode. More... | |
struct | pm_program_node |
ProgramNode. More... | |
struct | pm_range_node |
RangeNode. More... | |
struct | pm_rational_node |
RationalNode. More... | |
struct | pm_redo_node |
RedoNode. More... | |
struct | pm_regular_expression_node |
RegularExpressionNode. More... | |
struct | pm_required_keyword_parameter_node |
RequiredKeywordParameterNode. More... | |
struct | pm_required_parameter_node |
RequiredParameterNode. More... | |
struct | pm_rescue_modifier_node |
RescueModifierNode. More... | |
struct | pm_rescue_node |
RescueNode. More... | |
struct | pm_rest_parameter_node |
RestParameterNode. More... | |
struct | pm_retry_node |
RetryNode. More... | |
struct | pm_return_node |
ReturnNode. More... | |
struct | pm_self_node |
SelfNode. More... | |
struct | pm_singleton_class_node |
SingletonClassNode. More... | |
struct | pm_source_encoding_node |
SourceEncodingNode. More... | |
struct | pm_source_file_node |
SourceFileNode. More... | |
struct | pm_source_line_node |
SourceLineNode. More... | |
struct | pm_splat_node |
SplatNode. More... | |
struct | pm_statements_node |
StatementsNode. More... | |
struct | pm_string_node |
StringNode. More... | |
struct | pm_super_node |
SuperNode. More... | |
struct | pm_symbol_node |
SymbolNode. More... | |
struct | pm_true_node |
TrueNode. More... | |
struct | pm_undef_node |
UndefNode. More... | |
struct | pm_unless_node |
UnlessNode. More... | |
struct | pm_until_node |
UntilNode. More... | |
struct | pm_when_node |
WhenNode. More... | |
struct | pm_while_node |
WhileNode. More... | |
struct | pm_x_string_node |
XStringNode. More... | |
struct | pm_yield_node |
YieldNode. More... | |
Macros | |
#define | PM_NODE_FLAG_BITS (sizeof(pm_node_flags_t) * 8) |
We store the flags enum in every node in the tree. | |
#define | PM_NODE_TYPE(node) |
Cast the type to an enum to allow the compiler to provide exhaustiveness checking. | |
#define | PM_NODE_TYPE_P(node, type) |
Return true if the type of the given node matches the given type. | |
#define | PM_NODE_FLAG_P(node, flag) |
Return true if the given flag is set on the given node. | |
#define | PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS false |
When we're serializing to Java, we want to skip serializing the location fields as they won't be used by JRuby or TruffleRuby. | |
Variables | |
static const pm_node_flags_t | PM_NODE_FLAG_NEWLINE = (1 << (PM_NODE_FLAG_BITS - 1)) |
static const pm_node_flags_t | PM_NODE_FLAG_STATIC_LITERAL = (1 << (PM_NODE_FLAG_BITS - 2)) |
static const pm_node_flags_t | PM_NODE_FLAG_COMMON_MASK = (1 << (PM_NODE_FLAG_BITS - 1)) | (1 << (PM_NODE_FLAG_BITS - 2)) |
The abstract syntax tree.
Definition in file ast.h.
#define PM_NODE_FLAG_BITS (sizeof(pm_node_flags_t) * 8) |
#define PM_NODE_FLAG_P | ( | node, | |
flag ) |
Return true if the given flag is set on the given node.
#define PM_NODE_TYPE | ( | node | ) |
Cast the type to an enum to allow the compiler to provide exhaustiveness checking.
Definition at line 1045 of file ast.h.
Referenced by pm_node_destroy().
#define PM_NODE_TYPE_P | ( | node, | |
type ) |
Return true if the type of the given node matches the given type.
#define PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS false |
typedef struct pm_alias_global_variable_node pm_alias_global_variable_node_t |
AliasGlobalVariableNode.
Type: PM_ALIAS_GLOBAL_VARIABLE_NODE
typedef struct pm_alias_method_node pm_alias_method_node_t |
AliasMethodNode.
Type: PM_ALIAS_METHOD_NODE
typedef struct pm_alternation_pattern_node pm_alternation_pattern_node_t |
AlternationPatternNode.
Type: PM_ALTERNATION_PATTERN_NODE
typedef struct pm_and_node pm_and_node_t |
AndNode.
Type: PM_AND_NODE
typedef enum pm_arguments_node_flags pm_arguments_node_flags_t |
Flags for arguments nodes.
typedef struct pm_arguments_node pm_arguments_node_t |
ArgumentsNode.
Type: PM_ARGUMENTS_NODE Flags: PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORD_SPLAT
typedef enum pm_array_node_flags pm_array_node_flags_t |
Flags for array nodes.
typedef struct pm_array_node pm_array_node_t |
ArrayNode.
Type: PM_ARRAY_NODE Flags: PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT
typedef struct pm_array_pattern_node pm_array_pattern_node_t |
ArrayPatternNode.
Type: PM_ARRAY_PATTERN_NODE
typedef struct pm_assoc_node pm_assoc_node_t |
AssocNode.
Type: PM_ASSOC_NODE
typedef struct pm_assoc_splat_node pm_assoc_splat_node_t |
AssocSplatNode.
Type: PM_ASSOC_SPLAT_NODE
typedef struct pm_back_reference_read_node pm_back_reference_read_node_t |
BackReferenceReadNode.
Type: PM_BACK_REFERENCE_READ_NODE
typedef struct pm_begin_node pm_begin_node_t |
BeginNode.
Type: PM_BEGIN_NODE
typedef struct pm_block_argument_node pm_block_argument_node_t |
BlockArgumentNode.
Type: PM_BLOCK_ARGUMENT_NODE
typedef struct pm_block_local_variable_node pm_block_local_variable_node_t |
BlockLocalVariableNode.
Type: PM_BLOCK_LOCAL_VARIABLE_NODE
typedef struct pm_block_node pm_block_node_t |
BlockNode.
Type: PM_BLOCK_NODE
typedef struct pm_block_parameter_node pm_block_parameter_node_t |
BlockParameterNode.
Type: PM_BLOCK_PARAMETER_NODE
typedef struct pm_block_parameters_node pm_block_parameters_node_t |
BlockParametersNode.
Type: PM_BLOCK_PARAMETERS_NODE
typedef struct pm_break_node pm_break_node_t |
BreakNode.
Type: PM_BREAK_NODE
typedef struct pm_call_and_write_node pm_call_and_write_node_t |
CallAndWriteNode.
Type: PM_CALL_AND_WRITE_NODE Flags: PM_CALL_NODE_FLAGS_SAFE_NAVIGATION PM_CALL_NODE_FLAGS_VARIABLE_CALL PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
typedef enum pm_call_node_flags pm_call_node_flags_t |
Flags for call nodes.
typedef struct pm_call_node pm_call_node_t |
Type: PM_CALL_NODE Flags: PM_CALL_NODE_FLAGS_SAFE_NAVIGATION PM_CALL_NODE_FLAGS_VARIABLE_CALL PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
typedef struct pm_call_operator_write_node pm_call_operator_write_node_t |
CallOperatorWriteNode.
Type: PM_CALL_OPERATOR_WRITE_NODE Flags: PM_CALL_NODE_FLAGS_SAFE_NAVIGATION PM_CALL_NODE_FLAGS_VARIABLE_CALL PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
typedef struct pm_call_or_write_node pm_call_or_write_node_t |
CallOrWriteNode.
Type: PM_CALL_OR_WRITE_NODE Flags: PM_CALL_NODE_FLAGS_SAFE_NAVIGATION PM_CALL_NODE_FLAGS_VARIABLE_CALL PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
typedef struct pm_call_target_node pm_call_target_node_t |
CallTargetNode.
Type: PM_CALL_TARGET_NODE Flags: PM_CALL_NODE_FLAGS_SAFE_NAVIGATION PM_CALL_NODE_FLAGS_VARIABLE_CALL PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
typedef struct pm_capture_pattern_node pm_capture_pattern_node_t |
CapturePatternNode.
Type: PM_CAPTURE_PATTERN_NODE
typedef struct pm_case_match_node pm_case_match_node_t |
CaseMatchNode.
Type: PM_CASE_MATCH_NODE
typedef struct pm_case_node pm_case_node_t |
CaseNode.
Type: PM_CASE_NODE
typedef struct pm_class_node pm_class_node_t |
ClassNode.
Type: PM_CLASS_NODE
ClassVariableAndWriteNode.
Type: PM_CLASS_VARIABLE_AND_WRITE_NODE
ClassVariableOperatorWriteNode.
Type: PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE
typedef struct pm_class_variable_or_write_node pm_class_variable_or_write_node_t |
ClassVariableOrWriteNode.
Type: PM_CLASS_VARIABLE_OR_WRITE_NODE
typedef struct pm_class_variable_read_node pm_class_variable_read_node_t |
ClassVariableReadNode.
Type: PM_CLASS_VARIABLE_READ_NODE
typedef struct pm_class_variable_target_node pm_class_variable_target_node_t |
ClassVariableTargetNode.
Type: PM_CLASS_VARIABLE_TARGET_NODE
typedef struct pm_class_variable_write_node pm_class_variable_write_node_t |
ClassVariableWriteNode.
Type: PM_CLASS_VARIABLE_WRITE_NODE
typedef struct pm_constant_and_write_node pm_constant_and_write_node_t |
ConstantAndWriteNode.
Type: PM_CONSTANT_AND_WRITE_NODE
typedef struct pm_constant_operator_write_node pm_constant_operator_write_node_t |
ConstantOperatorWriteNode.
Type: PM_CONSTANT_OPERATOR_WRITE_NODE
typedef struct pm_constant_or_write_node pm_constant_or_write_node_t |
ConstantOrWriteNode.
Type: PM_CONSTANT_OR_WRITE_NODE
typedef struct pm_constant_path_and_write_node pm_constant_path_and_write_node_t |
ConstantPathAndWriteNode.
Type: PM_CONSTANT_PATH_AND_WRITE_NODE
typedef struct pm_constant_path_node pm_constant_path_node_t |
ConstantPathNode.
Type: PM_CONSTANT_PATH_NODE
ConstantPathOperatorWriteNode.
Type: PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
typedef struct pm_constant_path_or_write_node pm_constant_path_or_write_node_t |
ConstantPathOrWriteNode.
Type: PM_CONSTANT_PATH_OR_WRITE_NODE
typedef struct pm_constant_path_target_node pm_constant_path_target_node_t |
ConstantPathTargetNode.
Type: PM_CONSTANT_PATH_TARGET_NODE
typedef struct pm_constant_path_write_node pm_constant_path_write_node_t |
ConstantPathWriteNode.
Type: PM_CONSTANT_PATH_WRITE_NODE
typedef struct pm_constant_read_node pm_constant_read_node_t |
ConstantReadNode.
Type: PM_CONSTANT_READ_NODE
typedef struct pm_constant_target_node pm_constant_target_node_t |
ConstantTargetNode.
Type: PM_CONSTANT_TARGET_NODE
typedef struct pm_constant_write_node pm_constant_write_node_t |
ConstantWriteNode.
Type: PM_CONSTANT_WRITE_NODE
typedef struct pm_def_node pm_def_node_t |
DefNode.
Type: PM_DEF_NODE
typedef struct pm_defined_node pm_defined_node_t |
DefinedNode.
Type: PM_DEFINED_NODE
typedef struct pm_else_node pm_else_node_t |
ElseNode.
Type: PM_ELSE_NODE
typedef struct pm_embedded_statements_node pm_embedded_statements_node_t |
EmbeddedStatementsNode.
Type: PM_EMBEDDED_STATEMENTS_NODE
typedef struct pm_embedded_variable_node pm_embedded_variable_node_t |
EmbeddedVariableNode.
Type: PM_EMBEDDED_VARIABLE_NODE
typedef enum pm_encoding_flags pm_encoding_flags_t |
Flags for nodes that have unescaped content.
typedef struct pm_ensure_node pm_ensure_node_t |
EnsureNode.
Type: PM_ENSURE_NODE
typedef struct pm_false_node pm_false_node_t |
FalseNode.
Type: PM_FALSE_NODE
typedef struct pm_find_pattern_node pm_find_pattern_node_t |
FindPatternNode.
Type: PM_FIND_PATTERN_NODE
typedef struct pm_flip_flop_node pm_flip_flop_node_t |
FlipFlopNode.
Type: PM_FLIP_FLOP_NODE Flags: PM_RANGE_FLAGS_EXCLUDE_END
typedef struct pm_float_node pm_float_node_t |
FloatNode.
Type: PM_FLOAT_NODE
typedef struct pm_for_node pm_for_node_t |
ForNode.
Type: PM_FOR_NODE
typedef struct pm_forwarding_arguments_node pm_forwarding_arguments_node_t |
ForwardingArgumentsNode.
Type: PM_FORWARDING_ARGUMENTS_NODE
typedef struct pm_forwarding_parameter_node pm_forwarding_parameter_node_t |
ForwardingParameterNode.
Type: PM_FORWARDING_PARAMETER_NODE
typedef struct pm_forwarding_super_node pm_forwarding_super_node_t |
ForwardingSuperNode.
Type: PM_FORWARDING_SUPER_NODE
GlobalVariableAndWriteNode.
Type: PM_GLOBAL_VARIABLE_AND_WRITE_NODE
GlobalVariableOperatorWriteNode.
Type: PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE
GlobalVariableOrWriteNode.
Type: PM_GLOBAL_VARIABLE_OR_WRITE_NODE
typedef struct pm_global_variable_read_node pm_global_variable_read_node_t |
GlobalVariableReadNode.
Type: PM_GLOBAL_VARIABLE_READ_NODE
typedef struct pm_global_variable_target_node pm_global_variable_target_node_t |
GlobalVariableTargetNode.
Type: PM_GLOBAL_VARIABLE_TARGET_NODE
typedef struct pm_global_variable_write_node pm_global_variable_write_node_t |
GlobalVariableWriteNode.
Type: PM_GLOBAL_VARIABLE_WRITE_NODE
typedef struct pm_hash_node pm_hash_node_t |
HashNode.
Type: PM_HASH_NODE
typedef struct pm_hash_pattern_node pm_hash_pattern_node_t |
HashPatternNode.
Type: PM_HASH_PATTERN_NODE
typedef struct pm_if_node pm_if_node_t |
IfNode.
Type: PM_IF_NODE
typedef struct pm_imaginary_node pm_imaginary_node_t |
ImaginaryNode.
Type: PM_IMAGINARY_NODE
typedef struct pm_implicit_node pm_implicit_node_t |
ImplicitNode.
Type: PM_IMPLICIT_NODE
typedef struct pm_implicit_rest_node pm_implicit_rest_node_t |
ImplicitRestNode.
Type: PM_IMPLICIT_REST_NODE
typedef struct pm_in_node pm_in_node_t |
InNode.
Type: PM_IN_NODE
typedef struct pm_index_and_write_node pm_index_and_write_node_t |
IndexAndWriteNode.
Type: PM_INDEX_AND_WRITE_NODE Flags: PM_CALL_NODE_FLAGS_SAFE_NAVIGATION PM_CALL_NODE_FLAGS_VARIABLE_CALL PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
typedef struct pm_index_operator_write_node pm_index_operator_write_node_t |
IndexOperatorWriteNode.
Type: PM_INDEX_OPERATOR_WRITE_NODE Flags: PM_CALL_NODE_FLAGS_SAFE_NAVIGATION PM_CALL_NODE_FLAGS_VARIABLE_CALL PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
typedef struct pm_index_or_write_node pm_index_or_write_node_t |
IndexOrWriteNode.
Type: PM_INDEX_OR_WRITE_NODE Flags: PM_CALL_NODE_FLAGS_SAFE_NAVIGATION PM_CALL_NODE_FLAGS_VARIABLE_CALL PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
typedef struct pm_index_target_node pm_index_target_node_t |
IndexTargetNode.
Type: PM_INDEX_TARGET_NODE Flags: PM_CALL_NODE_FLAGS_SAFE_NAVIGATION PM_CALL_NODE_FLAGS_VARIABLE_CALL PM_CALL_NODE_FLAGS_ATTRIBUTE_WRITE
InstanceVariableAndWriteNode.
Type: PM_INSTANCE_VARIABLE_AND_WRITE_NODE
InstanceVariableOperatorWriteNode.
Type: PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE
InstanceVariableOrWriteNode.
Type: PM_INSTANCE_VARIABLE_OR_WRITE_NODE
typedef struct pm_instance_variable_read_node pm_instance_variable_read_node_t |
InstanceVariableReadNode.
Type: PM_INSTANCE_VARIABLE_READ_NODE
InstanceVariableTargetNode.
Type: PM_INSTANCE_VARIABLE_TARGET_NODE
typedef struct pm_instance_variable_write_node pm_instance_variable_write_node_t |
InstanceVariableWriteNode.
Type: PM_INSTANCE_VARIABLE_WRITE_NODE
typedef enum pm_integer_base_flags pm_integer_base_flags_t |
Flags for integer nodes that correspond to the base of the integer.
typedef struct pm_integer_node pm_integer_node_t |
IntegerNode.
Type: PM_INTEGER_NODE Flags: PM_INTEGER_BASE_FLAGS_BINARY PM_INTEGER_BASE_FLAGS_DECIMAL PM_INTEGER_BASE_FLAGS_OCTAL PM_INTEGER_BASE_FLAGS_HEXADECIMAL
InterpolatedMatchLastLineNode.
Type: PM_INTERPOLATED_MATCH_LAST_LINE_NODE Flags: PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE PM_REGULAR_EXPRESSION_FLAGS_EXTENDED PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE PM_REGULAR_EXPRESSION_FLAGS_ONCE PM_REGULAR_EXPRESSION_FLAGS_EUC_JP PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J PM_REGULAR_EXPRESSION_FLAGS_UTF_8 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
InterpolatedRegularExpressionNode.
Type: PM_INTERPOLATED_REGULAR_EXPRESSION_NODE Flags: PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE PM_REGULAR_EXPRESSION_FLAGS_EXTENDED PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE PM_REGULAR_EXPRESSION_FLAGS_ONCE PM_REGULAR_EXPRESSION_FLAGS_EUC_JP PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J PM_REGULAR_EXPRESSION_FLAGS_UTF_8 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
typedef struct pm_interpolated_string_node pm_interpolated_string_node_t |
InterpolatedStringNode.
Type: PM_INTERPOLATED_STRING_NODE
typedef struct pm_interpolated_symbol_node pm_interpolated_symbol_node_t |
InterpolatedSymbolNode.
Type: PM_INTERPOLATED_SYMBOL_NODE
typedef struct pm_interpolated_x_string_node pm_interpolated_x_string_node_t |
InterpolatedXStringNode.
Type: PM_INTERPOLATED_X_STRING_NODE
typedef enum pm_keyword_hash_node_flags pm_keyword_hash_node_flags_t |
Flags for keyword hash nodes.
typedef struct pm_keyword_hash_node pm_keyword_hash_node_t |
KeywordHashNode.
Type: PM_KEYWORD_HASH_NODE Flags: PM_KEYWORD_HASH_NODE_FLAGS_STATIC_KEYS
typedef struct pm_keyword_rest_parameter_node pm_keyword_rest_parameter_node_t |
KeywordRestParameterNode.
Type: PM_KEYWORD_REST_PARAMETER_NODE
typedef struct pm_lambda_node pm_lambda_node_t |
LambdaNode.
Type: PM_LAMBDA_NODE
LocalVariableAndWriteNode.
Type: PM_LOCAL_VARIABLE_AND_WRITE_NODE
LocalVariableOperatorWriteNode.
Type: PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE
typedef struct pm_local_variable_or_write_node pm_local_variable_or_write_node_t |
LocalVariableOrWriteNode.
Type: PM_LOCAL_VARIABLE_OR_WRITE_NODE
typedef struct pm_local_variable_read_node pm_local_variable_read_node_t |
LocalVariableReadNode.
Type: PM_LOCAL_VARIABLE_READ_NODE
typedef struct pm_local_variable_target_node pm_local_variable_target_node_t |
LocalVariableTargetNode.
Type: PM_LOCAL_VARIABLE_TARGET_NODE
typedef struct pm_local_variable_write_node pm_local_variable_write_node_t |
LocalVariableWriteNode.
Type: PM_LOCAL_VARIABLE_WRITE_NODE
typedef enum pm_loop_flags pm_loop_flags_t |
Flags for while and until loop nodes.
typedef struct pm_match_last_line_node pm_match_last_line_node_t |
MatchLastLineNode.
Type: PM_MATCH_LAST_LINE_NODE Flags: PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE PM_REGULAR_EXPRESSION_FLAGS_EXTENDED PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE PM_REGULAR_EXPRESSION_FLAGS_ONCE PM_REGULAR_EXPRESSION_FLAGS_EUC_JP PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J PM_REGULAR_EXPRESSION_FLAGS_UTF_8 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
typedef struct pm_match_predicate_node pm_match_predicate_node_t |
MatchPredicateNode.
Type: PM_MATCH_PREDICATE_NODE
typedef struct pm_match_required_node pm_match_required_node_t |
MatchRequiredNode.
Type: PM_MATCH_REQUIRED_NODE
typedef struct pm_match_write_node pm_match_write_node_t |
MatchWriteNode.
Type: PM_MATCH_WRITE_NODE
typedef struct pm_missing_node pm_missing_node_t |
MissingNode.
Type: PM_MISSING_NODE
typedef struct pm_module_node pm_module_node_t |
ModuleNode.
Type: PM_MODULE_NODE
typedef struct pm_multi_target_node pm_multi_target_node_t |
MultiTargetNode.
Type: PM_MULTI_TARGET_NODE
typedef struct pm_multi_write_node pm_multi_write_node_t |
MultiWriteNode.
Type: PM_MULTI_WRITE_NODE
typedef struct pm_next_node pm_next_node_t |
NextNode.
Type: PM_NEXT_NODE
typedef struct pm_nil_node pm_nil_node_t |
NilNode.
Type: PM_NIL_NODE
typedef struct pm_no_keywords_parameter_node pm_no_keywords_parameter_node_t |
NoKeywordsParameterNode.
Type: PM_NO_KEYWORDS_PARAMETER_NODE
typedef uint16_t pm_node_flags_t |
typedef struct pm_node_list pm_node_list_t |
A list of nodes in the source, most often used for lists of children.
This is the base structure that represents a node in the syntax tree.
It is embedded into every node type.
typedef uint16_t pm_node_type_t |
typedef struct pm_numbered_parameters_node pm_numbered_parameters_node_t |
NumberedParametersNode.
Type: PM_NUMBERED_PARAMETERS_NODE
typedef struct pm_numbered_reference_read_node pm_numbered_reference_read_node_t |
NumberedReferenceReadNode.
Type: PM_NUMBERED_REFERENCE_READ_NODE
OptionalKeywordParameterNode.
Type: PM_OPTIONAL_KEYWORD_PARAMETER_NODE
typedef struct pm_optional_parameter_node pm_optional_parameter_node_t |
OptionalParameterNode.
Type: PM_OPTIONAL_PARAMETER_NODE
typedef struct pm_or_node pm_or_node_t |
OrNode.
Type: PM_OR_NODE
typedef struct pm_parameters_node pm_parameters_node_t |
ParametersNode.
Type: PM_PARAMETERS_NODE
typedef struct pm_parentheses_node pm_parentheses_node_t |
ParenthesesNode.
Type: PM_PARENTHESES_NODE
typedef struct pm_pinned_expression_node pm_pinned_expression_node_t |
PinnedExpressionNode.
Type: PM_PINNED_EXPRESSION_NODE
typedef struct pm_pinned_variable_node pm_pinned_variable_node_t |
PinnedVariableNode.
Type: PM_PINNED_VARIABLE_NODE
typedef struct pm_post_execution_node pm_post_execution_node_t |
PostExecutionNode.
Type: PM_POST_EXECUTION_NODE
typedef struct pm_pre_execution_node pm_pre_execution_node_t |
PreExecutionNode.
Type: PM_PRE_EXECUTION_NODE
typedef struct pm_program_node pm_program_node_t |
ProgramNode.
Type: PM_PROGRAM_NODE
typedef enum pm_range_flags pm_range_flags_t |
Flags for range and flip-flop nodes.
typedef struct pm_range_node pm_range_node_t |
RangeNode.
Type: PM_RANGE_NODE Flags: PM_RANGE_FLAGS_EXCLUDE_END
typedef struct pm_rational_node pm_rational_node_t |
RationalNode.
Type: PM_RATIONAL_NODE
typedef struct pm_redo_node pm_redo_node_t |
RedoNode.
Type: PM_REDO_NODE
typedef enum pm_regular_expression_flags pm_regular_expression_flags_t |
Flags for regular expression and match last line nodes.
typedef struct pm_regular_expression_node pm_regular_expression_node_t |
RegularExpressionNode.
Type: PM_REGULAR_EXPRESSION_NODE Flags: PM_REGULAR_EXPRESSION_FLAGS_IGNORE_CASE PM_REGULAR_EXPRESSION_FLAGS_EXTENDED PM_REGULAR_EXPRESSION_FLAGS_MULTI_LINE PM_REGULAR_EXPRESSION_FLAGS_ONCE PM_REGULAR_EXPRESSION_FLAGS_EUC_JP PM_REGULAR_EXPRESSION_FLAGS_ASCII_8BIT PM_REGULAR_EXPRESSION_FLAGS_WINDOWS_31J PM_REGULAR_EXPRESSION_FLAGS_UTF_8 PM_REGULAR_EXPRESSION_FLAGS_FORCED_UTF8_ENCODING PM_REGULAR_EXPRESSION_FLAGS_FORCED_BINARY_ENCODING PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING
RequiredKeywordParameterNode.
Type: PM_REQUIRED_KEYWORD_PARAMETER_NODE
typedef struct pm_required_parameter_node pm_required_parameter_node_t |
RequiredParameterNode.
Type: PM_REQUIRED_PARAMETER_NODE
typedef struct pm_rescue_modifier_node pm_rescue_modifier_node_t |
RescueModifierNode.
Type: PM_RESCUE_MODIFIER_NODE
typedef struct pm_rescue_node pm_rescue_node_t |
RescueNode.
Type: PM_RESCUE_NODE
typedef struct pm_rest_parameter_node pm_rest_parameter_node_t |
RestParameterNode.
Type: PM_REST_PARAMETER_NODE
typedef struct pm_retry_node pm_retry_node_t |
RetryNode.
Type: PM_RETRY_NODE
typedef struct pm_return_node pm_return_node_t |
ReturnNode.
Type: PM_RETURN_NODE
typedef struct pm_self_node pm_self_node_t |
SelfNode.
Type: PM_SELF_NODE
typedef struct pm_singleton_class_node pm_singleton_class_node_t |
SingletonClassNode.
Type: PM_SINGLETON_CLASS_NODE
typedef struct pm_source_encoding_node pm_source_encoding_node_t |
SourceEncodingNode.
Type: PM_SOURCE_ENCODING_NODE
typedef struct pm_source_file_node pm_source_file_node_t |
SourceFileNode.
Type: PM_SOURCE_FILE_NODE
typedef struct pm_source_line_node pm_source_line_node_t |
SourceLineNode.
Type: PM_SOURCE_LINE_NODE
typedef struct pm_splat_node pm_splat_node_t |
SplatNode.
Type: PM_SPLAT_NODE
typedef struct pm_statements_node pm_statements_node_t |
StatementsNode.
Type: PM_STATEMENTS_NODE
typedef enum pm_string_flags pm_string_flags_t |
Flags for string nodes.
typedef struct pm_string_node pm_string_node_t |
StringNode.
Type: PM_STRING_NODE Flags: PM_STRING_FLAGS_FORCED_UTF8_ENCODING PM_STRING_FLAGS_FORCED_BINARY_ENCODING PM_STRING_FLAGS_FROZEN
typedef struct pm_super_node pm_super_node_t |
SuperNode.
Type: PM_SUPER_NODE
typedef enum pm_symbol_flags pm_symbol_flags_t |
Flags for symbol nodes.
typedef struct pm_symbol_node pm_symbol_node_t |
SymbolNode.
Type: PM_SYMBOL_NODE Flags: PM_SYMBOL_FLAGS_FORCED_UTF8_ENCODING PM_SYMBOL_FLAGS_FORCED_BINARY_ENCODING PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING
typedef enum pm_token_type pm_token_type_t |
This enum represents every type of token in the Ruby source.
typedef struct pm_true_node pm_true_node_t |
TrueNode.
Type: PM_TRUE_NODE
typedef struct pm_undef_node pm_undef_node_t |
UndefNode.
Type: PM_UNDEF_NODE
typedef struct pm_unless_node pm_unless_node_t |
UnlessNode.
Type: PM_UNLESS_NODE
typedef struct pm_until_node pm_until_node_t |
UntilNode.
Type: PM_UNTIL_NODE Flags: PM_LOOP_FLAGS_BEGIN_MODIFIER
typedef struct pm_when_node pm_when_node_t |
WhenNode.
Type: PM_WHEN_NODE
typedef struct pm_while_node pm_while_node_t |
WhileNode.
Type: PM_WHILE_NODE Flags: PM_LOOP_FLAGS_BEGIN_MODIFIER
typedef struct pm_x_string_node pm_x_string_node_t |
XStringNode.
Type: PM_X_STRING_NODE Flags: PM_ENCODING_FLAGS_FORCED_UTF8_ENCODING PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING
typedef struct pm_yield_node pm_yield_node_t |
YieldNode.
Type: PM_YIELD_NODE
enum pm_array_node_flags |
enum pm_call_node_flags |
enum pm_encoding_flags |
enum pm_loop_flags |
enum pm_node_type |
This enum represents every type of node in the Ruby syntax tree.
enum pm_range_flags |
Flags for regular expression and match last line nodes.
enum pm_string_flags |
enum pm_symbol_flags |
enum pm_token_type |
This enum represents every type of token in the Ruby source.
|
static |
|
static |
|
static |