api

regex.ch

Declarations in regex.ch

1 declarationsregex

Declarations

Public only
regex#
Publicnamespace
namespace regex
CharRange#
Publicstruct
struct CharRange { var lo : i64 var hi : i64 }
CharClass#
Publicstruct
struct CharClass { var ranges : vector<CharRange> var negated : bool }
delete#
function
func delete(self : *CharClass) : void
NFAState#
Publicstruct
struct NFAState { var kind : i64 var ch : i64 var class_idx : i64 var out1 : i64 var out2 : i64 var save_idx : i64 }
PatchPtr#
Publicstruct
struct PatchPtr { var state_idx : i64 var slot : i64 }
VisitedFrame#
Publicstruct
struct VisitedFrame { var state_idx : i64 var pos : size_t }
Frag#
Publicstruct
struct Frag { var start : i64 var outs : vector<PatchPtr> }
delete#
function
func delete(self : *Frag) : void
Captures#
Publicstruct
struct Captures { var matched : bool var positions : vector<i64> }
size#
Publicfunction
func size(self : &Captures) : size_t
delete#
function
func delete(self : *Captures) : void
Regex#
Publicstruct
struct Regex { var states : vector<NFAState> var classes : vector<CharClass> var start_state : i64 var num_captures : i64 var pattern : string var compile_error : string }
init#
PublicfunctionConstructor
func init() : Regex
is_match#
Publicfunction
func is_match(self : &Regex, text : string_view) : bool
find#
Publicfunction
func find(self : &Regex, text : string_view, start_pos : *i64, end_pos : *i64) : bool
captures#
Publicfunction
func captures(self : &Regex, text : string_view) : Captures
replace#
Publicfunction
func replace(self : &Regex, text : string_view, replacement : string_view) : string
split#
Publicfunction
func split(self : &Regex, text : string_view, out : *vector<string_view>) : void
delete#
function
func delete(self : *Regex) : void
compile#
Publicfunction
func compile(pattern : string_view) : Regex
=========================================================================
new_state#
function
func new_state(states : &vector<NFAState>, kind : i64, ch : i64, class_idx : i64, out1 : i64, out2 : i64, save_idx : i64) : i64
=========================================================================
make_patch#
function
func make_patch(state_idx : i64, slot : i64) : PatchPtr
copy_patch_list#
function
func copy_patch_list(src : &vector<PatchPtr>) : vector<PatchPtr>
patch_list#
function
func patch_list(outs : &vector<PatchPtr>, target : i64, states : &vector<NFAState>) : void
append_patch_list#
function
func append_patch_list(dst : &vector<PatchPtr>, src : &vector<PatchPtr>) : void
Parser#
Publicstruct
struct Parser { var pattern : string_view var pos : size_t var group_count : i64 var error : string }
=========================================================================
delete#
function
func delete(self : *Parser) : void
=========================================================================
peek_char#
function
func peek_char(p : &Parser) : i64
advance_char#
function
func advance_char(p : &Parser) : i64
expect_char#
function
func expect_char(p : &Parser, expected : i64) : bool
parse_class_item#
function
func parse_class_item(p : &Parser) : i64
=========================================================================
parse_escape_char#
function
func parse_escape_char(p : &Parser) : i64
is_escape_class#
function
func is_escape_class(c : i64) : bool
parse_char_class#
function
func parse_char_class(p : &Parser, classes : &vector<CharClass>) : i64
=========================================================================
make_escape_class#
function
func make_escape_class(esc : i64, classes : &vector<CharClass>) : i64
append_escape_class_ranges#
function
func append_escape_class_ranges(cd : *CharClass, esc : i64) : void
compile_internal#
function
func compile_internal(pattern : string_view, states : &vector<NFAState>, classes : &vector<CharClass>, start_state : *i64, num_captures : *i64, error : &string) : bool
=========================================================================
parse_regex#
function
func parse_regex(p : &Parser, states : &vector<NFAState>, classes : &vector<CharClass>, group_count : *i64) : Frag
parse_alternation#
function
func parse_alternation(p : &Parser, states : &vector<NFAState>, classes : &vector<CharClass>, group_count : *i64) : Frag
parse_concatenation#
function
func parse_concatenation(p : &Parser, states : &vector<NFAState>, classes : &vector<CharClass>, group_count : *i64) : Frag
parse_repetition#
function
func parse_repetition(p : &Parser, states : &vector<NFAState>, classes : &vector<CharClass>, group_count : *i64) : Frag
parse_atom#
function
func parse_atom(p : &Parser, states : &vector<NFAState>, classes : &vector<CharClass>, group_count : *i64) : Frag
make_empty_frag#
function
func make_empty_frag() : Frag
add_state#
function
func add_state(set : *vector<i64>, sid : i64, states : &vector<NFAState>) : void
=========================================================================
match_class_char#
function
func match_class_char(cd : *CharClass, ch : i64) : bool
run_prog#
function
func run_prog(states : &vector<NFAState>, classes : &vector<CharClass>, start : i64, text : string_view, text_start : size_t, text_end : size_t) : bool
has_match_state#
function
func has_match_state(set : *vector<i64>, states : &vector<NFAState>) : bool
expand_non_consuming#
function
func expand_non_consuming(set : *vector<i64>, states : &vector<NFAState>, pos : size_t, text_len : size_t) : void
copy_i64_vec#
function
func copy_i64_vec(src : &vector<i64>) : vector<i64>
copy_visited_vec#
function
func copy_visited_vec(src : &vector<VisitedFrame>) : vector<VisitedFrame>
make_capture_positions#
function
func make_capture_positions(num_captures : i64) : vector<i64>
visited_contains#
function
func visited_contains(path : &vector<VisitedFrame>, sid : i64, pos : size_t) : bool
run_prog_with_captures_impl#
function
func run_prog_with_captures_impl(states : &vector<NFAState>, classes : &vector<CharClass>, sid : i64, text : string_view, pos : size_t, text_end : size_t, positions : &vector<i64>, path : &vector<VisitedFrame>) : bool
append_i64_vec#
function
func append_i64_vec(dst : &vector<i64>, src : &vector<i64>) : void
replace_i64_vec#
function
func replace_i64_vec(dst : *vector<i64>, src : &vector<i64>) : void
run_prog_with_captures#
function
func run_prog_with_captures(states : &vector<NFAState>, classes : &vector<CharClass>, start : i64, text : string_view, text_start : size_t, text_end : size_t, num_captures : i64, positions_out : *vector<i64>) : bool
run_prog_exact#
function
func run_prog_exact(states : &vector<NFAState>, classes : &vector<CharClass>, start : i64, text : string_view, text_start : size_t, text_end : size_t) : bool
find_captures#
function
func find_captures(states : &vector<NFAState>, classes : &vector<CharClass>, start : i64, text : string_view, text_start : size_t, num_captures : i64, positions_out : *vector<i64>) : bool
find_captures_from#
function
func find_captures_from(states : &vector<NFAState>, classes : &vector<CharClass>, start_state : i64, text : string_view, search_start : size_t, num_captures : i64, positions_out : *vector<i64>) : bool
find_match#
function
func find_match(states : &vector<NFAState>, classes : &vector<CharClass>, start : i64, text : string_view, text_start : size_t, match_end : *i64) : bool
find_from#
function
func find_from(states : &vector<NFAState>, classes : &vector<CharClass>, start_state : i64, text : string_view, search_start : size_t, start_out : *i64, end_out : *i64) : bool
append_replacement#
function
func append_replacement(result : &string, replacement : string_view, captures : &vector<i64>, text : string_view) : void