Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Public Types | Public Member Functions | Friends
automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT > Class Template Referencefinal

Deterministic visibly pushdown automaton. Accepts subset of context free languages. More...

#include <VisiblyPushdownDPDA.h>

Inheritance diagram for automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >:
[legend]
Collaboration diagram for automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >:
[legend]

Public Types

typedef InputSymbolTypeT InputSymbolType
 
typedef PushdownStoreSymbolTypeT PushdownStoreSymbolType
 
typedef StateTypeT StateType
 
using StateType_t = StateType
 
using PushdownStoreSymbolType_t = PushdownStoreSymbolType
 

Public Member Functions

 VisiblyPushdownDPDA (ext::set< StateType > states, ext::set< InputSymbolType > callAlphabet, ext::set< InputSymbolType > returnAlphabet, ext::set< InputSymbolType > localAlphabet, ext::set< PushdownStoreSymbolType > pushdownStoreAlphabet, StateType initialState, PushdownStoreSymbolType bottomOfTheStackSymbol, ext::set< StateType > finalStates)
 Creates a new instance of the automaton with a concrete set of states, call, return, and local alphabets, pushdown store alphabet, initial state, bottom of the stack symbol, and a set of final states. More...
 
 VisiblyPushdownDPDA (StateType initialState, PushdownStoreSymbolType bottomOfTheStackSymbol)
 Creates a new instance of the automaton with a concrete initial state and bottom of the stack symbol. More...
 
const StateTypegetInitialState () const &
 
StateType && getInitialState () &&
 
bool setInitialState (StateType state)
 
const ext::set< StateType > & getStates () const &
 
ext::set< StateType > && getStates () &&
 
bool addState (StateType state)
 
void setStates (ext::set< StateType > states)
 
bool removeState (const StateType &state)
 
const ext::set< StateType > & getFinalStates () const &
 
ext::set< StateType > && getFinalStates () &&
 
bool addFinalState (StateType state)
 
void setFinalStates (ext::set< StateType > states)
 
bool removeFinalState (const StateType &state)
 
const ext::set< PushdownStoreSymbolType > & getPushdownStoreAlphabet () const &
 
ext::set< PushdownStoreSymbolType > && getPushdownStoreAlphabet () &&
 
bool addPushdownStoreSymbol (PushdownStoreSymbolType symbol)
 
void addPushdownStoreSymbols (ext::set< PushdownStoreSymbolType > symbols)
 
void setPushdownStoreAlphabet (ext::set< PushdownStoreSymbolType > symbols)
 
bool removePushdownStoreSymbol (const PushdownStoreSymbolType &symbol)
 
const PushdownStoreSymbolTypegetBottomOfTheStackSymbol () const &
 
PushdownStoreSymbolType && getBottomOfTheStackSymbol () &&
 
bool setBottomOfTheStackSymbol (PushdownStoreSymbolType symbol)
 
const ext::set< InputSymbolType > & getCallInputAlphabet () const &
 
ext::set< InputSymbolType > && getCallInputAlphabet () &&
 
bool addCallInputSymbol (InputSymbolType symbol)
 
void addCallInputSymbols (ext::set< InputSymbolType > symbols)
 
void setCallInputAlphabet (ext::set< InputSymbolType > symbols)
 
bool removeCallInputSymbol (const InputSymbolType &symbol)
 
const ext::set< InputSymbolType > & getReturnInputAlphabet () const &
 
ext::set< InputSymbolType > && getReturnInputAlphabet () &&
 
bool addReturnInputSymbol (InputSymbolType symbol)
 
void addReturnInputSymbols (ext::set< InputSymbolType > symbols)
 
void setReturnInputAlphabet (ext::set< InputSymbolType > symbols)
 
bool removeReturnInputSymbol (const InputSymbolType &symbol)
 
const ext::set< InputSymbolType > & getLocalInputAlphabet () const &
 
ext::set< InputSymbolType > && getLocalInputAlphabet () &&
 
bool addLocalInputSymbol (InputSymbolType symbol)
 
void addLocalInputSymbols (ext::set< InputSymbolType > symbols)
 
void setLocalInputAlphabet (ext::set< InputSymbolType > symbols)
 
bool removeLocalInputSymbol (const InputSymbolType &symbol)
 
bool removeInputSymbol (const InputSymbolType &symbol)
 
bool addCallTransition (StateType from, InputSymbolType input, StateType to, PushdownStoreSymbolType push)
 Adds a call transition to the automaton. More...
 
bool addReturnTransition (StateType from, InputSymbolType input, PushdownStoreSymbolType pop, StateType to)
 Adds a return transition to the automaton. More...
 
bool addLocalTransition (StateType from, InputSymbolType input, StateType to)
 Adds a local transition to the automaton. More...
 
bool removeCallTransition (const StateType &from, const InputSymbolType &input, const StateType &to, const PushdownStoreSymbolType &push)
 Removes a call transition from the automaton. More...
 
bool removeReturnTransition (const StateType &from, const InputSymbolType &input, const PushdownStoreSymbolType &pop, const StateType &to)
 Removes a return transition from the automaton. More...
 
bool removeLocalTransition (const StateType &from, const InputSymbolType &input, const StateType &to)
 Removes a local transition from the automaton. More...
 
const ext::map< ext::pair< StateType, InputSymbolType >, ext::pair< StateType, PushdownStoreSymbolType > > & getCallTransitions () const &
 
ext::map< ext::pair< StateType, InputSymbolType >, ext::pair< StateType, PushdownStoreSymbolType > > && getCallTransitions () &&
 
const ext::map< ext::tuple< StateType, InputSymbolType, PushdownStoreSymbolType >, StateType > & getReturnTransitions () const &
 
ext::map< ext::tuple< StateType, InputSymbolType, PushdownStoreSymbolType >, StateType > && getReturnTransitions () &&
 
const ext::map< ext::pair< StateType, InputSymbolType >, StateType > & getLocalTransitions () const &
 
ext::map< ext::pair< StateType, InputSymbolType >, StateType > && getLocalTransitions () &&
 
auto operator<=> (const VisiblyPushdownDPDA &other) const
 
bool operator== (const VisiblyPushdownDPDA &other) const
 
- Public Member Functions inherited from core::Components< VisiblyPushdownDPDA< DefaultSymbolType, DefaultSymbolType, DefaultStateType >, ext::set< DefaultSymbolType >, component::Set, std::tuple< CallAlphabet, ReturnAlphabet, LocalAlphabet >, ext::set< DefaultSymbolType >, component::Set, PushdownStoreAlphabet, DefaultSymbolType, component::Value, BottomOfTheStackSymbol, ext::set< DefaultStateType >, component::Set, std::tuple< States, FinalStates >, DefaultStateType, component::Value, InitialState >
void accessComponent ()
 

Friends

ext::ostreamoperator<< (ext::ostream &out, const VisiblyPushdownDPDA &instance)
 

Additional Inherited Members

- Static Public Member Functions inherited from core::Components< VisiblyPushdownDPDA< DefaultSymbolType, DefaultSymbolType, DefaultStateType >, ext::set< DefaultSymbolType >, component::Set, std::tuple< CallAlphabet, ReturnAlphabet, LocalAlphabet >, ext::set< DefaultSymbolType >, component::Set, PushdownStoreAlphabet, DefaultSymbolType, component::Value, BottomOfTheStackSymbol, ext::set< DefaultStateType >, component::Set, std::tuple< States, FinalStates >, DefaultStateType, component::Value, InitialState >
static void registerComponent ()
 
static void unregisterComponent ()
 

Detailed Description

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
class automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >

Deterministic visibly pushdown automaton. Accepts subset of context free languages.

Definition A = (Q, T = C \cup R \cup L, G, I, Z, \delta, F), Q (States) = nonempty finite set of states, T (TerminalAlphabet) = finite set of terminal symbols split to three disjoint parts

The transition functions must meet following criteria. Othervise adding conflicting transition will cause exception. $|\delta_{call} (q, c)| \leq 1$, $\forall q \in Q, c \in C$ $|\delta_{return} (q, r, g)| \leq 1$, $\forall q \in Q, r \in L, g \in G$ $|\delta_{local} (q, l)| \leq 1$, $\forall q \in Q, l \in R$

Template Parameters
InputSymbolTypeTused for the terminal alphabet
PushdownSymbolTypeTused for the pushdown store alphabet
StateTypeTused to the states, and the initial state of the automaton.

Member Typedef Documentation

◆ InputSymbolType

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
typedef InputSymbolTypeT automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::InputSymbolType

◆ PushdownStoreSymbolType

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
typedef PushdownStoreSymbolTypeT automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::PushdownStoreSymbolType

◆ PushdownStoreSymbolType_t

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
using automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::PushdownStoreSymbolType_t = PushdownStoreSymbolType

PushdownStoreSymbolType template param

◆ StateType

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
typedef StateTypeT automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::StateType

◆ StateType_t

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
using automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::StateType_t = StateType

StateType template param

Constructor & Destructor Documentation

◆ VisiblyPushdownDPDA() [1/2]

template<class InputSymbolType , class PushdownStoreSymbolType , class StateType >
automaton::VisiblyPushdownDPDA< InputSymbolType, PushdownStoreSymbolType, StateType >::VisiblyPushdownDPDA ( ext::set< StateType states,
ext::set< InputSymbolType callAlphabet,
ext::set< InputSymbolType returnAlphabet,
ext::set< InputSymbolType localAlphabet,
ext::set< PushdownStoreSymbolType pushdownStoreAlphabet,
StateType  initialState,
PushdownStoreSymbolType  bottomOfTheStackSymbol,
ext::set< StateType finalStates 
)
explicit

Creates a new instance of the automaton with a concrete set of states, call, return, and local alphabets, pushdown store alphabet, initial state, bottom of the stack symbol, and a set of final states.

Parameters
statesthe initial set of states of the automaton
callAlphabetthe initial input alphabet
returnAlphabetthe initial input alphabet
localAlphabetthe initial input alphabet
pushdownStoreAlphabetthe initial set of symbols used in the pushdown store by the automaton
initialStatethe initial state of the automaton
bottomOfTheStackSymbolthe initial pushdown symbol of the automaton
finalStatesthe initial set of final states of the automaton

◆ VisiblyPushdownDPDA() [2/2]

Creates a new instance of the automaton with a concrete initial state and bottom of the stack symbol.

Parameters
initialStatethe initial state of the automaton
bottomOfTheStackSymbolthe bottom of the stack symbol of the automaton

Member Function Documentation

◆ addCallInputSymbol()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::addCallInputSymbol ( InputSymbolType  symbol)
inline

Adder of a symbol to call part of the input alphabet.

Parameters
symbolthe new symbol to be added to a call part of the input alphabet
Returns
true if the symbol was indeed added

◆ addCallInputSymbols()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
void automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::addCallInputSymbols ( ext::set< InputSymbolType symbols)
inline

Adder of a symbol to a call part of the input alphabet.

Parameters
symbolsnew symbols to be added to a call part of the input alphabet

◆ addCallTransition()

Adds a call transition to the automaton.

The transition is in a form A \times a -> B \times g, where A, B \in Q, a \in C, and g \in G

Parameters
fromthe source state (A)
inputthe call input symbol (a)
tothe target state (B)
pushsymbol to be pushed to the pushdown store on the transition use (g)
Exceptions
AutomatonExceptionwhen transition contains state or symbol not present in the automaton components or when the transition would cause nondeterminism
Returns
true if the transition was indeed added
Here is the call graph for this function:

◆ addFinalState()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::addFinalState ( StateType  state)
inline

Adder of a final state.

Parameters
statethe new state to be added to a set of final states
Returns
true if the state was indeed added

◆ addLocalInputSymbol()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::addLocalInputSymbol ( InputSymbolType  symbol)
inline

Adder of a symbol to call part of the input alphabet.

Parameters
symbolthe new symbol to be added to a call part of the input alphabet
Returns
true if the symbol was indeed added

◆ addLocalInputSymbols()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
void automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::addLocalInputSymbols ( ext::set< InputSymbolType symbols)
inline

Adder of a symbol to a call part of the input alphabet.

Parameters
symbolsnew symbols to be added to a call part of the input alphabet

◆ addLocalTransition()

Adds a local transition to the automaton.

The transition is in a form A \times a -> B, where A, B \in Q and a \in C

Parameters
fromthe source state (A)
inputthe local input symbol (a)
tothe target state (B)
Exceptions
AutomatonExceptionwhen transition contains state or symbol not present in the automaton components or when the transition would cause nondeterminism
Returns
true if the transition was indeed added
Here is the call graph for this function:

◆ addPushdownStoreSymbol()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::addPushdownStoreSymbol ( PushdownStoreSymbolType  symbol)
inline

Adder of a pushdown store symbol.

Parameters
symbolthe new symbol to be added to a pushdown store alphabet
Returns
true if the symbol was indeed added

◆ addPushdownStoreSymbols()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
void automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::addPushdownStoreSymbols ( ext::set< PushdownStoreSymbolType symbols)
inline

Adder of pushdown store symbols.

Parameters
symbolsnew symbols to be added to a pushdown store alphabet

◆ addReturnInputSymbol()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::addReturnInputSymbol ( InputSymbolType  symbol)
inline

Adder of a symbol to call part of the input alphabet.

Parameters
symbolthe new symbol to be added to a call part of the input alphabet
Returns
true if the symbol was indeed added

◆ addReturnInputSymbols()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
void automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::addReturnInputSymbols ( ext::set< InputSymbolType symbols)
inline

Adder of a symbol to a call part of the input alphabet.

Parameters
symbolsnew symbols to be added to a call part of the input alphabet

◆ addReturnTransition()

Adds a return transition to the automaton.

The transition is in a form A \times a \times g -> B, where A, B \in Q, a \in C, and g \in G

Parameters
fromthe source state (A)
inputthe return input symbol (a)
popsymbol to be poped to the pushdown store on the transition use (g)
tothe target state (B)
Exceptions
AutomatonExceptionwhen transition contains state or symbol not present in the automaton components or when the transition would cause nondeterminism
Returns
true if the transition was indeed added
Here is the call graph for this function:

◆ addState()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::addState ( StateType  state)
inline

Adder of a state.

Parameters
statethe new state to be added to a set of states
Returns
true if the state was indeed added

◆ getBottomOfTheStackSymbol() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
PushdownStoreSymbolType && automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getBottomOfTheStackSymbol ( ) &&
inline

Getter of the bottom of the stack symbol.

Returns
the bottom of the stack symbol of the automaton
Here is the call graph for this function:

◆ getBottomOfTheStackSymbol() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const PushdownStoreSymbolType & automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getBottomOfTheStackSymbol ( ) const &
inline

Getter of the bottom of the stack symbol.

Returns
the bottom of the stack symbol of the automaton
Here is the caller graph for this function:

◆ getCallInputAlphabet() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
ext::set< InputSymbolType > && automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getCallInputAlphabet ( ) &&
inline

Getter of the call part of the input alphabet.

Returns
the the call part of the input alphabet of the automaton
Here is the call graph for this function:

◆ getCallInputAlphabet() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const ext::set< InputSymbolType > & automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getCallInputAlphabet ( ) const &
inline

Getter of the call part of the input alphabet.

Returns
the call part of the input alphabet of the automaton
Here is the caller graph for this function:

◆ getCallTransitions() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
ext::map< ext::pair< StateType, InputSymbolType >, ext::pair< StateType, PushdownStoreSymbolType > > && automaton::VisiblyPushdownDPDA< InputSymbolType, PushdownStoreSymbolType, StateType >::getCallTransitions ( ) &&

Get the call transition function of the automaton in its natural form.

Returns
call transition function of the automaton

◆ getCallTransitions() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const ext::map< ext::pair< StateType, InputSymbolType >, ext::pair< StateType, PushdownStoreSymbolType > > & automaton::VisiblyPushdownDPDA< InputSymbolType, PushdownStoreSymbolType, StateType >::getCallTransitions ( ) const &

Get the call transition function of the automaton in its natural form.

Returns
call transition function of the automaton
Here is the caller graph for this function:

◆ getFinalStates() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
ext::set< StateType > && automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getFinalStates ( ) &&
inline

Getter of final states.

Returns
the final states of the automaton
Here is the call graph for this function:

◆ getFinalStates() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const ext::set< StateType > & automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getFinalStates ( ) const &
inline

Getter of final states.

Returns
the final states of the automaton
Here is the caller graph for this function:

◆ getInitialState() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
StateType && automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getInitialState ( ) &&
inline

Getter of the initial state.

Returns
the initial state of the automaton
Here is the call graph for this function:

◆ getInitialState() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const StateType & automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getInitialState ( ) const &
inline

Getter of the initial state.

Returns
the initial state of the automaton
Here is the caller graph for this function:

◆ getLocalInputAlphabet() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
ext::set< InputSymbolType > && automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getLocalInputAlphabet ( ) &&
inline

Getter of the call part of the input alphabet.

Returns
the the call part of the input alphabet of the automaton
Here is the call graph for this function:

◆ getLocalInputAlphabet() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const ext::set< InputSymbolType > & automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getLocalInputAlphabet ( ) const &
inline

Getter of the call part of the input alphabet.

Returns
the call part of the input alphabet of the automaton
Here is the caller graph for this function:

◆ getLocalTransitions() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
ext::map< ext::pair< StateType, InputSymbolType >, StateType > && automaton::VisiblyPushdownDPDA< InputSymbolType, PushdownStoreSymbolType, StateType >::getLocalTransitions ( ) &&

Get the local transition function of the automaton in its natural form.

Returns
local transition function of the automaton

◆ getLocalTransitions() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const ext::map< ext::pair< StateType, InputSymbolType >, StateType > & automaton::VisiblyPushdownDPDA< InputSymbolType, PushdownStoreSymbolType, StateType >::getLocalTransitions ( ) const &

Get the local transition function of the automaton in its natural form.

Returns
local transition function of the automaton
Here is the caller graph for this function:

◆ getPushdownStoreAlphabet() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
ext::set< PushdownStoreSymbolType > && automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getPushdownStoreAlphabet ( ) &&
inline

Getter of the pushdown store alphabet.

Returns
the pushdown store alphabet of the automaton
Here is the call graph for this function:

◆ getPushdownStoreAlphabet() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const ext::set< PushdownStoreSymbolType > & automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getPushdownStoreAlphabet ( ) const &
inline

Getter of the pushdown store alphabet.

Returns
the pushdown store alphabet of the automaton
Here is the caller graph for this function:

◆ getReturnInputAlphabet() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
ext::set< InputSymbolType > && automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getReturnInputAlphabet ( ) &&
inline

Getter of the call part of the input alphabet.

Returns
the the call part of the input alphabet of the automaton
Here is the call graph for this function:

◆ getReturnInputAlphabet() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const ext::set< InputSymbolType > & automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getReturnInputAlphabet ( ) const &
inline

Getter of the call part of the input alphabet.

Returns
the call part of the input alphabet of the automaton
Here is the caller graph for this function:

◆ getReturnTransitions() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
ext::map< ext::tuple< StateType, InputSymbolType, PushdownStoreSymbolType >, StateType > && automaton::VisiblyPushdownDPDA< InputSymbolType, PushdownStoreSymbolType, StateType >::getReturnTransitions ( ) &&

Get the return transition function of the automaton in its natural form.

Returns
return transition function of the automaton

◆ getReturnTransitions() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const ext::map< ext::tuple< StateType, InputSymbolType, PushdownStoreSymbolType >, StateType > & automaton::VisiblyPushdownDPDA< InputSymbolType, PushdownStoreSymbolType, StateType >::getReturnTransitions ( ) const &

Get the return transition function of the automaton in its natural form.

Returns
return transition function of the automaton
Here is the caller graph for this function:

◆ getStates() [1/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
ext::set< StateType > && automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getStates ( ) &&
inline

Getter of states.

Returns
the states of the automaton
Here is the call graph for this function:

◆ getStates() [2/2]

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
const ext::set< StateType > & automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::getStates ( ) const &
inline

Getter of states.

Returns
the states of the automaton
Here is the caller graph for this function:

◆ operator<=>()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
auto automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::operator<=> ( const VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT > &  other) const
inline

The three way comparison implementation

Parameters
otherthe other instance
Returns
the ordering between this object and the other.
Here is the call graph for this function:

◆ operator==()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::operator== ( const VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT > &  other) const
inline

The equality comparison implementation.

Parameters
otherthe other object to compare with.
Returns
true if this and other objects are equal, false othervise
Here is the call graph for this function:

◆ removeCallInputSymbol()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::removeCallInputSymbol ( const InputSymbolType symbol)
inline

Remover of a call input symbol.

Parameters
symbola symbol to be removed from a call part of the input alphabet
Returns
true if the symbol was indeed removed
Here is the caller graph for this function:

◆ removeCallTransition()

template<class InputSymbolType , class PushdownStoreSymbolType , class StateType >
bool automaton::VisiblyPushdownDPDA< InputSymbolType, PushdownStoreSymbolType, StateType >::removeCallTransition ( const StateType from,
const InputSymbolType input,
const StateType to,
const PushdownStoreSymbolType push 
)

Removes a call transition from the automaton.

The transition is in a form A \times a -> B \times g, where A, B \in Q, a \in C, and g \in G

Parameters
fromthe source state (A)
inputthe call input symbol (a)
tothe target state (B)
pushsymbol to be pushed to the pushdown store on the transition use (g)
Exceptions
AutomatonExceptionwhen removed transition left hand side was found but the right hand side did not match.
Returns
true if the transition was indeed removed
Here is the call graph for this function:

◆ removeFinalState()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::removeFinalState ( const StateType state)
inline

Remover of a final state.

Parameters
statea state to be removed from a set of final states
Returns
true if the state was indeed removed

◆ removeInputSymbol()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::removeInputSymbol ( const InputSymbolType symbol)
inline

Remover of a input symbol.

Parameters
symbola symbol to be removed from the input alphabet
Returns
true if the symbol was indeed removed
Here is the call graph for this function:

◆ removeLocalInputSymbol()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::removeLocalInputSymbol ( const InputSymbolType symbol)
inline

Remover of a call input symbol.

Parameters
symbola symbol to be removed from a call part of the input alphabet
Returns
true if the symbol was indeed removed
Here is the caller graph for this function:

◆ removeLocalTransition()

template<class InputSymbolType , class PushdownStoreSymbolType , class StateType >
bool automaton::VisiblyPushdownDPDA< InputSymbolType, PushdownStoreSymbolType, StateType >::removeLocalTransition ( const StateType from,
const InputSymbolType input,
const StateType to 
)

Removes a local transition from the automaton.

The transition is in a form A \times a -> B, where A, B \in Q and a \in C

Parameters
fromthe source state (A)
inputthe local input symbol (a)
tothe target state (B)
Exceptions
AutomatonExceptionwhen removed transition left hand side was found but the right hand side did not match.
Returns
true if the transition was indeed removed
Here is the call graph for this function:

◆ removePushdownStoreSymbol()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::removePushdownStoreSymbol ( const PushdownStoreSymbolType symbol)
inline

Remover of an pushdown store symbol.

Parameters
symbola symbol to be removed from a pushdown store alphabet
Returns
true if the symbol was indeed removed

◆ removeReturnInputSymbol()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::removeReturnInputSymbol ( const InputSymbolType symbol)
inline

Remover of a call input symbol.

Parameters
symbola symbol to be removed from a call part of the input alphabet
Returns
true if the symbol was indeed removed
Here is the caller graph for this function:

◆ removeReturnTransition()

template<class InputSymbolType , class PushdownStoreSymbolType , class StateType >
bool automaton::VisiblyPushdownDPDA< InputSymbolType, PushdownStoreSymbolType, StateType >::removeReturnTransition ( const StateType from,
const InputSymbolType input,
const PushdownStoreSymbolType pop,
const StateType to 
)

Removes a return transition from the automaton.

The transition is in a form A \times a \times g -> B, where A, B \in Q, a \in C, and g \in G

Parameters
fromthe source state (A)
inputthe return input symbol (a)
popsymbol to be poped to the pushdown store on the transition use (g)
tothe target state (B)
Exceptions
AutomatonExceptionwhen removed transition left hand side was found but the right hand side did not match.
Returns
true if the transition was indeed removed
Here is the call graph for this function:

◆ removeState()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::removeState ( const StateType state)
inline

Remover of a state.

Parameters
statea state to be removed from a set of states
Returns
true if the state was indeed removed

◆ setBottomOfTheStackSymbol()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::setBottomOfTheStackSymbol ( PushdownStoreSymbolType  symbol)
inline

Setter of the bottom of the stack symbol.

Parameters
symbolnew bottom of the stack symbol of the automaton
Returns
true if the bottom of the stack symbol was indeed changed

◆ setCallInputAlphabet()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
void automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::setCallInputAlphabet ( ext::set< InputSymbolType symbols)
inline

Setter of a call part of the input alphabet.

Parameters
symbolscompletely new call part of the input alphabet

◆ setFinalStates()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
void automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::setFinalStates ( ext::set< StateType states)
inline

Setter of final states.

Parameters
statescompletely new set of final states

◆ setInitialState()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
bool automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::setInitialState ( StateType  state)
inline

Setter of the initial state.

Parameters
statenew initial state of the automaton
Returns
true if the initial state was indeed changed

◆ setLocalInputAlphabet()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
void automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::setLocalInputAlphabet ( ext::set< InputSymbolType symbols)
inline

Setter of a call part of the input alphabet.

Parameters
symbolscompletely new call part of the input alphabet

◆ setPushdownStoreAlphabet()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
void automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::setPushdownStoreAlphabet ( ext::set< PushdownStoreSymbolType symbols)
inline

Setter of a pushdown store alphabet.

Parameters
symbolscompletely new pushdown store alphabet

◆ setReturnInputAlphabet()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
void automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::setReturnInputAlphabet ( ext::set< InputSymbolType symbols)
inline

Setter of a call part of the input alphabet.

Parameters
symbolscompletely new call part of the input alphabet

◆ setStates()

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
void automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >::setStates ( ext::set< StateType states)
inline

Setter of states.

Parameters
statescompletely new set of states

Friends And Related Function Documentation

◆ operator<<

template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
ext::ostream & operator<< ( ext::ostream out,
const VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT > &  instance 
)
friend

Print this object as raw representation to ostream.

Parameters
outostream where to print
instanceobject to print
Returns
modified output stream

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