package core:text/regex/compiler
⌘K
Ctrl+K
or
/
Overview
package regex_compiler implements a bytecode compiler for the virtual machine included alongside it.
Operands larger than u8 are written in system endian order.
More details can be found in the documentation for the virtual machine.
Index
Types (26)
- Compiler
- Error
- Node
- Node_Alternation
- Node_Anchor
- Node_Concatenation
- Node_Group
- Node_Match_All_And_Escape
- Node_Optional
- Node_Optional_Non_Greedy
- Node_Repeat_N
- Node_Repeat_One
- Node_Repeat_One_Non_Greedy
- Node_Repeat_Zero
- Node_Repeat_Zero_Non_Greedy
- Node_Rune
- Node_Rune_Class
- Node_Wildcard
- Node_Word_Boundary
- Opcode
- Program
- Rune_Class_Data
- Rune_Class_Range
- Token
- Token_Kind
- Tokenizer
Constants (2)
Variables (0)
This section is empty.
Procedure Groups (0)
This section is empty.
Types
Compiler ¶
Compiler :: struct { flags: bit_set[regex_common.Flag; u8], class_data: [dynamic]regex_parser.Rune_Class_Data, }
Related Procedures With Parameters
Error ¶
Error :: enum int { None, Program_Too_Big, Too_Many_Classes, }
Related Procedures With Returns
Node_Alternation ¶
Node_Alternation :: regex_parser.Node_Alternation
Node_Anchor ¶
Node_Anchor :: regex_parser.Node_Anchor
Node_Concatenation ¶
Node_Concatenation :: regex_parser.Node_Concatenation
Node_Group ¶
Node_Group :: regex_parser.Node_Group
Node_Match_All_And_Escape ¶
Node_Match_All_And_Escape :: regex_parser.Node_Match_All_And_Escape
Node_Optional ¶
Node_Optional :: regex_parser.Node_Optional
Node_Optional_Non_Greedy ¶
Node_Optional_Non_Greedy :: regex_parser.Node_Optional_Non_Greedy
Node_Repeat_N ¶
Node_Repeat_N :: regex_parser.Node_Repeat_N
Node_Repeat_One ¶
Node_Repeat_One :: regex_parser.Node_Repeat_One
Node_Repeat_One_Non_Greedy ¶
Node_Repeat_One_Non_Greedy :: regex_parser.Node_Repeat_One_Non_Greedy
Node_Repeat_Zero ¶
Node_Repeat_Zero :: regex_parser.Node_Repeat_Zero
Node_Repeat_Zero_Non_Greedy ¶
Node_Repeat_Zero_Non_Greedy :: regex_parser.Node_Repeat_Zero_Non_Greedy
Node_Rune ¶
Node_Rune :: regex_parser.Node_Rune
Node_Rune_Class ¶
Node_Rune_Class :: regex_parser.Node_Rune_Class
Node_Wildcard ¶
Node_Wildcard :: regex_parser.Node_Wildcard
Node_Word_Boundary ¶
Node_Word_Boundary :: regex_parser.Node_Word_Boundary
Rune_Class_Data ¶
Rune_Class_Data :: regex_parser.Rune_Class_Data
Rune_Class_Range ¶
Rune_Class_Range :: regex_parser.Rune_Class_Range
Token_Kind ¶
Token_Kind :: regex_tokenizer.Token_Kind
Tokenizer ¶
Tokenizer :: regex_tokenizer.Tokenizer
Constants
JUMP_SIZE ¶
JUMP_SIZE :: size_of(Opcode) + 1 * size_of(u16)
SPLIT_SIZE ¶
SPLIT_SIZE :: size_of(Opcode) + 2 * size_of(u16)
Variables
This section is empty.
Procedures
append_raw ¶
append_raw :: proc(code: ^[dynamic]regex_vm.Opcode, data: $T) {…}
classes_are_exact ¶
classes_are_exact :: proc(q, w: ^regex_parser.Rune_Class_Data) -> bool {…}
map_all_classes ¶
map_all_classes :: proc(tree: regex_parser.Node, collection: ^[dynamic]regex_parser.Rune_Class_Data) {…}
Procedure Groups
This section is empty.
Source Files
Generation Information
Generated with odin version dev-2024-12 (vendor "odin") Windows_amd64 @ 2024-12-17 21:11:02.075901700 +0000 UTC