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

The baked DFA tables produced by dfa_build. More...

#include <dfa.hpp>

Collaboration diagram for real::detail::dfa_tables:
[legend]

Public Attributes

std::array< std::uint8_t, 256 > byte_class {}
 byte -> class index; the row stride's key.
 
std::size_t num_classes {0}
 Reduced alphabet size, i.e. one trans row's width.
 
std::vector< std::uint32_t > trans
 [state*num_classes + cls] -> next state (0 = dead).
 
std::vector< std::uint32_t > accept
 accept[state] = rule index, or NO_RULE (munch).
 
std::vector< std::uint64_t > accept_mask
 accept_mask[state * mask_words + w] — full which-matched bitset per state (word-packed).
 
std::vector< std::uint8_t > any_accept
 any_accept[state] != 0 if mask has any bit (skip mask-OR).
 
std::size_t mask_words {0}
 Words per state in accept_mask.
 
std::uint32_t start {0}
 The state a walk begins in.
 
std::size_t num_states {0}
 States in the minimized machine, including the dead state 0.
 
std::size_t rule_count {0}
 Rules the tables were built for.
 
bool unanchored {false}
 
bool skip_first_enabled {false}
 
char_class skip_first_bytes
 Union of rule first-bytes (valid iff enabled).
 
std::int16_t skip_single_first {-1}
 Unique union member, else -1.
 
std::array< char, 4 > skip_small_set {}
 2..4 union members for memchr-cascade.
 
std::uint8_t skip_small_set_size {0}
 0, or 2..4.
 

Detailed Description

The baked DFA tables produced by dfa_build.

Member Data Documentation

◆ skip_first_enabled

bool real::detail::dfa_tables::skip_first_enabled {false}

Set-level first-byte skip for dfa::which_matched – union of each rule's first_bytes. Disabled if any rule has first_bytes_valid == false (empty match / can start anywhere). Applied only when the walk is in start (no partial in flight).

◆ unanchored

bool real::detail::dfa_tables::unanchored {false}

Built for which-matched mid-stream restart.


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