Module regex/parser

regex/parser

Regex pattern parser — parses a regex pattern string into an AST of RegexNode objects. Uses an iterative stack-based approach.

Types

RegexParser object
RegexParser

Fields

NameTypeDescription
_sourceString
_bytesArrayList(u8)
_posusize
_group_countusize
_group_namesArrayList(GroupNameEntry)
impl(RegexParser, ...)
new : (RegexParser) fn(pattern : String) -> RegexParser

Parameters

NameTypeNotes
patternString

Returns: RegexParser

_peek : (RegexParser) fn(self : RegexParser) -> Option(u8)

Parameters

NameTypeNotes
selfRegexParser

Returns: Option(u8)

_advance : (RegexParser) fn(self : RegexParser) -> Option(u8)

Parameters

NameTypeNotes
selfRegexParser

Returns: Option(u8)

_read_codepoint : (RegexParser) fn(self : RegexParser, first : u8) -> u32

Parameters

NameTypeNotes
selfRegexParser
firstu8

Returns: u32

_at_end : (RegexParser) fn(self : RegexParser) -> bool

Parameters

NameTypeNotes
selfRegexParser

Returns: bool

group_count : (RegexParser) fn(self : RegexParser) -> usize

Parameters

NameTypeNotes
selfRegexParser

Returns: usize

group_names : (RegexParser) fn(self : RegexParser) -> ArrayList(GroupNameEntry)

Parameters

NameTypeNotes
selfRegexParser

Returns: ArrayList(GroupNameEntry)

_lookup_group_name : (RegexParser) fn(self : RegexParser, name : String) -> Option(usize)

Parameters

NameTypeNotes
selfRegexParser
nameString

Returns: Option(usize)

_escape_char_codepoint : (RegexParser) fn(self : RegexParser, ch : u8) -> u32

Parameters

NameTypeNotes
selfRegexParser
chu8

Returns: u32

_parse_number : (RegexParser) fn(self : RegexParser) -> Option(usize)

Parameters

NameTypeNotes
selfRegexParser

Returns: Option(usize)

_parse_greedy_modifier : (RegexParser) fn(self : RegexParser) -> bool

Parameters

NameTypeNotes
selfRegexParser

Returns: bool

_make_digit_ranges : (RegexParser) fn(self : RegexParser) -> ArrayList(CharRange)

Parameters

NameTypeNotes
selfRegexParser

Returns: ArrayList(CharRange)

_make_word_ranges : (RegexParser) fn(self : RegexParser) -> ArrayList(CharRange)

Parameters

NameTypeNotes
selfRegexParser

Returns: ArrayList(CharRange)

_make_space_ranges : (RegexParser) fn(self : RegexParser) -> ArrayList(CharRange)

Parameters

NameTypeNotes
selfRegexParser

Returns: ArrayList(CharRange)

_parse_hex_byte : (RegexParser) fn(self : RegexParser) -> Option(u32)

Parameters

NameTypeNotes
selfRegexParser

Returns: Option(u32)

_parse_class_escape : (RegexParser) fn(self : RegexParser) -> Result(ArrayList(CharRange), String)

Parameters

NameTypeNotes
selfRegexParser

Returns: Result(ArrayList(CharRange), String)

_try_parse_char_range : (RegexParser) fn(self : RegexParser, ranges : ArrayList(CharRange), low : u32) -> unit

Parameters

NameTypeNotes
selfRegexParser
rangesArrayList(CharRange)
lowu32

Returns: unit

_parse_char_class_content : (RegexParser) fn(self : RegexParser, ranges : ArrayList(CharRange)) -> Result(unit, String)

Parameters

NameTypeNotes
selfRegexParser
rangesArrayList(CharRange)

Returns: Result(unit, String)

_parse_char_class : (RegexParser) fn(self : RegexParser) -> Result(RegexNode, String)

Parameters

NameTypeNotes
selfRegexParser

Returns: Result(RegexNode, String)

_parse_unicode_property : (RegexParser) fn(self : RegexParser, negated : bool) -> Result(RegexNode, String)

Parameters

NameTypeNotes
selfRegexParser
negatedbool

Returns: Result(RegexNode, String)

_parse_escape : (RegexParser) fn(self : RegexParser) -> Result(RegexNode, String)

Parameters

NameTypeNotes
selfRegexParser

Returns: Result(RegexNode, String)

_parse_counted_quantifier : (RegexParser) fn(self : RegexParser, atom : RegexNode) -> Result(RegexNode, String)

Parameters

NameTypeNotes
selfRegexParser
atomRegexNode

Returns: Result(RegexNode, String)

_parse_atom : (RegexParser) fn(self : RegexParser) -> Result(RegexNode, String)

Parameters

NameTypeNotes
selfRegexParser

Returns: Result(RegexNode, String)

_maybe_quantify : (RegexParser) fn(self : RegexParser, a : RegexNode) -> Result(RegexNode, String)

Parameters

NameTypeNotes
selfRegexParser
aRegexNode

Returns: Result(RegexNode, String)

_parse_quantified : (RegexParser) fn(self : RegexParser) -> Result(RegexNode, String)

Parameters

NameTypeNotes
selfRegexParser

Returns: Result(RegexNode, String)

impl(RegexParser, ...)
_make_sequence : (RegexParser) fn(self : RegexParser, nodes : ArrayList(object(kind: NodeKind))) -> RegexNode

Parameters

NameTypeNotes
selfRegexParser
nodesArrayList(object(kind: NodeKind))

Returns: RegexNode

_finalize_frame : (RegexParser) fn(self : RegexParser, alts : ArrayList(ArrayList(object(kind: NodeKind))), seq : ArrayList(object(kind: NodeKind))) -> RegexNode

Parameters

NameTypeNotes
selfRegexParser
altsArrayList(ArrayList(object(kind: NodeKind)))
seqArrayList(object(kind: NodeKind))

Returns: RegexNode

parse : (RegexParser) fn(self : RegexParser) -> Result(RegexNode, String)

Parameters

NameTypeNotes
selfRegexParser

Returns: Result(RegexNode, String)