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

Reusable, isolated scratch for one level of lookaround evaluation (dynamic only). More...

#include <pike.hpp>

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

Classes

struct  ahead_table
 One unbounded lookahead's answer at every position of one subject: bit i is set when the sub-pattern matches a prefix of the text from i. More...
 
struct  behind_walk
 One lookbehind's forward walk over the subject: its threads parked at at, and whether a match of the sub-pattern ends there. More...
 

Public Attributes

thread_list lists [2]
 Sub-VM thread lists (pcs only; the sub is capture-free).
 
std::vector< eps_entry > stack
 Sub-VM epsilon-closure stack.
 
std::vector< behind_walk > behind
 Per lookaround index: its lookbehind walk (unused for lookaheads).
 
std::vector< ahead_table > ahead
 Per lookaround index: its unbounded lookahead's table.
 
std::vector< std::uint8_t > reach [2]
 The backward pass's rows: pc reaches match from a position.
 

Detailed Description

Reusable, isolated scratch for one level of lookaround evaluation (dynamic only).

Vector-backed, reset on each evaluation, never sharing the main basic_pike_state. One level suffices: nested lookaround is rejected at compile time. Absent from the static state, where the lookaround code is if constexpr-elided.


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