REAL
Regular Expression Algorithmic Library — constexpr C++20 regex
Loading...
Searching...
No Matches
real::detail::onepass_edge Struct Reference

One outgoing edge of a one-pass node, for a byte-class: the next node and the capture slots that take the current position as the byte is consumed. Two epsilon paths reaching the same class with a different edge is the one-pass conflict — the pattern is then rejected. More...

#include <onepass.hpp>

Public Attributes

std::uint32_t next {0}
 Next node id (valid only when assigned).
 
std::uint64_t cap_mask {0}
 Bit i set => write the current position into slot i on this edge.
 
std::uint32_t assert_mask {0}
 Bit k (an assert_kind) set => that assertion must hold at the position to take this edge (Tier-B).
 
bool assigned {false}
 Whether this byte-class has an edge from this node.
 

Detailed Description

One outgoing edge of a one-pass node, for a byte-class: the next node and the capture slots that take the current position as the byte is consumed. Two epsilon paths reaching the same class with a different edge is the one-pass conflict — the pattern is then rejected.

Definition at line 46 of file onepass.hpp.

Member Data Documentation

◆ assert_mask

std::uint32_t real::detail::onepass_edge::assert_mask {0}

Bit k (an assert_kind) set => that assertion must hold at the position to take this edge (Tier-B).

Definition at line 50 of file onepass.hpp.

◆ assigned

bool real::detail::onepass_edge::assigned {false}

Whether this byte-class has an edge from this node.

Definition at line 51 of file onepass.hpp.

◆ cap_mask

std::uint64_t real::detail::onepass_edge::cap_mask {0}

Bit i set => write the current position into slot i on this edge.

Definition at line 49 of file onepass.hpp.

◆ next

std::uint32_t real::detail::onepass_edge::next {0}

Next node id (valid only when assigned).

Definition at line 48 of file onepass.hpp.


The documentation for this struct was generated from the following file: