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

VM scratch state for the dynamic storage mode, plus the lookaround sub-scratch. More...

#include <pike.hpp>

Inheritance diagram for real::detail::pike_state:
[legend]
Collaboration diagram for real::detail::pike_state:
[legend]

Public Attributes

lookaround_scratch lookaround
 Isolated sub-scratch for bounded lookaround evaluation.
 
capture_pool pool
 OPT D1: copy-on-write capture blocks (heap-backed).
 
std::optional< lazy_dfafwd_dfa
 OPT lazy-DFA: forward pass (built lazily, cache persists across a find_iter).
 
std::optional< reverse_dfarev_dfa
 OPT lazy-DFA: the reverse start-finder.
 
const void * dfa_program {nullptr}
 The program the DFAs were built for (rebuild if it changes).
 
std::optional< reverse_dfail_prefix_rev
 IL: the inner-literal prefix reverse DFA (built once per program).
 
const void * il_prefix_for {nullptr}
 IL: the prefix program il_prefix_rev was built for.
 
const void * il_text {nullptr}
 IL: the haystack il_abandoned refers to (reset the flag when it changes).
 
bool il_abandoned {false}
 IL: a linearity guard tripped on this haystack — stay on the core.
 
- Public Attributes inherited from real::detail::basic_pike_state< thread_list, std::vector< eps_entry > >
thread_list lists [2]
 Current and next thread lists (flipped by index).
 
std::vector< eps_entrystack
 Epsilon-closure DFS stack.
 
std::int32_t table_class
 Flat 256-byte membership table for the hot single-class scan, and the class index it was built for (-1 = none).
 
std::array< std::uint8_t, 256 > table
 1 where the byte is in table_class.
 
std::int32_t cp_page_class
 Membership bitmap for a cp_class over the 2-byte UTF-8 range [U+0080, U+07FF], and the class it was built for. A klass_cp scan otherwise binary-searches ~771 ranges per non-ASCII code point; European text lives almost entirely in this range (Latin, IPA, Greek, Cyrillic, Hebrew, Arabic…), so a 240-byte bitmap answers it in one load. Built once per class and reused across a find_all-style walk; code points beyond U+07FF (CJK, astral) fall back to the range search.
 
std::array< std::uint64_t, 30 > cp_page
 1 where the code point (U+0080..U+07FF) is a member.
 

Detailed Description

VM scratch state for the dynamic storage mode, plus the lookaround sub-scratch.

Definition at line 287 of file pike.hpp.

Member Data Documentation

◆ dfa_program

const void* real::detail::pike_state::dfa_program {nullptr}

The program the DFAs were built for (rebuild if it changes).

Definition at line 293 of file pike.hpp.

◆ fwd_dfa

std::optional<lazy_dfa> real::detail::pike_state::fwd_dfa

OPT lazy-DFA: forward pass (built lazily, cache persists across a find_iter).

Definition at line 291 of file pike.hpp.

◆ il_abandoned

bool real::detail::pike_state::il_abandoned {false}

IL: a linearity guard tripped on this haystack — stay on the core.

Definition at line 297 of file pike.hpp.

◆ il_prefix_for

const void* real::detail::pike_state::il_prefix_for {nullptr}

IL: the prefix program il_prefix_rev was built for.

Definition at line 295 of file pike.hpp.

◆ il_prefix_rev

std::optional<reverse_dfa> real::detail::pike_state::il_prefix_rev

IL: the inner-literal prefix reverse DFA (built once per program).

Definition at line 294 of file pike.hpp.

◆ il_text

const void* real::detail::pike_state::il_text {nullptr}

IL: the haystack il_abandoned refers to (reset the flag when it changes).

Definition at line 296 of file pike.hpp.

◆ lookaround

lookaround_scratch real::detail::pike_state::lookaround

Isolated sub-scratch for bounded lookaround evaluation.

Definition at line 289 of file pike.hpp.

◆ pool

capture_pool real::detail::pike_state::pool

OPT D1: copy-on-write capture blocks (heap-backed).

Definition at line 290 of file pike.hpp.

◆ rev_dfa

std::optional<reverse_dfa> real::detail::pike_state::rev_dfa

OPT lazy-DFA: the reverse start-finder.

Definition at line 292 of file pike.hpp.


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