core/text/regex/compiler
regex_compiler
Types
3Constants
32JUMP_SIZE
JUMP_SIZE :: size_of(Jump)SourceJump
Jump :: virtual_machine.JumpSourceNode
Node :: parser.NodeSourceNode_Alternation
Node_Alternation :: parser.Node_AlternationSourceNode_Anchor
Node_Anchor :: parser.Node_AnchorSourceNode_Concatenation
Node_Concatenation :: parser.Node_ConcatenationSourceNode_Group
Node_Group :: parser.Node_GroupSourceNode_Match_All_And_Escape
Node_Match_All_And_Escape :: parser.Node_Match_All_And_EscapeSourceNode_Optional
Node_Optional :: parser.Node_OptionalSourceNode_Optional_Non_Greedy
Node_Optional_Non_Greedy :: parser.Node_Optional_Non_GreedySourceNode_Repeat_N
Node_Repeat_N :: parser.Node_Repeat_NSourceNode_Repeat_One
Node_Repeat_One :: parser.Node_Repeat_OneSourceNode_Repeat_One_Non_Greedy
Node_Repeat_One_Non_Greedy :: parser.Node_Repeat_One_Non_GreedySourceNode_Repeat_Zero
Node_Repeat_Zero :: parser.Node_Repeat_ZeroSourceNode_Repeat_Zero_Non_Greedy
Node_Repeat_Zero_Non_Greedy :: parser.Node_Repeat_Zero_Non_GreedySourceNode_Rune
Node_Rune :: parser.Node_RuneSourceNode_Rune_Class
Node_Rune_Class :: parser.Node_Rune_ClassSourceNode_Wildcard
Node_Wildcard :: parser.Node_WildcardSourceNode_Word_Boundary
Node_Word_Boundary :: parser.Node_Word_BoundarySourceOpcode
Opcode :: virtual_machine.OpcodeSourceRune_Class_Data
Rune_Class_Data :: parser.Rune_Class_DataSourceRune_Class_Range
Rune_Class_Range :: parser.Rune_Class_RangeSourceSPLIT_SIZE
SPLIT_SIZE :: size_of(Split)SourceSave
Save :: virtual_machine.SaveSourceSplit
Split :: virtual_machine.SplitSourceToken
Token :: tokenizer.TokenSourceToken_Kind
Token_Kind :: tokenizer.Token_KindSourceTokenizer
Tokenizer :: tokenizer.TokenizerSourceWait_For_Byte
Wait_For_Byte :: virtual_machine.Wait_For_ByteSourceWait_For_Rune
Wait_For_Rune :: virtual_machine.Wait_For_RuneSourceWait_For_Rune_Class
Wait_For_Rune_Class :: virtual_machine.Wait_For_Rune_ClassSourceWait_For_Rune_Class_Negated
Wait_For_Rune_Class_Negated :: virtual_machine.Wait_For_Rune_Class_NegatedSourceProcedures
8append_raw
append_raw :: proc(code: ^Program, data: T)Sourceclasses_are_exact
classes_are_exact :: proc(q: ^Rune_Class_Data, w: ^Rune_Class_Data) -> (bool)Sourcecompile
compile :: proc(tree: Node, flags: common.Flags) -> (code: Program, class_data: [dynamic]Rune_Class_Data, err: Error)Sourcegenerate_code
generate_code :: proc(c: ^Compiler, node: Node) -> (code: Program)Sourceget_jump_targets
get_jump_targets :: proc(code: []Opcode) -> (jump_targets: map[int]int)Sourceinject_raw
inject_raw :: proc(code: ^Program, start: int, data: T)Sourcemap_all_classes
map_all_classes :: proc(tree: Node, collection: ^[dynamic]Rune_Class_Data)Sourcetrace
trace :: proc(w: io.Writer, code: []Opcode)Source