Module bindings Copy item path Source pub use self::pm_token_type as pm_token_type_t;ANALYZED_RUBY_STRUCT AST_CDATA_NODE_STRUCT AST_DOCUMENT_NODE_STRUCT AST_ERB_BEGIN_NODE_STRUCT AST_ERB_BLOCK_NODE_STRUCT AST_ERB_CASE_MATCH_NODE_STRUCT AST_ERB_CASE_NODE_STRUCT AST_ERB_CONTENT_NODE_STRUCT AST_ERB_ELSE_NODE_STRUCT AST_ERB_END_NODE_STRUCT AST_ERB_ENSURE_NODE_STRUCT AST_ERB_FOR_NODE_STRUCT AST_ERB_IF_NODE_STRUCT AST_ERB_IN_NODE_STRUCT AST_ERB_RESCUE_NODE_STRUCT AST_ERB_UNLESS_NODE_STRUCT AST_ERB_UNTIL_NODE_STRUCT AST_ERB_WHEN_NODE_STRUCT AST_ERB_WHILE_NODE_STRUCT AST_ERB_YIELD_NODE_STRUCT AST_HTML_ATTRIBUTE_NAME_NODE_STRUCT AST_HTML_ATTRIBUTE_NODE_STRUCT AST_HTML_ATTRIBUTE_VALUE_NODE_STRUCT AST_HTML_CLOSE_TAG_NODE_STRUCT AST_HTML_COMMENT_NODE_STRUCT AST_HTML_DOCTYPE_NODE_STRUCT AST_HTML_ELEMENT_NODE_STRUCT AST_HTML_OPEN_TAG_NODE_STRUCT AST_HTML_TEXT_NODE_STRUCT AST_LITERAL_NODE_STRUCT AST_NODE_STRUCT AST_WHITESPACE_NODE_STRUCT AST_XML_DECLARATION_NODE_STRUCT ERB_CONTROL_FLOW_SCOPE_ERROR_T ERB_MULTIPLE_BLOCKS_IN_TAG_ERROR_T ERROR_STRUCT HB_ARENA_PAGE_STRUCT HB_ARENA_STRUCT HB_ARRAY_STRUCT HB_BUFFER_STRUCT HB_STRING_STRUCT LEXER_STRUCT LOCATION_STRUCT MISSINGERB_END_TAG_ERROR_T MISSING_CLOSING_TAG_ERROR_T MISSING_OPENING_TAG_ERROR_T PARSER_OPTIONS_STRUCT PARSER_STRUCT POSITION_STRUCT QUOTES_MISMATCH_ERROR_T RANGE_STRUCT RUBY_PARSE_ERROR_T TAG_NAMES_MISMATCH_ERROR_T TOKEN_STRUCT UNCLOSED_ELEMENT_ERROR_T UNEXPECTED_ERROR_T UNEXPECTED_TOKEN_ERROR_T VOID_ELEMENT_CLOSING_TAG_ERROR_T __BindgenBitfieldUnit __IncompleteArrayField 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_t A constant in the pool which effectively stores a string. pm_context_node This is a node in a linked list of contexts. 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_heredoc_lex_mode_t All of the information necessary to store to lexing a heredoc. 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_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_newline_list_t A list of offsets of newlines in a string. The offsets are assumed to be
sorted/inserted in ascending order. 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_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_scope This struct represents a node in a linked list of scopes. Some scopes can see
into their parent scopes, while others cannot. 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_t A generic string type that can have various ownership semantics. pm_token_t This struct represents a token in the Ruby source. We use it to track both
type and location information. AST_CDATA_NODE AST_DOCUMENT_NODE AST_ERB_BEGIN_NODE AST_ERB_BLOCK_NODE AST_ERB_CASE_MATCH_NODE AST_ERB_CASE_NODE AST_ERB_CONTENT_NODE AST_ERB_ELSE_NODE AST_ERB_END_NODE AST_ERB_ENSURE_NODE AST_ERB_FOR_NODE AST_ERB_IF_NODE AST_ERB_IN_NODE AST_ERB_RESCUE_NODE AST_ERB_UNLESS_NODE AST_ERB_UNTIL_NODE AST_ERB_WHEN_NODE AST_ERB_WHILE_NODE AST_ERB_YIELD_NODE AST_HTML_ATTRIBUTE_NAME_NODE AST_HTML_ATTRIBUTE_NODE AST_HTML_ATTRIBUTE_VALUE_NODE AST_HTML_CLOSE_TAG_NODE AST_HTML_COMMENT_NODE AST_HTML_DOCTYPE_NODE AST_HTML_ELEMENT_NODE AST_HTML_OPEN_TAG_NODE AST_HTML_TEXT_NODE AST_LITERAL_NODE AST_WHITESPACE_NODE AST_XML_DECLARATION_NODE ELEMENT_SOURCE_ACTIONVIEW ELEMENT_SOURCE_HAML ELEMENT_SOURCE_HTML ELEMENT_SOURCE_SLIM ERB_CONTROL_FLOW_SCOPE_ERROR ERB_MULTIPLE_BLOCKS_IN_TAG_ERROR FOREIGN_CONTENT_SCRIPT FOREIGN_CONTENT_STYLE FOREIGN_CONTENT_UNKNOWN HERB_EXTRACT_LANGUAGE_HTML HERB_EXTRACT_LANGUAGE_RUBY MISSINGERB_END_TAG_ERROR MISSING_CLOSING_TAG_ERROR MISSING_OPENING_TAG_ERROR PARSER_STATE_DATA PARSER_STATE_FOREIGN_CONTENT 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_PARAMETERS expressions in block parameters foo 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_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_CRUBY_3_5 The vendored version of prism in CRuby 4.0.x. PM_OPTIONS_VERSION_CRUBY_4_0 The vendored version of prism in CRuby 4.0.x. PM_OPTIONS_VERSION_CRUBY_4_1 The vendored version of prism in CRuby 4.1.x. PM_OPTIONS_VERSION_LATEST The current version of prism. PM_OPTIONS_VERSION_UNSET If an explicit version is not provided, the current version of prism will be used. 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 QUOTES_MISMATCH_ERROR RUBY_PARSE_ERROR STATE_DATA STATE_ERB_CLOSE STATE_ERB_CONTENT TAG_NAMES_MISMATCH_ERROR TOKEN_AMPERSAND TOKEN_AT TOKEN_BACKSLASH TOKEN_BACKTICK TOKEN_CDATA_END TOKEN_CDATA_START TOKEN_CHARACTER TOKEN_COLON TOKEN_DASH TOKEN_EOF TOKEN_EQUALS TOKEN_ERB_CONTENT TOKEN_ERB_END TOKEN_ERB_START TOKEN_ERROR TOKEN_EXCLAMATION TOKEN_HTML_COMMENT_END TOKEN_HTML_COMMENT_START TOKEN_HTML_DOCTYPE TOKEN_HTML_TAG_END TOKEN_HTML_TAG_SELF_CLOSE TOKEN_HTML_TAG_START TOKEN_HTML_TAG_START_CLOSE TOKEN_IDENTIFIER TOKEN_LT TOKEN_NBSP TOKEN_NEWLINE TOKEN_PERCENT TOKEN_QUOTE TOKEN_SEMICOLON TOKEN_SLASH TOKEN_UNDERSCORE TOKEN_WHITESPACE TOKEN_XML_DECLARATION TOKEN_XML_DECLARATION_END UNCLOSED_ELEMENT_ERROR UNEXPECTED_ERROR UNEXPECTED_TOKEN_ERROR VOID_ELEMENT_CLOSING_TAG_ERROR ast_node_free ⚠ element_source_to_string ⚠ hb_array_append ⚠ hb_array_capacity ⚠ hb_array_first ⚠ hb_array_free ⚠ hb_array_get ⚠ hb_array_index_of ⚠ hb_array_init ⚠ hb_array_last ⚠ hb_array_pop ⚠ hb_array_push ⚠ hb_array_remove ⚠ hb_array_remove_item ⚠ hb_array_set ⚠ hb_array_size ⚠ hb_array_sizeof ⚠ herb_analyze_parse_errors ⚠ herb_analyze_parse_tree ⚠ herb_extract ⚠ herb_extract_from_file ⚠ herb_extract_html_to_buffer ⚠ herb_extract_ruby_to_buffer ⚠ herb_extract_ruby_with_semicolons ⚠ herb_free_tokens ⚠ herb_lex ⚠ herb_lex_file ⚠ herb_lex_to_buffer ⚠ herb_parse ⚠ herb_parser_deinit ⚠ herb_parser_init ⚠ herb_parser_match_html_tags_post_analyze ⚠ herb_parser_parse ⚠ herb_prism_version ⚠ herb_version ⚠ token_type_to_string ⚠ AST_CDATA_NODE_T AST_DOCUMENT_NODE_T AST_ERB_BEGIN_NODE_T AST_ERB_BLOCK_NODE_T AST_ERB_CASE_MATCH_NODE_T AST_ERB_CASE_NODE_T AST_ERB_CONTENT_NODE_T AST_ERB_ELSE_NODE_T AST_ERB_END_NODE_T AST_ERB_ENSURE_NODE_T AST_ERB_FOR_NODE_T AST_ERB_IF_NODE_T AST_ERB_IN_NODE_T AST_ERB_RESCUE_NODE_T AST_ERB_UNLESS_NODE_T AST_ERB_UNTIL_NODE_T AST_ERB_WHEN_NODE_T AST_ERB_WHILE_NODE_T AST_ERB_YIELD_NODE_T AST_HTML_ATTRIBUTE_NAME_NODE_T AST_HTML_ATTRIBUTE_NODE_T AST_HTML_ATTRIBUTE_VALUE_NODE_T AST_HTML_CLOSE_TAG_NODE_T AST_HTML_COMMENT_NODE_T AST_HTML_DOCTYPE_NODE_T AST_HTML_ELEMENT_NODE_T AST_HTML_OPEN_TAG_NODE_T AST_HTML_TEXT_NODE_T AST_LITERAL_NODE_T AST_NODE_T AST_WHITESPACE_NODE_T AST_XML_DECLARATION_NODE_T ERROR_T analyzed_ruby_T ast_node_type_T element_source_t error_type_T foreign_content_type_T hb_arena_T hb_arena_page_T hb_array_T hb_buffer_T hb_string_T herb_extract_language_T lexer_T lexer_state_T location_T parser_T parser_options_T parser_state_T pm_constant_id_t A constant id is a unique identifier for a constant in the constant pool. 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_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_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_heredoc_indent_t The type of indentation that a heredoc uses. pm_heredoc_quote_t The type of quote that a heredoc uses. 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_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_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_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_parser_t The parser used to parse Ruby source. 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_shareable_constant_value_t The type of shareable constant value that can be set. pm_state_stack_t A struct that represents a stack of boolean values. pm_string_t__bindgen_ty_1 The type of the string. This field determines how the string should be freed. pm_token_type This enum represents every type of token in the Ruby source. position_T range_T token_T token_type_T pm_lex_mode__bindgen_ty_2 The data associated with this type of lex mode.