Crate ruby_prism_sys

Source
Expand description

§ruby-prism-sys

FFI-bindings for prism.

Structs§

__BindgenBitfieldUnit
pm_alias_global_variable_node
AliasGlobalVariableNode
pm_alias_method_node
AliasMethodNode
pm_alternation_pattern_node
AlternationPatternNode
pm_and_node
AndNode
pm_arguments_node
ArgumentsNode
pm_array_node
ArrayNode
pm_array_pattern_node
ArrayPatternNode
pm_assoc_node
AssocNode
pm_assoc_splat_node
AssocSplatNode
pm_back_reference_read_node
BackReferenceReadNode
pm_begin_node
BeginNode
pm_block_argument_node
BlockArgumentNode
pm_block_local_variable_node
BlockLocalVariableNode
pm_block_node
BlockNode
pm_block_parameter_node
BlockParameterNode
pm_block_parameters_node
BlockParametersNode
pm_break_node
BreakNode
pm_call_and_write_node
CallAndWriteNode
pm_call_node
CallNode
pm_call_operator_write_node
CallOperatorWriteNode
pm_call_or_write_node
CallOrWriteNode
pm_call_target_node
CallTargetNode
pm_capture_pattern_node
CapturePatternNode
pm_case_match_node
CaseMatchNode
pm_case_node
CaseNode
pm_class_node
ClassNode
pm_class_variable_and_write_node
ClassVariableAndWriteNode
pm_class_variable_operator_write_node
ClassVariableOperatorWriteNode
pm_class_variable_or_write_node
ClassVariableOrWriteNode
pm_class_variable_read_node
ClassVariableReadNode
pm_class_variable_target_node
ClassVariableTargetNode
pm_class_variable_write_node
ClassVariableWriteNode
pm_comment
This is a node in the linked list of comments that we’ve found while parsing.
pm_constant_and_write_node
ConstantAndWriteNode
pm_constant_id_list_t
A list of constant IDs. Usually used to represent a set of locals.
pm_constant_operator_write_node
ConstantOperatorWriteNode
pm_constant_or_write_node
ConstantOrWriteNode
pm_constant_path_and_write_node
ConstantPathAndWriteNode
pm_constant_path_node
ConstantPathNode
pm_constant_path_operator_write_node
ConstantPathOperatorWriteNode
pm_constant_path_or_write_node
ConstantPathOrWriteNode
pm_constant_path_target_node
ConstantPathTargetNode
pm_constant_path_write_node
ConstantPathWriteNode
pm_constant_pool_bucket_t
A bucket in the hash map.
pm_constant_pool_t
The overall constant pool, which stores constants found while parsing.
pm_constant_read_node
ConstantReadNode
pm_constant_t
A constant in the pool which effectively stores a string.
pm_constant_target_node
ConstantTargetNode
pm_constant_write_node
ConstantWriteNode
pm_context_node
This is a node in a linked list of contexts.
pm_def_node
DefNode
pm_defined_node
DefinedNode
pm_diagnostic_t
This struct represents a diagnostic generated during parsing.
pm_else_node
ElseNode
pm_embedded_statements_node
EmbeddedStatementsNode
pm_embedded_variable_node
EmbeddedVariableNode
pm_encoding_t
This struct defines the functions necessary to implement the encoding interface so we can determine how many bytes the subsequent character takes. Each callback should return the number of bytes, or 0 if the next bytes are invalid for the encoding and type.
pm_ensure_node
EnsureNode
pm_false_node
FalseNode
pm_find_pattern_node
FindPatternNode
pm_flip_flop_node
FlipFlopNode
pm_float_node
FloatNode
pm_for_node
ForNode
pm_forwarding_arguments_node
ForwardingArgumentsNode
pm_forwarding_parameter_node
ForwardingParameterNode
pm_forwarding_super_node
ForwardingSuperNode
pm_global_variable_and_write_node
GlobalVariableAndWriteNode
pm_global_variable_operator_write_node
GlobalVariableOperatorWriteNode
pm_global_variable_or_write_node
GlobalVariableOrWriteNode
pm_global_variable_read_node
GlobalVariableReadNode
pm_global_variable_target_node
GlobalVariableTargetNode
pm_global_variable_write_node
GlobalVariableWriteNode
pm_hash_node
HashNode
pm_hash_pattern_node
HashPatternNode
pm_heredoc_lex_mode_t
All of the information necessary to store to lexing a heredoc.
pm_if_node
IfNode
pm_imaginary_node
ImaginaryNode
pm_implicit_node
ImplicitNode
pm_implicit_rest_node
ImplicitRestNode
pm_in_node
InNode
pm_index_and_write_node
IndexAndWriteNode
pm_index_operator_write_node
IndexOperatorWriteNode
pm_index_or_write_node
IndexOrWriteNode
pm_index_target_node
IndexTargetNode
pm_instance_variable_and_write_node
InstanceVariableAndWriteNode
pm_instance_variable_operator_write_node
InstanceVariableOperatorWriteNode
pm_instance_variable_or_write_node
InstanceVariableOrWriteNode
pm_instance_variable_read_node
InstanceVariableReadNode
pm_instance_variable_target_node
InstanceVariableTargetNode
pm_instance_variable_write_node
InstanceVariableWriteNode
pm_integer_node
IntegerNode
pm_integer_t
A structure represents an arbitrary-sized integer.
pm_interpolated_match_last_line_node
InterpolatedMatchLastLineNode
pm_interpolated_regular_expression_node
InterpolatedRegularExpressionNode
pm_interpolated_string_node
InterpolatedStringNode
pm_interpolated_symbol_node
InterpolatedSymbolNode
pm_interpolated_x_string_node
InterpolatedXStringNode
pm_it_local_variable_read_node
ItLocalVariableReadNode
pm_it_parameters_node
ItParametersNode
pm_keyword_hash_node
KeywordHashNode
pm_keyword_rest_parameter_node
KeywordRestParameterNode
pm_lambda_node
LambdaNode
pm_lex_callback_t
When you are lexing through a file, the lexer needs all of the information that the parser additionally provides (for example, the local table). So if you want to properly lex Ruby, you need to actually lex it in the context of the parser. In order to provide this functionality, we optionally allow a struct to be attached to the parser that calls back out to a user-provided callback when each token is lexed.
pm_lex_mode
When lexing Ruby source, the lexer has a small amount of state to tell which kind of token it is currently lexing. For example, when we find the start of a string, the first token that we return is a TOKEN_STRING_BEGIN token. After that the lexer is now in the PM_LEX_STRING mode, and will return tokens that are found as part of a string.
pm_lex_mode__bindgen_ty_2__bindgen_ty_1
pm_lex_mode__bindgen_ty_2__bindgen_ty_2
pm_lex_mode__bindgen_ty_2__bindgen_ty_3
pm_lex_mode__bindgen_ty_2__bindgen_ty_4
pm_list_node
This struct represents an abstract linked list that provides common functionality. It is meant to be used any time a linked list is necessary to store data.
pm_list_t
This represents the overall linked list. It keeps a pointer to the head and tail so that iteration is easy and pushing new nodes is easy.
pm_local_t
This tracks an individual local variable in a certain lexical context, as well as the number of times is it read.
pm_local_variable_and_write_node
LocalVariableAndWriteNode
pm_local_variable_operator_write_node
LocalVariableOperatorWriteNode
pm_local_variable_or_write_node
LocalVariableOrWriteNode
pm_local_variable_read_node
LocalVariableReadNode
pm_local_variable_target_node
LocalVariableTargetNode
pm_local_variable_write_node
LocalVariableWriteNode
pm_locals
This is a set of local variables in a certain lexical context (method, class, module, etc.). We need to track how many times these variables are read in order to warn if they only get written.
pm_location_t
This represents a range of bytes in the source string to which a node or token corresponds.
pm_magic_comment_t
This is a node in the linked list of magic comments that we’ve found while parsing.
pm_match_last_line_node
MatchLastLineNode
pm_match_predicate_node
MatchPredicateNode
pm_match_required_node
MatchRequiredNode
pm_match_write_node
MatchWriteNode
pm_missing_node
MissingNode
pm_module_node
ModuleNode
pm_multi_target_node
MultiTargetNode
pm_multi_write_node
MultiWriteNode
pm_newline_list_t
A list of offsets of newlines in a string. The offsets are assumed to be sorted/inserted in ascending order.
pm_next_node
NextNode
pm_nil_node
NilNode
pm_no_keywords_parameter_node
NoKeywordsParameterNode
pm_node
This is the base structure that represents a node in the syntax tree. It is embedded into every node type.
pm_node_hash_t
An internal hash table for a set of nodes.
pm_node_list
A list of nodes in the source, most often used for lists of children.
pm_numbered_parameters_node
NumberedParametersNode
pm_numbered_reference_read_node
NumberedReferenceReadNode
pm_optional_keyword_parameter_node
OptionalKeywordParameterNode
pm_optional_parameter_node
OptionalParameterNode
pm_options
Forward declaration needed by the callback typedef.
pm_options_scope
A scope of locals surrounding the code that is being parsed.
pm_or_node
OrNode
pm_parameters_node
ParametersNode
pm_parentheses_node
ParenthesesNode
pm_parser
This struct represents the overall parser. It contains a reference to the source file, as well as pointers that indicate where in the source it’s currently parsing. It also contains the most recent and current token that it’s considering.
pm_parser__bindgen_ty_1
A stack of lex modes.
pm_pinned_expression_node
PinnedExpressionNode
pm_pinned_variable_node
PinnedVariableNode
pm_post_execution_node
PostExecutionNode
pm_pre_execution_node
PreExecutionNode
pm_program_node
ProgramNode
pm_range_node
RangeNode
pm_rational_node
RationalNode
pm_redo_node
RedoNode
pm_regular_expression_node
RegularExpressionNode
pm_required_keyword_parameter_node
RequiredKeywordParameterNode
pm_required_parameter_node
RequiredParameterNode
pm_rescue_modifier_node
RescueModifierNode
pm_rescue_node
RescueNode
pm_rest_parameter_node
RestParameterNode
pm_retry_node
RetryNode
pm_return_node
ReturnNode
pm_scope
This struct represents a node in a linked list of scopes. Some scopes can see into their parent scopes, while others cannot.
pm_self_node
SelfNode
pm_shareable_constant_node
ShareableConstantNode
pm_singleton_class_node
SingletonClassNode
pm_source_encoding_node
SourceEncodingNode
pm_source_file_node
SourceFileNode
pm_source_line_node
SourceLineNode
pm_splat_node
SplatNode
pm_statements_node
StatementsNode
pm_static_literals_t
Certain sets of nodes (hash keys and when clauses) check for duplicate nodes to alert the user of potential issues. To do this, we keep a set of the nodes that have been seen so far, and compare whenever we find a new node.
pm_string_node
StringNode
pm_string_t
A generic string type that can have various ownership semantics.
pm_super_node
SuperNode
pm_symbol_node
SymbolNode
pm_token_t
This struct represents a token in the Ruby source. We use it to track both type and location information.
pm_true_node
TrueNode
pm_undef_node
UndefNode
pm_unless_node
UnlessNode
pm_until_node
UntilNode
pm_when_node
WhenNode
pm_while_node
WhileNode
pm_x_string_node
XStringNode
pm_yield_node
YieldNode

Enums§

pm_arguments_node_flags
Flags for arguments nodes.
pm_array_node_flags
Flags for array nodes.
pm_call_node_flags
Flags for call nodes.
pm_comment_type_t
This is the type of a comment that we’ve found while parsing.
pm_encoding_flags
Flags for nodes that have unescaped content.
pm_integer_base_flags
Flags for integer nodes that correspond to the base of the integer.
pm_interpolated_string_node_flags
Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
pm_keyword_hash_node_flags
Flags for keyword hash nodes.
pm_loop_flags
Flags for while and until loop nodes.
pm_node_type
This enum represents every type of node in the Ruby syntax tree.
pm_pack_encoding
The type of encoding for a pack template string.
pm_pack_endian
The endianness of a pack directive.
pm_pack_length_type
The type of length of a pack directive.
pm_pack_result
The result of parsing a pack template.
pm_pack_signed
The signness of a pack directive.
pm_pack_size
The size of an integer pack directive.
pm_pack_type
A directive within the pack template.
pm_pack_variant
The type of pack template we are parsing.
pm_parameter_flags
Flags for parameter nodes.
pm_parentheses_node_flags
Flags for parentheses nodes.
pm_range_flags
Flags for range and flip-flop nodes.
pm_regular_expression_flags
Flags for regular expression and match last line nodes.
pm_shareable_constant_node_flags
Flags for shareable constant nodes.
pm_string_flags
Flags for string nodes.
pm_symbol_flags
Flags for symbol nodes.

Constants§

PM_CONTEXT_BEGIN
a begin statement
PM_CONTEXT_BEGIN_ELSE
a rescue else statement with an explicit begin
PM_CONTEXT_BEGIN_ENSURE
an ensure statement with an explicit begin
PM_CONTEXT_BEGIN_RESCUE
a rescue statement with an explicit begin
PM_CONTEXT_BLOCK_BRACES
expressions in block arguments using braces
PM_CONTEXT_BLOCK_ELSE
a rescue else statement within a do..end block
PM_CONTEXT_BLOCK_ENSURE
an ensure statement within a do..end block
PM_CONTEXT_BLOCK_KEYWORDS
expressions in block arguments using do..end
PM_CONTEXT_BLOCK_RESCUE
a rescue statement within a do..end block
PM_CONTEXT_CASE_IN
a case in statements
PM_CONTEXT_CASE_WHEN
a case when statements
PM_CONTEXT_CLASS
a class declaration
PM_CONTEXT_CLASS_ELSE
a rescue else statement within a class statement
PM_CONTEXT_CLASS_ENSURE
an ensure statement within a class statement
PM_CONTEXT_CLASS_RESCUE
a rescue statement within a class statement
PM_CONTEXT_DEF
a method definition
PM_CONTEXT_DEFAULT_PARAMS
a method definition’s default parameter
PM_CONTEXT_DEFINED
a defined? expression
PM_CONTEXT_DEF_ELSE
a rescue else statement within a method definition
PM_CONTEXT_DEF_ENSURE
an ensure statement within a method definition
PM_CONTEXT_DEF_PARAMS
a method definition’s parameters
PM_CONTEXT_DEF_RESCUE
a rescue statement within a method definition
PM_CONTEXT_ELSE
an else clause
PM_CONTEXT_ELSIF
an elsif clause
PM_CONTEXT_EMBEXPR
an interpolated expression
PM_CONTEXT_FOR
a for loop
PM_CONTEXT_FOR_INDEX
a for loop’s index
PM_CONTEXT_IF
an if statement
PM_CONTEXT_LAMBDA_BRACES
a lambda expression with braces
PM_CONTEXT_LAMBDA_DO_END
a lambda expression with do..end
PM_CONTEXT_LAMBDA_ELSE
a rescue else statement within a lambda expression
PM_CONTEXT_LAMBDA_ENSURE
an ensure statement within a lambda expression
PM_CONTEXT_LAMBDA_RESCUE
a rescue statement within a lambda expression
PM_CONTEXT_LOOP_PREDICATE
the predicate clause of a loop statement
PM_CONTEXT_MAIN
the top level context
PM_CONTEXT_MODULE
a module declaration
PM_CONTEXT_MODULE_ELSE
a rescue else statement within a module statement
PM_CONTEXT_MODULE_ENSURE
an ensure statement within a module statement
PM_CONTEXT_MODULE_RESCUE
a rescue statement within a module statement
PM_CONTEXT_MULTI_TARGET
a multiple target expression
PM_CONTEXT_NONE
a null context, used for returning a value from a function
PM_CONTEXT_PARENS
a parenthesized expression
PM_CONTEXT_POSTEXE
an END block
PM_CONTEXT_PREDICATE
a predicate inside an if/elsif/unless statement
PM_CONTEXT_PREEXE
a BEGIN block
PM_CONTEXT_RESCUE_MODIFIER
a modifier rescue clause
PM_CONTEXT_SCLASS
a singleton class definition
PM_CONTEXT_SCLASS_ELSE
a rescue else statement with a singleton class
PM_CONTEXT_SCLASS_ENSURE
an ensure statement with a singleton class
PM_CONTEXT_SCLASS_RESCUE
a rescue statement with a singleton class
PM_CONTEXT_TERNARY
a ternary expression
PM_CONTEXT_UNLESS
an unless statement
PM_CONTEXT_UNTIL
an until statement
PM_CONTEXT_WHILE
a while statement
PM_ERR_ALIAS_ARGUMENT
These are the error diagnostics.
PM_ERR_ALIAS_ARGUMENT_NUMBERED_REFERENCE
These are the error diagnostics.
PM_ERR_AMPAMPEQ_MULTI_ASSIGN
These are the error diagnostics.
PM_ERR_ARGUMENT_AFTER_BLOCK
These are the error diagnostics.
PM_ERR_ARGUMENT_AFTER_FORWARDING_ELLIPSES
These are the error diagnostics.
PM_ERR_ARGUMENT_BARE_HASH
These are the error diagnostics.
PM_ERR_ARGUMENT_BLOCK_FORWARDING
These are the error diagnostics.
PM_ERR_ARGUMENT_BLOCK_MULTI
These are the error diagnostics.
PM_ERR_ARGUMENT_CONFLICT_AMPERSAND
These are the error diagnostics.
PM_ERR_ARGUMENT_CONFLICT_STAR
These are the error diagnostics.
PM_ERR_ARGUMENT_CONFLICT_STAR_STAR
These are the error diagnostics.
PM_ERR_ARGUMENT_FORMAL_CLASS
These are the error diagnostics.
PM_ERR_ARGUMENT_FORMAL_CONSTANT
These are the error diagnostics.
PM_ERR_ARGUMENT_FORMAL_GLOBAL
These are the error diagnostics.
PM_ERR_ARGUMENT_FORMAL_IVAR
These are the error diagnostics.
PM_ERR_ARGUMENT_FORWARDING_UNBOUND
These are the error diagnostics.
PM_ERR_ARGUMENT_NO_FORWARDING_AMPERSAND
These are the error diagnostics.
PM_ERR_ARGUMENT_NO_FORWARDING_ELLIPSES
These are the error diagnostics.
PM_ERR_ARGUMENT_NO_FORWARDING_STAR
These are the error diagnostics.
PM_ERR_ARGUMENT_NO_FORWARDING_STAR_STAR
These are the error diagnostics.
PM_ERR_ARGUMENT_SPLAT_AFTER_ASSOC_SPLAT
These are the error diagnostics.
PM_ERR_ARGUMENT_SPLAT_AFTER_SPLAT
These are the error diagnostics.
PM_ERR_ARGUMENT_TERM_PAREN
These are the error diagnostics.
PM_ERR_ARGUMENT_UNEXPECTED_BLOCK
These are the error diagnostics.
PM_ERR_ARRAY_ELEMENT
These are the error diagnostics.
PM_ERR_ARRAY_EXPRESSION
These are the error diagnostics.
PM_ERR_ARRAY_EXPRESSION_AFTER_STAR
These are the error diagnostics.
PM_ERR_ARRAY_SEPARATOR
These are the error diagnostics.
PM_ERR_ARRAY_TERM
These are the error diagnostics.
PM_ERR_BEGIN_LONELY_ELSE
These are the error diagnostics.
PM_ERR_BEGIN_TERM
These are the error diagnostics.
PM_ERR_BEGIN_UPCASE_BRACE
These are the error diagnostics.
PM_ERR_BEGIN_UPCASE_TERM
These are the error diagnostics.
PM_ERR_BEGIN_UPCASE_TOPLEVEL
These are the error diagnostics.
PM_ERR_BLOCK_PARAM_LOCAL_VARIABLE
These are the error diagnostics.
PM_ERR_BLOCK_PARAM_PIPE_TERM
These are the error diagnostics.
PM_ERR_BLOCK_TERM_BRACE
These are the error diagnostics.
PM_ERR_BLOCK_TERM_END
These are the error diagnostics.
PM_ERR_CANNOT_PARSE_EXPRESSION
These are the error diagnostics.
PM_ERR_CANNOT_PARSE_STRING_PART
These are the error diagnostics.
PM_ERR_CASE_EXPRESSION_AFTER_CASE
These are the error diagnostics.
PM_ERR_CASE_EXPRESSION_AFTER_WHEN
These are the error diagnostics.
PM_ERR_CASE_MATCH_MISSING_PREDICATE
These are the error diagnostics.
PM_ERR_CASE_MISSING_CONDITIONS
These are the error diagnostics.
PM_ERR_CASE_TERM
These are the error diagnostics.
PM_ERR_CLASS_IN_METHOD
These are the error diagnostics.
PM_ERR_CLASS_NAME
These are the error diagnostics.
PM_ERR_CLASS_SUPERCLASS
These are the error diagnostics.
PM_ERR_CLASS_TERM
These are the error diagnostics.
PM_ERR_CLASS_UNEXPECTED_END
These are the error diagnostics.
PM_ERR_CLASS_VARIABLE_BARE
These are the error diagnostics.
PM_ERR_CONDITIONAL_ELSIF_PREDICATE
These are the error diagnostics.
PM_ERR_CONDITIONAL_IF_PREDICATE
These are the error diagnostics.
PM_ERR_CONDITIONAL_PREDICATE_TERM
These are the error diagnostics.
PM_ERR_CONDITIONAL_TERM
These are the error diagnostics.
PM_ERR_CONDITIONAL_TERM_ELSE
These are the error diagnostics.
PM_ERR_CONDITIONAL_UNLESS_PREDICATE
These are the error diagnostics.
PM_ERR_CONDITIONAL_UNTIL_PREDICATE
These are the error diagnostics.
PM_ERR_CONDITIONAL_WHILE_PREDICATE
These are the error diagnostics.
PM_ERR_CONSTANT_PATH_COLON_COLON_CONSTANT
These are the error diagnostics.
PM_ERR_DEFINED_EXPRESSION
These are the error diagnostics.
PM_ERR_DEF_ENDLESS
These are the error diagnostics.
PM_ERR_DEF_ENDLESS_SETTER
These are the error diagnostics.
PM_ERR_DEF_NAME
These are the error diagnostics.
PM_ERR_DEF_PARAMS_TERM
These are the error diagnostics.
PM_ERR_DEF_PARAMS_TERM_PAREN
These are the error diagnostics.
PM_ERR_DEF_RECEIVER
These are the error diagnostics.
PM_ERR_DEF_RECEIVER_TERM
These are the error diagnostics.
PM_ERR_DEF_TERM
These are the error diagnostics.
PM_ERR_EMBDOC_TERM
These are the error diagnostics.
PM_ERR_EMBEXPR_END
These are the error diagnostics.
PM_ERR_EMBVAR_INVALID
These are the error diagnostics.
PM_ERR_END_UPCASE_BRACE
These are the error diagnostics.
PM_ERR_END_UPCASE_TERM
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_CONTROL
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_CONTROL_REPEAT
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_HEXADECIMAL
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_META
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_META_REPEAT
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_UNICODE
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_UNICODE_CM_FLAGS
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_UNICODE_LIST
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_UNICODE_LITERAL
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_UNICODE_LONG
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_UNICODE_SHORT
These are the error diagnostics.
PM_ERR_ESCAPE_INVALID_UNICODE_TERM
These are the error diagnostics.
PM_ERR_EXPECT_ARGUMENT
These are the error diagnostics.
PM_ERR_EXPECT_EOL_AFTER_STATEMENT
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_AMPAMPEQ
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_COMMA
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_EQUAL
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_LESS_LESS
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_LPAREN
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_OPERATOR
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_PIPEPIPEEQ
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_QUESTION
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_SPLAT
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_SPLAT_HASH
These are the error diagnostics.
PM_ERR_EXPECT_EXPRESSION_AFTER_STAR
These are the error diagnostics.
PM_ERR_EXPECT_FOR_DELIMITER
These are the error diagnostics.
PM_ERR_EXPECT_IDENT_REQ_PARAMETER
These are the error diagnostics.
PM_ERR_EXPECT_IN_DELIMITER
These are the error diagnostics.
PM_ERR_EXPECT_LPAREN_REQ_PARAMETER
These are the error diagnostics.
PM_ERR_EXPECT_MESSAGE
These are the error diagnostics.
PM_ERR_EXPECT_RBRACKET
These are the error diagnostics.
PM_ERR_EXPECT_RPAREN
These are the error diagnostics.
PM_ERR_EXPECT_RPAREN_AFTER_MULTI
These are the error diagnostics.
PM_ERR_EXPECT_RPAREN_REQ_PARAMETER
These are the error diagnostics.
PM_ERR_EXPECT_SINGLETON_CLASS_DELIMITER
These are the error diagnostics.
PM_ERR_EXPECT_STRING_CONTENT
These are the error diagnostics.
PM_ERR_EXPECT_WHEN_DELIMITER
These are the error diagnostics.
PM_ERR_EXPRESSION_BARE_HASH
These are the error diagnostics.
PM_ERR_EXPRESSION_NOT_WRITABLE
These are the error diagnostics.
PM_ERR_EXPRESSION_NOT_WRITABLE_ENCODING
These are the error diagnostics.
PM_ERR_EXPRESSION_NOT_WRITABLE_FALSE
These are the error diagnostics.
PM_ERR_EXPRESSION_NOT_WRITABLE_FILE
These are the error diagnostics.
PM_ERR_EXPRESSION_NOT_WRITABLE_LINE
These are the error diagnostics.
PM_ERR_EXPRESSION_NOT_WRITABLE_NIL
These are the error diagnostics.
PM_ERR_EXPRESSION_NOT_WRITABLE_NUMBERED
These are the error diagnostics.
PM_ERR_EXPRESSION_NOT_WRITABLE_SELF
These are the error diagnostics.
PM_ERR_EXPRESSION_NOT_WRITABLE_TRUE
These are the error diagnostics.
PM_ERR_FLOAT_PARSE
These are the error diagnostics.
PM_ERR_FOR_COLLECTION
These are the error diagnostics.
PM_ERR_FOR_IN
These are the error diagnostics.
PM_ERR_FOR_INDEX
These are the error diagnostics.
PM_ERR_FOR_TERM
These are the error diagnostics.
PM_ERR_GLOBAL_VARIABLE_BARE
These are the error diagnostics.
PM_ERR_HASH_EXPRESSION_AFTER_LABEL
These are the error diagnostics.
PM_ERR_HASH_KEY
These are the error diagnostics.
PM_ERR_HASH_ROCKET
These are the error diagnostics.
PM_ERR_HASH_TERM
These are the error diagnostics.
PM_ERR_HASH_VALUE
These are the error diagnostics.
PM_ERR_HEREDOC_IDENTIFIER
These are the error diagnostics.
PM_ERR_HEREDOC_TERM
These are the error diagnostics.
PM_ERR_INCOMPLETE_QUESTION_MARK
These are the error diagnostics.
PM_ERR_INCOMPLETE_VARIABLE_CLASS
These are the error diagnostics.
PM_ERR_INCOMPLETE_VARIABLE_CLASS_3_3
These are the error diagnostics.
PM_ERR_INCOMPLETE_VARIABLE_INSTANCE
These are the error diagnostics.
PM_ERR_INCOMPLETE_VARIABLE_INSTANCE_3_3
These are the error diagnostics.
PM_ERR_INSTANCE_VARIABLE_BARE
These are the error diagnostics.
PM_ERR_INVALID_BLOCK_EXIT
These are the error diagnostics.
PM_ERR_INVALID_CHARACTER
These are the error diagnostics.
PM_ERR_INVALID_COMMA
These are the error diagnostics.
PM_ERR_INVALID_ENCODING_MAGIC_COMMENT
These are the error diagnostics.
PM_ERR_INVALID_ESCAPE_CHARACTER
These are the error diagnostics.
PM_ERR_INVALID_FLOAT_EXPONENT
These are the error diagnostics.
PM_ERR_INVALID_LOCAL_VARIABLE_READ
These are the error diagnostics.
PM_ERR_INVALID_LOCAL_VARIABLE_WRITE
These are the error diagnostics.
PM_ERR_INVALID_MULTIBYTE_CHAR
These are the error diagnostics.
PM_ERR_INVALID_MULTIBYTE_CHARACTER
These are the error diagnostics.
PM_ERR_INVALID_MULTIBYTE_ESCAPE
These are the error diagnostics.
PM_ERR_INVALID_NUMBER_BINARY
These are the error diagnostics.
PM_ERR_INVALID_NUMBER_DECIMAL
These are the error diagnostics.
PM_ERR_INVALID_NUMBER_FRACTION
These are the error diagnostics.
PM_ERR_INVALID_NUMBER_HEXADECIMAL
These are the error diagnostics.
PM_ERR_INVALID_NUMBER_OCTAL
These are the error diagnostics.
PM_ERR_INVALID_NUMBER_UNDERSCORE_INNER
These are the error diagnostics.
PM_ERR_INVALID_NUMBER_UNDERSCORE_TRAILING
These are the error diagnostics.
PM_ERR_INVALID_PERCENT
These are the error diagnostics.
PM_ERR_INVALID_PERCENT_EOF
These are the error diagnostics.
PM_ERR_INVALID_PRINTABLE_CHARACTER
These are the error diagnostics.
PM_ERR_INVALID_RETRY_AFTER_ELSE
These are the error diagnostics.
PM_ERR_INVALID_RETRY_AFTER_ENSURE
These are the error diagnostics.
PM_ERR_INVALID_RETRY_WITHOUT_RESCUE
These are the error diagnostics.
PM_ERR_INVALID_SYMBOL
These are the error diagnostics.
PM_ERR_INVALID_VARIABLE_GLOBAL
These are the error diagnostics.
PM_ERR_INVALID_VARIABLE_GLOBAL_3_3
These are the error diagnostics.
PM_ERR_INVALID_YIELD
These are the error diagnostics.
PM_ERR_IT_NOT_ALLOWED_NUMBERED
These are the error diagnostics.
PM_ERR_IT_NOT_ALLOWED_ORDINARY
These are the error diagnostics.
PM_ERR_LAMBDA_OPEN
These are the error diagnostics.
PM_ERR_LAMBDA_TERM_BRACE
These are the error diagnostics.
PM_ERR_LAMBDA_TERM_END
These are the error diagnostics.
PM_ERR_LIST_I_LOWER_ELEMENT
These are the error diagnostics.
PM_ERR_LIST_I_LOWER_TERM
These are the error diagnostics.
PM_ERR_LIST_I_UPPER_ELEMENT
These are the error diagnostics.
PM_ERR_LIST_I_UPPER_TERM
These are the error diagnostics.
PM_ERR_LIST_W_LOWER_ELEMENT
These are the error diagnostics.
PM_ERR_LIST_W_LOWER_TERM
These are the error diagnostics.
PM_ERR_LIST_W_UPPER_ELEMENT
These are the error diagnostics.
PM_ERR_LIST_W_UPPER_TERM
These are the error diagnostics.
PM_ERR_MALLOC_FAILED
These are the error diagnostics.
PM_ERR_MIXED_ENCODING
These are the error diagnostics.
PM_ERR_MODULE_IN_METHOD
These are the error diagnostics.
PM_ERR_MODULE_NAME
These are the error diagnostics.
PM_ERR_MODULE_TERM
These are the error diagnostics.
PM_ERR_MULTI_ASSIGN_MULTI_SPLATS
These are the error diagnostics.
PM_ERR_MULTI_ASSIGN_UNEXPECTED_REST
These are the error diagnostics.
PM_ERR_NESTING_TOO_DEEP
These are the error diagnostics.
PM_ERR_NON_ASSOCIATIVE_OPERATOR
These are the error diagnostics.
PM_ERR_NOT_EXPRESSION
These are the error diagnostics.
PM_ERR_NO_LOCAL_VARIABLE
These are the error diagnostics.
PM_ERR_NUMBERED_PARAMETER_INNER_BLOCK
These are the error diagnostics.
PM_ERR_NUMBERED_PARAMETER_IT
These are the error diagnostics.
PM_ERR_NUMBERED_PARAMETER_ORDINARY
These are the error diagnostics.
PM_ERR_NUMBERED_PARAMETER_OUTER_BLOCK
These are the error diagnostics.
PM_ERR_NUMBER_LITERAL_UNDERSCORE
These are the error diagnostics.
PM_ERR_OPERATOR_MULTI_ASSIGN
These are the error diagnostics.
PM_ERR_OPERATOR_WRITE_ARGUMENTS
These are the error diagnostics.
PM_ERR_OPERATOR_WRITE_BLOCK
These are the error diagnostics.
PM_ERR_PARAMETER_ASSOC_SPLAT_MULTI
These are the error diagnostics.
PM_ERR_PARAMETER_BLOCK_MULTI
These are the error diagnostics.
PM_ERR_PARAMETER_CIRCULAR
These are the error diagnostics.
PM_ERR_PARAMETER_FORWARDING_AFTER_REST
These are the error diagnostics.
PM_ERR_PARAMETER_METHOD_NAME
These are the error diagnostics.
PM_ERR_PARAMETER_NAME_DUPLICATED
These are the error diagnostics.
PM_ERR_PARAMETER_NO_DEFAULT
These are the error diagnostics.
PM_ERR_PARAMETER_NO_DEFAULT_KW
These are the error diagnostics.
PM_ERR_PARAMETER_NUMBERED_RESERVED
These are the error diagnostics.
PM_ERR_PARAMETER_ORDER
These are the error diagnostics.
PM_ERR_PARAMETER_SPLAT_MULTI
These are the error diagnostics.
PM_ERR_PARAMETER_STAR
These are the error diagnostics.
PM_ERR_PARAMETER_UNEXPECTED_FWD
These are the error diagnostics.
PM_ERR_PARAMETER_UNEXPECTED_NO_KW
These are the error diagnostics.
PM_ERR_PARAMETER_WILD_LOOSE_COMMA
These are the error diagnostics.
PM_ERR_PATTERN_ARRAY_MULTIPLE_RESTS
These are the error diagnostics.
PM_ERR_PATTERN_CAPTURE_DUPLICATE
These are the error diagnostics.
PM_ERR_PATTERN_EXPRESSION_AFTER_BRACKET
These are the error diagnostics.
PM_ERR_PATTERN_EXPRESSION_AFTER_COMMA
These are the error diagnostics.
PM_ERR_PATTERN_EXPRESSION_AFTER_HROCKET
These are the error diagnostics.
PM_ERR_PATTERN_EXPRESSION_AFTER_IN
These are the error diagnostics.
PM_ERR_PATTERN_EXPRESSION_AFTER_KEY
These are the error diagnostics.
PM_ERR_PATTERN_EXPRESSION_AFTER_PAREN
These are the error diagnostics.
PM_ERR_PATTERN_EXPRESSION_AFTER_PIN
These are the error diagnostics.
PM_ERR_PATTERN_EXPRESSION_AFTER_PIPE
These are the error diagnostics.
PM_ERR_PATTERN_EXPRESSION_AFTER_RANGE
These are the error diagnostics.
PM_ERR_PATTERN_EXPRESSION_AFTER_REST
These are the error diagnostics.
PM_ERR_PATTERN_FIND_MISSING_INNER
These are the error diagnostics.
PM_ERR_PATTERN_HASH_IMPLICIT
These are the error diagnostics.
PM_ERR_PATTERN_HASH_KEY
These are the error diagnostics.
PM_ERR_PATTERN_HASH_KEY_DUPLICATE
These are the error diagnostics.
PM_ERR_PATTERN_HASH_KEY_INTERPOLATED
These are the error diagnostics.
PM_ERR_PATTERN_HASH_KEY_LABEL
These are the error diagnostics.
PM_ERR_PATTERN_HASH_KEY_LOCALS
These are the error diagnostics.
PM_ERR_PATTERN_IDENT_AFTER_HROCKET
These are the error diagnostics.
PM_ERR_PATTERN_LABEL_AFTER_COMMA
These are the error diagnostics.
PM_ERR_PATTERN_REST
These are the error diagnostics.
PM_ERR_PATTERN_TERM_BRACE
These are the error diagnostics.
PM_ERR_PATTERN_TERM_BRACKET
These are the error diagnostics.
PM_ERR_PATTERN_TERM_PAREN
These are the error diagnostics.
PM_ERR_PIPEPIPEEQ_MULTI_ASSIGN
These are the error diagnostics.
PM_ERR_REGEXP_ENCODING_OPTION_MISMATCH
These are the error diagnostics.
PM_ERR_REGEXP_INCOMPAT_CHAR_ENCODING
These are the error diagnostics.
PM_ERR_REGEXP_INVALID_UNICODE_RANGE
These are the error diagnostics.
PM_ERR_REGEXP_NON_ESCAPED_MBC
These are the error diagnostics.
PM_ERR_REGEXP_PARSE_ERROR
These are the error diagnostics.
PM_ERR_REGEXP_TERM
These are the error diagnostics.
PM_ERR_REGEXP_UNKNOWN_OPTIONS
These are the error diagnostics.
PM_ERR_REGEXP_UTF8_CHAR_NON_UTF8_REGEXP
These are the error diagnostics.
PM_ERR_RESCUE_EXPRESSION
These are the error diagnostics.
PM_ERR_RESCUE_MODIFIER_VALUE
These are the error diagnostics.
PM_ERR_RESCUE_TERM
These are the error diagnostics.
PM_ERR_RESCUE_VARIABLE
These are the error diagnostics.
PM_ERR_RETURN_INVALID
These are the error diagnostics.
PM_ERR_SCRIPT_NOT_FOUND
These are the error diagnostics.
PM_ERR_SINGLETON_FOR_LITERALS
These are the error diagnostics.
PM_ERR_STATEMENT_ALIAS
These are the error diagnostics.
PM_ERR_STATEMENT_POSTEXE_END
These are the error diagnostics.
PM_ERR_STATEMENT_PREEXE_BEGIN
These are the error diagnostics.
PM_ERR_STATEMENT_UNDEF
These are the error diagnostics.
PM_ERR_STRING_CONCATENATION
These are the error diagnostics.
PM_ERR_STRING_INTERPOLATED_TERM
These are the error diagnostics.
PM_ERR_STRING_LITERAL_EOF
These are the error diagnostics.
PM_ERR_STRING_LITERAL_TERM
These are the error diagnostics.
PM_ERR_SYMBOL_INVALID
These are the error diagnostics.
PM_ERR_SYMBOL_TERM_DYNAMIC
These are the error diagnostics.
PM_ERR_SYMBOL_TERM_INTERPOLATED
These are the error diagnostics.
PM_ERR_TERNARY_COLON
These are the error diagnostics.
PM_ERR_TERNARY_EXPRESSION_FALSE
These are the error diagnostics.
PM_ERR_TERNARY_EXPRESSION_TRUE
These are the error diagnostics.
PM_ERR_UNARY_DISALLOWED
These are the error diagnostics.
PM_ERR_UNARY_RECEIVER
These are the error diagnostics.
PM_ERR_UNDEF_ARGUMENT
These are the error diagnostics.
PM_ERR_UNEXPECTED_BLOCK_ARGUMENT
These are the error diagnostics.
PM_ERR_UNEXPECTED_INDEX_BLOCK
These are the error diagnostics.
PM_ERR_UNEXPECTED_INDEX_KEYWORDS
These are the error diagnostics.
PM_ERR_UNEXPECTED_LABEL
These are the error diagnostics.
PM_ERR_UNEXPECTED_MULTI_WRITE
These are the error diagnostics.
PM_ERR_UNEXPECTED_RANGE_OPERATOR
These are the error diagnostics.
PM_ERR_UNEXPECTED_SAFE_NAVIGATION
These are the error diagnostics.
PM_ERR_UNEXPECTED_TOKEN_CLOSE_CONTEXT
These are the error diagnostics.
PM_ERR_UNEXPECTED_TOKEN_IGNORE
These are the error diagnostics.
PM_ERR_UNTIL_TERM
These are the error diagnostics.
PM_ERR_VOID_EXPRESSION
These are the error diagnostics.
PM_ERR_WHILE_TERM
These are the error diagnostics.
PM_ERR_WRITE_TARGET_IN_METHOD
These are the error diagnostics.
PM_ERR_WRITE_TARGET_READONLY
These are the error diagnostics.
PM_ERR_WRITE_TARGET_UNEXPECTED
These are the error diagnostics.
PM_ERR_XSTRING_TERM
These are the error diagnostics.
PM_HEREDOC_INDENT_DASH
PM_HEREDOC_INDENT_NONE
PM_HEREDOC_INDENT_TILDE
PM_HEREDOC_QUOTE_BACKTICK
PM_HEREDOC_QUOTE_DOUBLE
PM_HEREDOC_QUOTE_NONE
PM_HEREDOC_QUOTE_SINGLE
PM_LEX_DEFAULT
This state is used when any given token is being lexed.
PM_LEX_EMBEXPR
This state is used when we’re lexing as normal but inside an embedded expression of a string.
PM_LEX_EMBVAR
This state is used when we’re lexing a variable that is embedded directly inside of a string with the # shorthand.
PM_LEX_HEREDOC
This state is used when you are inside the content of a heredoc.
PM_LEX_LIST
This state is used when we are lexing a list of tokens, as in a %w word list literal or a %i symbol list literal.
PM_LEX_REGEXP
This state is used when a regular expression has been begun and we are looking for the terminator.
PM_LEX_STATE_ARG
PM_LEX_STATE_ARG_ANY
PM_LEX_STATE_BEG
PM_LEX_STATE_BEG_ANY
PM_LEX_STATE_CLASS
PM_LEX_STATE_CMDARG
PM_LEX_STATE_DOT
PM_LEX_STATE_END
PM_LEX_STATE_ENDARG
PM_LEX_STATE_ENDFN
PM_LEX_STATE_END_ANY
PM_LEX_STATE_FITEM
PM_LEX_STATE_FNAME
PM_LEX_STATE_LABEL
PM_LEX_STATE_LABELED
PM_LEX_STATE_MID
PM_LEX_STATE_NONE
PM_LEX_STRING
This state is used when we are lexing a string or a string-like token, as in string content with either quote or an xstring.
PM_OPTIONS_VERSION_CRUBY_3_3
The vendored version of prism in CRuby 3.3.x.
PM_OPTIONS_VERSION_CRUBY_3_4
The vendored version of prism in CRuby 3.4.x.
PM_OPTIONS_VERSION_LATEST
The current version of prism.
PM_STRING_CONSTANT
This string is a constant string, and should not be freed.
PM_STRING_MAPPED
This string is a memory-mapped file, and should be freed using pm_string_free.
PM_STRING_OWNED
This string owns its memory, and should be freed using pm_string_free.
PM_STRING_SHARED
This is a slice of another string, and should not be freed.
PM_TOKEN_AMPERSAND
&
PM_TOKEN_AMPERSAND_AMPERSAND
&&
PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL
&&=
PM_TOKEN_AMPERSAND_DOT
&.
PM_TOKEN_AMPERSAND_EQUAL
&=
PM_TOKEN_BACKTICK
`
PM_TOKEN_BACK_REFERENCE
a back reference
PM_TOKEN_BANG
! or !@
PM_TOKEN_BANG_EQUAL
!=
PM_TOKEN_BANG_TILDE
!~
PM_TOKEN_BRACE_LEFT
{
PM_TOKEN_BRACE_RIGHT
}
PM_TOKEN_BRACKET_LEFT
[
PM_TOKEN_BRACKET_LEFT_ARRAY
[ for the beginning of an array
PM_TOKEN_BRACKET_LEFT_RIGHT
[]
PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL
[]=
PM_TOKEN_BRACKET_RIGHT
]
PM_TOKEN_CARET
^
PM_TOKEN_CARET_EQUAL
^=
PM_TOKEN_CHARACTER_LITERAL
a character literal
PM_TOKEN_CLASS_VARIABLE
a class variable
PM_TOKEN_COLON
:
PM_TOKEN_COLON_COLON
::
PM_TOKEN_COMMA
,
PM_TOKEN_COMMENT
a comment
PM_TOKEN_CONSTANT
a constant
PM_TOKEN_DOT
the . call operator
PM_TOKEN_DOT_DOT
the .. range operator
PM_TOKEN_DOT_DOT_DOT
the … range operator or forwarding parameter
PM_TOKEN_EMBDOC_BEGIN
=begin
PM_TOKEN_EMBDOC_END
=end
PM_TOKEN_EMBDOC_LINE
a line inside of embedded documentation
PM_TOKEN_EMBEXPR_BEGIN
#{
PM_TOKEN_EMBEXPR_END
}
PM_TOKEN_EMBVAR
PM_TOKEN_EOF
final token in the file
PM_TOKEN_EQUAL
=
PM_TOKEN_EQUAL_EQUAL
==
PM_TOKEN_EQUAL_EQUAL_EQUAL
===
PM_TOKEN_EQUAL_GREATER
=>
PM_TOKEN_EQUAL_TILDE
=~
PM_TOKEN_FLOAT
a floating point number
PM_TOKEN_FLOAT_IMAGINARY
a floating pointer number with an imaginary suffix
PM_TOKEN_FLOAT_RATIONAL
a floating pointer number with a rational suffix
PM_TOKEN_FLOAT_RATIONAL_IMAGINARY
a floating pointer number with a rational and imaginary suffix
PM_TOKEN_GLOBAL_VARIABLE
a global variable
PM_TOKEN_GREATER
PM_TOKEN_GREATER_EQUAL
=
PM_TOKEN_GREATER_GREATER
PM_TOKEN_GREATER_GREATER_EQUAL
=
PM_TOKEN_HEREDOC_END
the end of a heredoc
PM_TOKEN_HEREDOC_START
the start of a heredoc
PM_TOKEN_IDENTIFIER
an identifier
PM_TOKEN_IGNORED_NEWLINE
an ignored newline
PM_TOKEN_INSTANCE_VARIABLE
an instance variable
PM_TOKEN_INTEGER
an integer (any base)
PM_TOKEN_INTEGER_IMAGINARY
an integer with an imaginary suffix
PM_TOKEN_INTEGER_RATIONAL
an integer with a rational suffix
PM_TOKEN_INTEGER_RATIONAL_IMAGINARY
an integer with a rational and imaginary suffix
PM_TOKEN_KEYWORD_ALIAS
alias
PM_TOKEN_KEYWORD_AND
and
PM_TOKEN_KEYWORD_BEGIN
begin
PM_TOKEN_KEYWORD_BEGIN_UPCASE
BEGIN
PM_TOKEN_KEYWORD_BREAK
break
PM_TOKEN_KEYWORD_CASE
case
PM_TOKEN_KEYWORD_CLASS
class
PM_TOKEN_KEYWORD_DEF
def
PM_TOKEN_KEYWORD_DEFINED
defined?
PM_TOKEN_KEYWORD_DO
do
PM_TOKEN_KEYWORD_DO_LOOP
do keyword for a predicate in a while, until, or for loop
PM_TOKEN_KEYWORD_ELSE
else
PM_TOKEN_KEYWORD_ELSIF
elsif
PM_TOKEN_KEYWORD_END
end
PM_TOKEN_KEYWORD_END_UPCASE
END
PM_TOKEN_KEYWORD_ENSURE
ensure
PM_TOKEN_KEYWORD_FALSE
false
PM_TOKEN_KEYWORD_FOR
for
PM_TOKEN_KEYWORD_IF
if
PM_TOKEN_KEYWORD_IF_MODIFIER
if in the modifier form
PM_TOKEN_KEYWORD_IN
in
PM_TOKEN_KEYWORD_MODULE
module
PM_TOKEN_KEYWORD_NEXT
next
PM_TOKEN_KEYWORD_NIL
nil
PM_TOKEN_KEYWORD_NOT
not
PM_TOKEN_KEYWORD_OR
or
PM_TOKEN_KEYWORD_REDO
redo
PM_TOKEN_KEYWORD_RESCUE
rescue
PM_TOKEN_KEYWORD_RESCUE_MODIFIER
rescue in the modifier form
PM_TOKEN_KEYWORD_RETRY
retry
PM_TOKEN_KEYWORD_RETURN
return
PM_TOKEN_KEYWORD_SELF
self
PM_TOKEN_KEYWORD_SUPER
super
PM_TOKEN_KEYWORD_THEN
then
PM_TOKEN_KEYWORD_TRUE
true
PM_TOKEN_KEYWORD_UNDEF
undef
PM_TOKEN_KEYWORD_UNLESS
unless
PM_TOKEN_KEYWORD_UNLESS_MODIFIER
unless in the modifier form
PM_TOKEN_KEYWORD_UNTIL
until
PM_TOKEN_KEYWORD_UNTIL_MODIFIER
until in the modifier form
PM_TOKEN_KEYWORD_WHEN
when
PM_TOKEN_KEYWORD_WHILE
while
PM_TOKEN_KEYWORD_WHILE_MODIFIER
while in the modifier form
PM_TOKEN_KEYWORD_YIELD
yield
PM_TOKEN_KEYWORD___ENCODING__
ENCODING
PM_TOKEN_KEYWORD___FILE__
FILE
PM_TOKEN_KEYWORD___LINE__
LINE
PM_TOKEN_LABEL
a label
PM_TOKEN_LABEL_END
the end of a label
PM_TOKEN_LAMBDA_BEGIN
{
PM_TOKEN_LESS
<
PM_TOKEN_LESS_EQUAL
<=
PM_TOKEN_LESS_EQUAL_GREATER
<=>
PM_TOKEN_LESS_LESS
<<
PM_TOKEN_LESS_LESS_EQUAL
<<=
PM_TOKEN_MAXIMUM
The maximum token value.
PM_TOKEN_METHOD_NAME
a method name
PM_TOKEN_MINUS
PM_TOKEN_MINUS_EQUAL
-=
PM_TOKEN_MINUS_GREATER
->
PM_TOKEN_MISSING
a token that was expected but not found
PM_TOKEN_NEWLINE
a newline character outside of other tokens
PM_TOKEN_NOT_PROVIDED
a token that was not present but it is okay
PM_TOKEN_NUMBERED_REFERENCE
a numbered reference to a capture group in the previous regular expression match
PM_TOKEN_PARENTHESIS_LEFT
(
PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES
( for a parentheses node
PM_TOKEN_PARENTHESIS_RIGHT
)
PM_TOKEN_PERCENT
%
PM_TOKEN_PERCENT_EQUAL
%=
PM_TOKEN_PERCENT_LOWER_I
%i
PM_TOKEN_PERCENT_LOWER_W
%w
PM_TOKEN_PERCENT_LOWER_X
%x
PM_TOKEN_PERCENT_UPPER_I
%I
PM_TOKEN_PERCENT_UPPER_W
%W
PM_TOKEN_PIPE
|
PM_TOKEN_PIPE_EQUAL
|=
PM_TOKEN_PIPE_PIPE
||
PM_TOKEN_PIPE_PIPE_EQUAL
||=
PM_TOKEN_PLUS
PM_TOKEN_PLUS_EQUAL
+=
PM_TOKEN_QUESTION_MARK
?
PM_TOKEN_REGEXP_BEGIN
the beginning of a regular expression
PM_TOKEN_REGEXP_END
the end of a regular expression
PM_TOKEN_SEMICOLON
;
PM_TOKEN_SLASH
/
PM_TOKEN_SLASH_EQUAL
/=
PM_TOKEN_STAR
PM_TOKEN_STAR_EQUAL
*=
PM_TOKEN_STAR_STAR
**
PM_TOKEN_STAR_STAR_EQUAL
**=
PM_TOKEN_STRING_BEGIN
the beginning of a string
PM_TOKEN_STRING_CONTENT
the contents of a string
PM_TOKEN_STRING_END
the end of a string
PM_TOKEN_SYMBOL_BEGIN
the beginning of a symbol
PM_TOKEN_TILDE
~ or ~@
PM_TOKEN_UAMPERSAND
unary &
PM_TOKEN_UCOLON_COLON
unary ::
PM_TOKEN_UDOT_DOT
unary .. operator
PM_TOKEN_UDOT_DOT_DOT
unary … operator
PM_TOKEN_UMINUS
-@
PM_TOKEN_UMINUS_NUM
-@ for a number
PM_TOKEN_UPLUS
+@
PM_TOKEN_USTAR
unary *
PM_TOKEN_USTAR_STAR
unary **
PM_TOKEN_WORDS_SEP
a separator between words in a list
PM_TOKEN___END__
marker for the point in the file at which the parser should stop
PM_WARN_AMBIGUOUS_BINARY_OPERATOR
These are the warning diagnostics.
PM_WARN_AMBIGUOUS_FIRST_ARGUMENT_MINUS
These are the warning diagnostics.
PM_WARN_AMBIGUOUS_FIRST_ARGUMENT_PLUS
These are the warning diagnostics.
PM_WARN_AMBIGUOUS_PREFIX_AMPERSAND
These are the warning diagnostics.
PM_WARN_AMBIGUOUS_PREFIX_STAR
These are the warning diagnostics.
PM_WARN_AMBIGUOUS_PREFIX_STAR_STAR
These are the warning diagnostics.
PM_WARN_AMBIGUOUS_SLASH
These are the warning diagnostics.
PM_WARN_COMPARISON_AFTER_COMPARISON
These are the warning diagnostics.
PM_WARN_DOT_DOT_DOT_EOL
These are the warning diagnostics.
PM_WARN_DUPLICATED_HASH_KEY
These are the warning diagnostics.
PM_WARN_DUPLICATED_WHEN_CLAUSE
These are the warning diagnostics.
PM_WARN_END_IN_METHOD
These are the warning diagnostics.
PM_WARN_EQUAL_IN_CONDITIONAL
These are the warning diagnostics.
PM_WARN_EQUAL_IN_CONDITIONAL_3_3
These are the warning diagnostics.
PM_WARN_FLOAT_OUT_OF_RANGE
These are the warning diagnostics.
PM_WARN_IGNORED_FROZEN_STRING_LITERAL
These are the warning diagnostics.
PM_WARN_INDENTATION_MISMATCH
These are the warning diagnostics.
PM_WARN_INTEGER_IN_FLIP_FLOP
These are the warning diagnostics.
PM_WARN_INVALID_CHARACTER
These are the warning diagnostics.
PM_WARN_INVALID_MAGIC_COMMENT_VALUE
These are the warning diagnostics.
PM_WARN_INVALID_NUMBERED_REFERENCE
These are the warning diagnostics.
PM_WARN_KEYWORD_EOL
These are the warning diagnostics.
PM_WARN_LITERAL_IN_CONDITION_DEFAULT
These are the warning diagnostics.
PM_WARN_LITERAL_IN_CONDITION_VERBOSE
These are the warning diagnostics.
PM_WARN_SHAREABLE_CONSTANT_VALUE_LINE
These are the warning diagnostics.
PM_WARN_SHEBANG_CARRIAGE_RETURN
These are the warning diagnostics.
PM_WARN_UNEXPECTED_CARRIAGE_RETURN
These are the warning diagnostics.
PM_WARN_UNREACHABLE_STATEMENT
These are the warning diagnostics.
PM_WARN_UNUSED_LOCAL_VARIABLE
These are the warning diagnostics.
PM_WARN_VOID_STATEMENT
These are the warning diagnostics.

Statics§

pm_encoding_unicode_table
This lookup table is referenced in both the UTF-8 encoding file and the parser directly in order to speed up the default encoding processing. It is used to indicate whether a character is alphabetical, alphanumeric, or uppercase in unicode mappings.
pm_encodings
This is the table of all of the encodings that prism supports.

Functions§

pm_list_empty_p
Returns true if the given list is empty.
pm_list_free
Deallocate the internal state of the given list.
pm_node_destroy
Deallocate a node and all of its children.
pm_pack_parse
Parse a single directive from a pack or unpack format string.
pm_parse
Initiate the parser with the given parser.
pm_parser_free
Free any memory associated with the given parser.
pm_parser_init
Initialize a parser with the given start and end pointers.
pm_size_to_native
Prism abstracts sizes away from the native system - this converts an abstract size to a native size.
pm_string_free
Free the associated memory of the given string.
pm_string_length
Returns the length associated with the string.
pm_string_source
Returns the start pointer associated with the string.
pm_version
The prism version and the serialization format.

Type Aliases§

pm_alias_global_variable_node_t
AliasGlobalVariableNode
pm_alias_method_node_t
AliasMethodNode
pm_alternation_pattern_node_t
AlternationPatternNode
pm_and_node_t
AndNode
pm_arguments_node_t
ArgumentsNode
pm_array_node_t
ArrayNode
pm_array_pattern_node_t
ArrayPatternNode
pm_assoc_node_t
AssocNode
pm_assoc_splat_node_t
AssocSplatNode
pm_back_reference_read_node_t
BackReferenceReadNode
pm_begin_node_t
BeginNode
pm_block_argument_node_t
BlockArgumentNode
pm_block_local_variable_node_t
BlockLocalVariableNode
pm_block_node_t
BlockNode
pm_block_parameter_node_t
BlockParameterNode
pm_block_parameters_node_t
BlockParametersNode
pm_break_node_t
BreakNode
pm_call_and_write_node_t
CallAndWriteNode
pm_call_node_t
CallNode
pm_call_operator_write_node_t
CallOperatorWriteNode
pm_call_or_write_node_t
CallOrWriteNode
pm_call_target_node_t
CallTargetNode
pm_capture_pattern_node_t
CapturePatternNode
pm_case_match_node_t
CaseMatchNode
pm_case_node_t
CaseNode
pm_class_node_t
ClassNode
pm_class_variable_and_write_node_t
ClassVariableAndWriteNode
pm_class_variable_operator_write_node_t
ClassVariableOperatorWriteNode
pm_class_variable_or_write_node_t
ClassVariableOrWriteNode
pm_class_variable_read_node_t
ClassVariableReadNode
pm_class_variable_target_node_t
ClassVariableTargetNode
pm_class_variable_write_node_t
ClassVariableWriteNode
pm_comment_t
This is a node in the linked list of comments that we’ve found while parsing.
pm_constant_and_write_node_t
ConstantAndWriteNode
pm_constant_id_t
A constant id is a unique identifier for a constant in the constant pool.
pm_constant_operator_write_node_t
ConstantOperatorWriteNode
pm_constant_or_write_node_t
ConstantOrWriteNode
pm_constant_path_and_write_node_t
ConstantPathAndWriteNode
pm_constant_path_node_t
ConstantPathNode
pm_constant_path_operator_write_node_t
ConstantPathOperatorWriteNode
pm_constant_path_or_write_node_t
ConstantPathOrWriteNode
pm_constant_path_target_node_t
ConstantPathTargetNode
pm_constant_path_write_node_t
ConstantPathWriteNode
pm_constant_pool_bucket_type_t
The type of bucket in the constant pool hash map. This determines how the bucket should be freed.
pm_constant_read_node_t
ConstantReadNode
pm_constant_target_node_t
ConstantTargetNode
pm_constant_write_node_t
ConstantWriteNode
pm_context_node_t
This is a node in a linked list of contexts.
pm_context_t
While parsing, we keep track of a stack of contexts. This is helpful for error recovery so that we can pop back to a previous context when we hit a token that is understood by a parent context but not by the current context.
pm_def_node_t
DefNode
pm_defined_node_t
DefinedNode
pm_diagnostic_id_t
The diagnostic IDs of all of the diagnostics, used to communicate the types of errors between the parser and the user.
pm_else_node_t
ElseNode
pm_embedded_statements_node_t
EmbeddedStatementsNode
pm_embedded_variable_node_t
EmbeddedVariableNode
pm_encoding_changed_callback_t
When the encoding that is being used to parse the source is changed by prism, we provide the ability here to call out to a user-defined function.
pm_ensure_node_t
EnsureNode
pm_false_node_t
FalseNode
pm_find_pattern_node_t
FindPatternNode
pm_flip_flop_node_t
FlipFlopNode
pm_float_node_t
FloatNode
pm_for_node_t
ForNode
pm_forwarding_arguments_node_t
ForwardingArgumentsNode
pm_forwarding_parameter_node_t
ForwardingParameterNode
pm_forwarding_super_node_t
ForwardingSuperNode
pm_global_variable_and_write_node_t
GlobalVariableAndWriteNode
pm_global_variable_operator_write_node_t
GlobalVariableOperatorWriteNode
pm_global_variable_or_write_node_t
GlobalVariableOrWriteNode
pm_global_variable_read_node_t
GlobalVariableReadNode
pm_global_variable_target_node_t
GlobalVariableTargetNode
pm_global_variable_write_node_t
GlobalVariableWriteNode
pm_hash_node_t
HashNode
pm_hash_pattern_node_t
HashPatternNode
pm_heredoc_indent_t
The type of indentation that a heredoc uses.
pm_heredoc_quote_t
The type of quote that a heredoc uses.
pm_if_node_t
IfNode
pm_imaginary_node_t
ImaginaryNode
pm_implicit_node_t
ImplicitNode
pm_implicit_rest_node_t
ImplicitRestNode
pm_in_node_t
InNode
pm_index_and_write_node_t
IndexAndWriteNode
pm_index_operator_write_node_t
IndexOperatorWriteNode
pm_index_or_write_node_t
IndexOrWriteNode
pm_index_target_node_t
IndexTargetNode
pm_instance_variable_and_write_node_t
InstanceVariableAndWriteNode
pm_instance_variable_operator_write_node_t
InstanceVariableOperatorWriteNode
pm_instance_variable_or_write_node_t
InstanceVariableOrWriteNode
pm_instance_variable_read_node_t
InstanceVariableReadNode
pm_instance_variable_target_node_t
InstanceVariableTargetNode
pm_instance_variable_write_node_t
InstanceVariableWriteNode
pm_integer_node_t
IntegerNode
pm_interpolated_match_last_line_node_t
InterpolatedMatchLastLineNode
pm_interpolated_regular_expression_node_t
InterpolatedRegularExpressionNode
pm_interpolated_string_node_t
InterpolatedStringNode
pm_interpolated_symbol_node_t
InterpolatedSymbolNode
pm_interpolated_x_string_node_t
InterpolatedXStringNode
pm_it_local_variable_read_node_t
ItLocalVariableReadNode
pm_it_parameters_node_t
ItParametersNode
pm_keyword_hash_node_t
KeywordHashNode
pm_keyword_rest_parameter_node_t
KeywordRestParameterNode
pm_lambda_node_t
LambdaNode
pm_lex_mode__bindgen_ty_1
The type of this lex mode.
pm_lex_mode_t
When lexing Ruby source, the lexer has a small amount of state to tell which kind of token it is currently lexing. For example, when we find the start of a string, the first token that we return is a TOKEN_STRING_BEGIN token. After that the lexer is now in the PM_LEX_STRING mode, and will return tokens that are found as part of a string.
pm_lex_state_t
This enum combines the various bits from the above enum into individual values that represent the various states of the lexer.
pm_list_node_t
This struct represents an abstract linked list that provides common functionality. It is meant to be used any time a linked list is necessary to store data.
pm_local_variable_and_write_node_t
LocalVariableAndWriteNode
pm_local_variable_operator_write_node_t
LocalVariableOperatorWriteNode
pm_local_variable_or_write_node_t
LocalVariableOrWriteNode
pm_local_variable_read_node_t
LocalVariableReadNode
pm_local_variable_target_node_t
LocalVariableTargetNode
pm_local_variable_write_node_t
LocalVariableWriteNode
pm_locals_t
This is a set of local variables in a certain lexical context (method, class, module, etc.). We need to track how many times these variables are read in order to warn if they only get written.
pm_match_last_line_node_t
MatchLastLineNode
pm_match_predicate_node_t
MatchPredicateNode
pm_match_required_node_t
MatchRequiredNode
pm_match_write_node_t
MatchWriteNode
pm_missing_node_t
MissingNode
pm_module_node_t
ModuleNode
pm_multi_target_node_t
MultiTargetNode
pm_multi_write_node_t
MultiWriteNode
pm_next_node_t
NextNode
pm_nil_node_t
NilNode
pm_no_keywords_parameter_node_t
NoKeywordsParameterNode
pm_node_flags_t
These are the flags embedded in the node struct. We explicitly control the size of it here to avoid having the variable-width enum.
pm_node_list_t
A list of nodes in the source, most often used for lists of children.
pm_node_t
This is the base structure that represents a node in the syntax tree. It is embedded into every node type.
pm_node_type_t
This is the type of node embedded in the node struct. We explicitly control the size of it here to avoid having the variable-width enum.
pm_numbered_parameters_node_t
NumberedParametersNode
pm_numbered_reference_read_node_t
NumberedReferenceReadNode
pm_optional_keyword_parameter_node_t
OptionalKeywordParameterNode
pm_optional_parameter_node_t
OptionalParameterNode
pm_options_scope_t
A scope of locals surrounding the code that is being parsed.
pm_options_shebang_callback_t
The callback called when additional switches are found in a shebang comment that need to be processed by the runtime.
pm_options_t
The options that can be passed to the parser.
pm_options_version_t
The version of Ruby syntax that we should be parsing with. This is used to allow consumers to specify which behavior they want in case they need to parse in the same way as a specific version of CRuby would have.
pm_or_node_t
OrNode
pm_parameters_node_t
ParametersNode
pm_parentheses_node_t
ParenthesesNode
pm_parser_t
The parser used to parse Ruby source.
pm_pinned_expression_node_t
PinnedExpressionNode
pm_pinned_variable_node_t
PinnedVariableNode
pm_post_execution_node_t
PostExecutionNode
pm_pre_execution_node_t
PreExecutionNode
pm_program_node_t
ProgramNode
pm_range_node_t
RangeNode
pm_rational_node_t
RationalNode
pm_redo_node_t
RedoNode
pm_regular_expression_node_t
RegularExpressionNode
pm_required_keyword_parameter_node_t
RequiredKeywordParameterNode
pm_required_parameter_node_t
RequiredParameterNode
pm_rescue_modifier_node_t
RescueModifierNode
pm_rescue_node_t
RescueNode
pm_rest_parameter_node_t
RestParameterNode
pm_retry_node_t
RetryNode
pm_return_node_t
ReturnNode
pm_scope_parameters_t
The flags about scope parameters that can be set.
pm_scope_t
This struct represents a node in a linked list of scopes. Some scopes can see into their parent scopes, while others cannot.
pm_self_node_t
SelfNode
pm_shareable_constant_node_t
ShareableConstantNode
pm_shareable_constant_value_t
The type of shareable constant value that can be set.
pm_singleton_class_node_t
SingletonClassNode
pm_source_encoding_node_t
SourceEncodingNode
pm_source_file_node_t
SourceFileNode
pm_source_line_node_t
SourceLineNode
pm_splat_node_t
SplatNode
pm_state_stack_t
A struct that represents a stack of boolean values.
pm_statements_node_t
StatementsNode
pm_string_node_t
StringNode
pm_string_t__bindgen_ty_1
The type of the string. This field determines how the string should be freed.
pm_super_node_t
SuperNode
pm_symbol_node_t
SymbolNode
pm_token_type
This enum represents every type of token in the Ruby source.
pm_token_type_t
This enum represents every type of token in the Ruby source. This enum represents every type of token in the Ruby source.
pm_true_node_t
TrueNode
pm_undef_node_t
UndefNode
pm_unless_node_t
UnlessNode
pm_until_node_t
UntilNode
pm_when_node_t
WhenNode
pm_while_node_t
WhileNode
pm_x_string_node_t
XStringNode
pm_yield_node_t
YieldNode

Unions§

pm_lex_mode__bindgen_ty_2
The data associated with this type of lex mode.