Module regex/node

regex/node

Regex AST node types.

The parser produces a tree of RegexNode objects representing the structure of a regex pattern. Nodes are reference-counted objects since they form a recursive tree.

Types

RegexNode object
RegexNode

Fields

NameTypeDescription
kindNodeKind
childrenArrayList(object(kind: NodeKind))
codepointu32
rangesArrayList(CharRange)
negatedbool
q_minusize
q_maxusize
q_greedybool
group_indexusize
anchorAnchorKind
impl(RegexNode, ...)
literal : (RegexNode) fn(cp : u32) -> RegexNode

Parameters

NameTypeNotes
cpu32

Returns: RegexNode

dot : (RegexNode) fn() -> RegexNode

Returns: RegexNode

char_class : (RegexNode) fn(ranges : ArrayList(CharRange), negated : bool) -> RegexNode

Parameters

NameTypeNotes
rangesArrayList(CharRange)
negatedbool

Returns: RegexNode

anchor_node : (RegexNode) fn(kind : AnchorKind) -> RegexNode

Parameters

NameTypeNotes
kindAnchorKind

Returns: RegexNode

sequence : (RegexNode) fn(nodes : ArrayList(object(kind: NodeKind))) -> RegexNode

Parameters

NameTypeNotes
nodesArrayList(object(kind: NodeKind))

Returns: RegexNode

alternation : (RegexNode) fn(left : RegexNode, right : RegexNode) -> RegexNode

Parameters

NameTypeNotes
leftRegexNode
rightRegexNode

Returns: RegexNode

quantifier : (RegexNode) fn(child : RegexNode, min_val : usize, max_val : usize, greedy : bool) -> RegexNode

Parameters

NameTypeNotes
childRegexNode
min_valusize
max_valusize
greedybool

Returns: RegexNode

group : (RegexNode) fn(child : RegexNode, index : usize) -> RegexNode

Parameters

NameTypeNotes
childRegexNode
indexusize

Returns: RegexNode

non_capturing_group : (RegexNode) fn(child : RegexNode) -> RegexNode

Parameters

NameTypeNotes
childRegexNode

Returns: RegexNode

backreference : (RegexNode) fn(group_idx : usize) -> RegexNode

Parameters

NameTypeNotes
group_idxusize

Returns: RegexNode

lookahead : (RegexNode) fn(child : RegexNode, positive : bool) -> RegexNode

Parameters

NameTypeNotes
childRegexNode
positivebool

Returns: RegexNode

lookbehind : (RegexNode) fn(child : RegexNode, positive : bool) -> RegexNode

Parameters

NameTypeNotes
childRegexNode
positivebool

Returns: RegexNode

NodeKind enum
NodeKind

Variants

VariantFieldsDescription
Literal
Dot
CharClass
Anchor
Sequence
Alternation
Quantifier
Group
NonCapturingGroup
Backreference
Lookahead
Lookbehind
CharRange struct
CharRange

A range of characters for character classes, e.g. az.

Fields

NameTypeDescription
lowu32
highu32
AnchorKind enum
AnchorKind

Variants

VariantFieldsDescription
Start
End
WordBoundary
NonWordBoundary
GroupNameEntry

Fields

NameTypeDescription
nameString
indexusize