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

One AST node. Active fields depend on kind (noted per field). More...

#include <ast.hpp>

Public Attributes

node_kind kind {node_kind::empty}
 Which fields below are meaningful.
 
std::uint8_t byte {}
 byte: the exact byte value.
 
anchor_kind anchor {anchor_kind::caret}
 anchor: the assertion kind.
 
bool negated {}
 klass: written as [^...] / \D \W \S.
 
bool lazy {}
 repeat: prefer the shortest expansion.
 
look_dir direction {look_dir::ahead}
 lookaround: ahead (?=/(?! or behind (?<=/(?<!.
 
std::int32_t klass {-1}
 klass: index into ast::classes.
 
std::int32_t min {}
 repeat: minimum count.
 
std::int32_t max {-1}
 repeat: maximum count (-1 = unbounded).
 
std::int32_t group {-1}
 group: capture number, -1 for (?:...).
 
std::int32_t child {-1}
 First child (concat, repeat, alternation, group).
 
std::int32_t next {-1}
 Next sibling in the parent's child list.
 
std::uint8_t effective_flags {}
 Flag set in force where this node was parsed (see flags). Stamped from the scope stack; carried for scoped-flag semantics.
 

Detailed Description

One AST node. Active fields depend on kind (noted per field).

Definition at line 78 of file ast.hpp.

Member Data Documentation

◆ anchor

anchor_kind real::detail::ast_node::anchor {anchor_kind::caret}

anchor: the assertion kind.

Definition at line 82 of file ast.hpp.

◆ byte

std::uint8_t real::detail::ast_node::byte {}

byte: the exact byte value.

Definition at line 81 of file ast.hpp.

◆ child

std::int32_t real::detail::ast_node::child {-1}

First child (concat, repeat, alternation, group).

Definition at line 90 of file ast.hpp.

◆ direction

look_dir real::detail::ast_node::direction {look_dir::ahead}

lookaround: ahead (?=/(?! or behind (?<=/(?<!.

Definition at line 85 of file ast.hpp.

◆ effective_flags

std::uint8_t real::detail::ast_node::effective_flags {}

Flag set in force where this node was parsed (see flags). Stamped from the scope stack; carried for scoped-flag semantics.

Definition at line 92 of file ast.hpp.

◆ group

std::int32_t real::detail::ast_node::group {-1}

group: capture number, -1 for (?:...).

Definition at line 89 of file ast.hpp.

◆ kind

node_kind real::detail::ast_node::kind {node_kind::empty}

Which fields below are meaningful.

Definition at line 80 of file ast.hpp.

◆ klass

std::int32_t real::detail::ast_node::klass {-1}

klass: index into ast::classes.

Definition at line 86 of file ast.hpp.

◆ lazy

bool real::detail::ast_node::lazy {}

repeat: prefer the shortest expansion.

Definition at line 84 of file ast.hpp.

◆ max

std::int32_t real::detail::ast_node::max {-1}

repeat: maximum count (-1 = unbounded).

Definition at line 88 of file ast.hpp.

◆ min

std::int32_t real::detail::ast_node::min {}

repeat: minimum count.

Definition at line 87 of file ast.hpp.

◆ negated

bool real::detail::ast_node::negated {}

klass: written as [^...] / \D \W \S.

Definition at line 83 of file ast.hpp.

◆ next

std::int32_t real::detail::ast_node::next {-1}

Next sibling in the parent's child list.

Definition at line 91 of file ast.hpp.


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