Module bindings

Module bindings 

Source

Re-exports§

pub use self::pm_token_type as pm_token_type_t;

Structs§

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.

Constants§

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

Functions§

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

Type Aliases§

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

Unions§

pm_lex_mode__bindgen_ty_2
The data associated with this type of lex mode.