reglibcpp
1.0.0
(Naïve) C++ implementation of models for regular languages
|
Private implementation details of NFAs. More...
Public Member Functions | |
pImpl () | |
Constructs private implementation object for an NFA accepting the empty language ∅. More... | |
pImpl (vector< char32_t > &alphabet, vector< vector< valarray< bool >>> &transitions, vector< string > &labels, valarray< bool > &acceptingStates) | |
Constructs private implementation object with provided members and empty ε-closure cache. More... | |
dfa const & | getEquivalentDfa (nfa const *owner) |
Returns the equivalent DFA safely, constructing it if it wasn't already. More... | |
Public Attributes | |
shared_ptr< dfa const > | equivalent |
Stores a minimal DFA accepting the same language as this object's NFA. More... | |
valarray< bool > | accepting |
A true value marks an index as belonging to an accept state. More... | |
vector< char32_t > | alphabet |
Represents the set of processable symbols. More... | |
vector< string > | utf8Alphabet |
Represents the set of processable symbols as UTF-8-encoded strings. More... | |
vector< valarray< bool > > | epsClosures |
Cache for every state's ε-closures. More... | |
vector< string > | labels |
Stores the names of states. More... | |
vector< vector< valarray< bool > > > | transitions |
Stores the transition function as a table viz state index × symbol index → list of bool s with true at reached state indices. More... | |
|
inline |
Constructs private implementation object for an NFA accepting the empty language ∅.
Definition at line 41 of file nfa.cpp.
|
inline |
Constructs private implementation object with provided members and empty ε-closure cache.
Definition at line 51 of file nfa.cpp.
Returns the equivalent DFA safely, constructing it if it wasn't already.
owner | pointer to the NFA calling the method |
Definition at line 73 of file nfa.cpp.
valarray<bool> reg::nfa::pImpl::accepting |
vector<char32_t> reg::nfa::pImpl::alphabet |
|
mutable |
shared_ptr<dfa const> reg::nfa::pImpl::equivalent |
vector<string> reg::nfa::pImpl::labels |
vector<vector<valarray<bool> > > reg::nfa::pImpl::transitions |
vector<string> reg::nfa::pImpl::utf8Alphabet |