libFAUDES
Sections
Index
|
faudes::vGenerator Class Reference
|
Public Member Functions | |
Constructors & Destructor | |
vGenerator (void) | |
Default constructor. | |
vGenerator (const vGenerator &rOtherGen) | |
Copy-constructror. | |
vGenerator (const std::string &rFileName) | |
Construct from file. | |
virtual vGenerator * | New (void) const |
Construct on heap. | |
virtual vGenerator * | Copy (void) const |
Construct copy on heap. | |
virtual const Type * | Cast (const Type *pOther) const |
Type test. | |
virtual | ~vGenerator (void) |
Destructor. | |
Copy and Assignment | |
virtual vGenerator & | Assign (const vGenerator &rSrc) |
Copy from other vGenerator. | |
virtual vGenerator & | Assign (const Type &rSrc) |
Copy from other faudes type. | |
virtual vGenerator & | AssignWithoutAttributes (const vGenerator &rGen) |
Copy from other vGenerator, ignore attributes. | |
virtual void | Move (vGenerator &rGen) |
Destructive copy to other vGenerator. | |
virtual vGenerator & | operator= (const vGenerator &rOtherGen) |
Assignment operator (uses Copy method) Note: you must reimplement this operator in derived classes in order to handle internal pointers correctly. | |
virtual void | Version (const std::string &rVersion, vGenerator &rResGen) const |
Create another version of this generator. | |
virtual void | Version (Idx version, vGenerator &rResGen) const |
Create another version of this generator. | |
virtual void | Version (const std::string &rPattern, const std::string &rReplacement, vGenerator &rResGen) const |
Create another version of this generator. | |
Basic Maintenance | |
void | Name (const std::string &rName) |
Set the generator's name. | |
const std::string & | Name (void) const |
Get generator's name. | |
virtual bool | Valid (void) |
Check if generator is valid. | |
virtual void | Clear (void) |
Clear generator data. | |
void | ClearStates (void) |
Clear all states and transitions, maintain alphabet. | |
Idx | AlphabetSize (void) const |
Get number of events in alphabet. | |
Idx | Size (void) const |
Get generator size (number of states). | |
Idx | TransRelSize (void) const |
Get number of transitions. | |
Idx | InitStatesSize (void) const |
Get number of initial states. | |
Idx | MarkedStatesSize (void) const |
Get number of marked states. | |
bool | Empty (void) const |
Check if generator is empty (no states). | |
bool | AlphabetEmpty (void) const |
Check if alphabet is Empty. | |
bool | TransRelEmpty (void) const |
Check if transition relation is empty. | |
bool | InitStatesEmpty (void) const |
Check if set of initial states are empty. | |
bool | MarkedStatesEmpty (void) const |
Check if set of marked states are empty. | |
Event Symboltable | |
SymbolTable * | EventSymbolTablep (void) const |
Get Pointer to EventSymbolTable currently used by this vGenerator. | |
virtual void | EventSymbolTablep (SymbolTable *pSymTab) |
Set EventSymbolTable to be used by this vGenerator. | |
virtual void | EventSymbolTablep (const vGenerator &rOtherGen) |
Set EventSymbolTable as given by rOtherGen. | |
EventSet | NewEventSet (void) const |
Create EventSet with generator's EventSymbolTable (on stack). | |
EventSet * | NewEventSetp (void) const |
Create EventSet with generator's EventSymbolTable (on heap). | |
Idx | EventIndex (const std::string &rName) const |
Event index lookup. | |
std::string | EventName (Idx index) const |
Event name lookup. | |
void | EventName (Idx index, const std::string &rName) |
Set name for existing event. | |
std::string | UniqueEventName (const std::string &rName) const |
Create a new unique symbolic event name. | |
bool | EventRename (Idx event, const std::string &rNewName) |
Rename event in this generator. | |
State Symboltable | |
const SymbolTable & | StateSymbolTable (void) const |
Get StateSymbolTable. | |
void | StateSymbolTable (const SymbolTable &rSymTab) |
Set StateSymbolTable. | |
Idx | StateIndex (const std::string &rName) const |
State index lookup. | |
std::string | StateName (Idx index) const |
State name lookup. | |
void | StateName (Idx index, const std::string &rName) |
Set name of state. | |
void | ClearStateNames (void) |
Remove all names from generator's StateSymbolTable. | |
void | ClrStateName (Idx index) |
Clear name for individual state. | |
void | ClrStateName (const std::string &rName) |
Clear name for individual state. | |
bool | StateNamesEnabled (void) const |
Whether libFAUEDS functions are requested to generate state names. | |
void | StateNamesEnabled (bool flag) |
Enable/disable libFAUEDS functions to automatically generate state names. | |
void | SetDefaultStateNames (void) |
Assign each state a default name based on its index. | |
void | EnforceStateNames (const std::string &rTemplate) |
For all states without a symbolic name, assign a name based on suggested template and the index. | |
std::string | UniqueStateName (const std::string &rName) const |
Create a new unique symbolic state name. | |
Read Access to Core Members | |
EventSet::Iterator | AlphabetBegin (void) const |
Iterator to Begin() of alphabet. | |
EventSet::Iterator | AlphabetEnd (void) const |
Iterator to End() of alphabet. | |
bool | ExistsEvent (Idx index) const |
Test existence of event in alphabet. | |
bool | ExistsEvent (const std::string &rName) const |
Test existence of event in alphabet. | |
EventSet::Iterator | FindEvent (Idx index) const |
Returns a iterator to event index in alphabet. | |
EventSet::Iterator | FindEvent (const std::string &rName) const |
Returns a iterator to event index in alphabet. | |
const EventSet & | Alphabet (void) const |
Return const reference to alphabet. | |
StateSet::Iterator | StatesBegin (void) const |
Iterator to Begin() of state set. | |
StateSet::Iterator | StatesEnd (void) const |
Iterator to End() of state set. | |
bool | ExistsState (Idx index) const |
Test existence of state in state set. | |
bool | ExistsState (const std::string &name) const |
Test existence of state in state set. | |
StateSet::Iterator | FindState (Idx index) const |
Returns a iterator to state index in state set. | |
StateSet::Iterator | FindState (const std::string &rName) const |
Returns a iterator to state with specified name. | |
const StateSet & | States (void) const |
Return reference to state set. | |
Idx | InitState (void) const |
Return initial state. | |
Idx | SuccessorState (Idx x1, Idx ev) const |
Return the successor state of state x1 with event ev. | |
StateSet::Iterator | InitStatesBegin (void) const |
Iterator to Begin() of mInitStates. | |
StateSet::Iterator | InitStatesEnd (void) const |
Iterator to End() of mInitStates. | |
bool | ExistsInitState (Idx index) const |
Test existence of state in mInitStates. | |
StateSet::Iterator | FindInitState (Idx index) const |
Iterator to state index in mInitStates. | |
const StateSet & | InitStates (void) const |
Const ref to initial states. | |
StateSet::Iterator | MarkedStatesBegin (void) const |
Iterator to Begin() of mMarkedStates. | |
StateSet::Iterator | MarkedStatesEnd (void) const |
Iterator to End() of mMarkedStates. | |
bool | ExistsMarkedState (Idx index) const |
Test existence of state in mMarkedStates. | |
StateSet::Iterator | FindMarkedState (Idx index) const |
Returns a iterator to state index in mMarkedStates. | |
const StateSet & | MarkedStates (void) const |
Return const ref of marked states. | |
TransSet::Iterator | TransRelBegin (void) const |
Iterator to Begin() of transition relation. | |
TransSet::Iterator | TransRelEnd (void) const |
Iterator to End() of transition relation. | |
TransSet::Iterator | TransRelBegin (Idx x1) const |
Iterator to begin of transitions with x1 as predecessor state. | |
TransSet::Iterator | TransRelEnd (Idx x1) const |
iterator to end of transitions with x1 as predecessor state. | |
TransSet::Iterator | TransRelBegin (Idx x1, Idx ev) const |
iterator to begin of transitions with x1 as predecessor state and event ev. | |
TransSet::Iterator | TransRelEnd (Idx x1, Idx ev) const |
Iterator to end of transitions with x1 as predecessor state and event ev. | |
TransSet::Iterator | FindTransition (const std::string &rX1, const std::string &rEv, const std::string &rX2) const |
iterator to transition given by x1, ev, x2 | |
TransSet::Iterator | FindTransition (Idx x1, Idx ev, Idx x2) const |
Iterator to transition given by x1, ev, x2. | |
TransSet::Iterator | FindTransition (const Transition &rTrans) const |
Iterator to transition. | |
bool | ExistsTransition (const std::string &rX1, const std::string &rEv, const std::string &rX2) const |
Test for transition given by x1, ev, x2. | |
bool | ExistsTransition (Idx x1, Idx ev, Idx x2) const |
Test for transition given by x1, ev, x2. | |
bool | ExistsTransition (const Transition &rTrans) const |
test for transition | |
const TransSet & | TransRel (void) const |
Return reference to transition relation. | |
void | TransRel (TransSetX1EvX2 &res) const |
Get copy of trantision relation sorted by other compare operator, e.g. | |
void | TransRel (TransSetEvX1X2 &res) const |
void | TransRel (TransSetEvX2X1 &res) const |
void | TransRel (TransSetX2EvX1 &res) const |
void | TransRel (TransSetX2X1Ev &res) const |
void | TransRel (TransSetX1X2Ev &res) const |
Transition | TransitionByNames (const std::string &rX1, const std::string &rEv, const std::string &rX2) const |
Convebience function. | |
Write Access to Core Members | |
bool | InsEvent (Idx index) |
Add an existing event to alphabet by index. | |
Idx | InsEvent (const std::string &rName) |
Add named event to generator. | |
void | InsEvents (const EventSet &events) |
Add new named events to generator. | |
bool | DelEvent (Idx index) |
Delete event from generator by index. | |
bool | DelEvent (const std::string &rName) |
Delete event from generator by name. | |
void | DelEvents (const EventSet &rEvents) |
Delete a set of events from generator. | |
bool | DelEventFromAlphabet (Idx index) |
Delete event from alphabet without consistency check. | |
void | InjectAlphabet (const EventSet &rNewalphabet) |
Set mpAlphabet without consistency check. | |
void | RestrictAlphabet (const EventSet &rNewalphabet) |
Restricts mpAlphabet without consistency check. | |
Idx | InsState (void) |
Add new anonymous state to generator. | |
bool | InsState (Idx index) |
Add (perhaps new) state to generator. | |
Idx | InsState (const std::string &rName) |
Add new named state to generator. | |
bool | DelState (Idx index) |
Delete a state from generator by index. | |
bool | DelState (const std::string &rName) |
Delete a state from generator by name. | |
void | DelStates (const StateSet &rDelStates) |
Delete a set of states Cleans mpStates, mInitStates, mMarkedStates, mpTransrel, and mpStateSymboltable. | |
bool | DelStateFromStates (Idx index) |
Delete a state from generator without consistency check. | |
StateSet::Iterator | DelStateFromStates (StateSet::Iterator pos) |
Delete a state from generator without consistency check. | |
void | InjectState (Idx index) |
Inject an existing state index into generators mStates Use with care! For use in performance optimized functions. | |
void | InjectStates (const StateSet &rNewStates) |
Inject a complete state set without consistency checks (without attributes). | |
Idx | InsInitState (void) |
Create new anonymous state and set as initial state. | |
bool | InsInitState (Idx index) |
Add (perhaps new) state to generator and turn it into a initial state. | |
Idx | InsInitState (const std::string &rName) |
Create a new named state and set as initial state. | |
Idx | InsMarkedState (void) |
Create new anonymous state and set as marked state. | |
bool | InsMarkedState (Idx index) |
Add (perhaps new) state to generator and turn it into a marked state. | |
Idx | InsMarkedState (const std::string &rName) |
Create a new named state and set as marked state. | |
void | SetInitState (Idx index) |
Set an existing state as initial state by index. | |
void | SetInitState (const std::string &rName) |
Set an existing state as initial state by name. | |
void | InjectInitStates (const StateSet &rNewInitStates) |
Replace mInitStates with StateSet given as parameter without consistency checks. | |
void | ClrInitState (Idx index) |
Unset an existing state as initial state by index. | |
void | ClrInitState (const std::string &rName) |
Unset an existing state as initial state by name. | |
StateSet::Iterator | ClrInitState (StateSet::Iterator pos) |
Unset an existing state as initial state by iterator. | |
void | ClearInitStates (void) |
Clear all mInitStates. | |
void | SetMarkedState (Idx index) |
Set an existing state as marked state by index. | |
void | SetMarkedState (const std::string &rName) |
Set an existing state as marked state by name. | |
void | ClrMarkedState (Idx index) |
Unset an existing state as marked state by index. | |
void | ClrMarkedState (const std::string &rName) |
Unset an existing state as marked state by name. | |
StateSet::Iterator | ClrMarkedState (StateSet::Iterator pos) |
Unset an existing state as marked state by iterator. | |
void | ClearMarkedStates (void) |
Clear all marked states. | |
void | InjectMarkedStates (const StateSet &rNewMarkedStates) |
Replace mMarkedStates with StateSet given as parameter without consistency checks. | |
bool | SetTransition (Idx x1, Idx ev, Idx x2) |
Add a transition to generator by indices. | |
bool | SetTransition (const std::string &rX1, const std::string &rEv, const std::string &rX2) |
Add a transition to generator by names. | |
bool | SetTransition (const Transition &rTransition) |
Add a transition to generator. | |
void | ClrTransition (Idx x1, Idx ev, Idx x2) |
Remove a transition by indices. | |
void | ClrTransition (const Transition &rTrans) |
Remove a transition by transition object. | |
TransSet::Iterator | ClrTransition (TransSet::Iterator it) |
Remove a transition by iterator. | |
void | ClearTransRel (void) |
Clear all transitions. | |
void | InjectTransition (const Transition &rTrans) |
Set transition without consistency check. | |
void | InjectTransRel (const TransSet &rNewtransrel) |
Set transition relation without consistency check (no attributes). | |
Attributes | |
virtual void | ClearAttributes (void) |
Clear Attributes. | |
virtual bool | UpdateAttributes (void) |
Updates internal attributes. | |
virtual void | ClearEventAttributes (void) |
Clear event attributes. | |
virtual void | ClrEventAttribute (Idx index) |
Clear attribute for existing event. | |
virtual void | EventAttribute (Idx index, const Type &rAttr) |
Set attribute for existing event. | |
virtual void | EventAttributes (const EventSet &rEventSet) |
Set attributes for existing events. | |
virtual const AttributeVoid & | EventAttribute (Idx index) const |
Event attribute lookup. | |
virtual const AttributeVoid & | EventAttribute (const std::string &rName) const |
Event attribute lookup. | |
virtual AttributeVoid * | EventAttributep (Idx index) |
Event attribute pointer to access Attribute methods. | |
virtual AttributeVoid * | EventAttributep (const std::string &rName) |
Event attribute pointer to access Attribute methods. | |
virtual void | ClearStateAttributes (void) |
Clear state attributes. | |
virtual void | ClrStateAttribute (Idx index) |
Clear attribute for existing state. | |
virtual void | StateAttribute (Idx index, const Type &rAttr) |
Set attribute for existing state. | |
virtual const AttributeVoid & | StateAttribute (Idx index) const |
State attribute lookup. | |
virtual AttributeVoid * | StateAttributep (Idx index) |
State attribute pointer to access Attribute methods. | |
virtual void | ClearTransAttributes (void) |
Clear transition attributes. | |
virtual void | TransAttribute (const Transition &rTrans, const Type &rAttr) |
Set attribute for existing transition. | |
virtual void | ClrTransAttribute (const Transition &rTrans) |
Clear attribute for existing transition. | |
virtual const AttributeVoid & | TransAttribute (const Transition &rTrans) const |
Transition attribute lookup. | |
virtual AttributeVoid * | TransAttributep (const Transition &rTrans) |
Transition attribute pointer to access Attribute methods. | |
virtual void | ClearGlobalAttribute (void) |
Clear global attribute. | |
virtual void | GlobalAttribute (const Type &rAttr) |
Set global attribute. | |
virtual void | GlobalAttributeTry (const Type &rAttr) |
Set global attribute. | |
virtual const AttributeVoid & | GlobalAttribute (void) const |
Global attribute lookup. | |
virtual AttributeVoid * | GlobalAttributep (void) |
Get attribute pointer The global attribute allways exits. | |
Reachability | |
StateSet | AccessibleSet (void) const |
Compute set of accessible states. | |
bool | Accessible (void) |
Make generator accessible. | |
bool | IsAccessible (void) const |
Check if generator is accessible. | |
StateSet | CoaccessibleSet (void) const |
Compute set of Coaccessible states. | |
bool | Coaccessible (void) |
Make generator Coaccessible. | |
bool | IsCoaccessible (void) const |
Check if generator is Coaccessible. | |
StateSet | BlockingStates (void) const |
Compute set of blocking states. | |
StateSet | TerminalStates (void) const |
Compute set of terminal states. | |
StateSet | TerminalStates (const StateSet &rStates) const |
Compute set of terminal states. | |
bool | Complete (void) |
Make generator Complete. | |
bool | IsComplete (void) const |
Check if generator is complete. | |
bool | IsComplete (const StateSet &rStates) const |
Check if generator is complete. | |
StateSet | TrimSet (void) const |
Compute set of trim states. | |
bool | Trim (void) |
Make generator trim. | |
bool | IsTrim (void) const |
Check if generator is trim. | |
bool | OmegaTrim (void) |
Make generator omega-trim. | |
bool | IsOmegaTrim (void) const |
Check if generator is omega-trim. | |
Misc | |
EventSet | UsedEvents (void) const |
Return used events (executed in transitions). | |
EventSet | UnusedEvents (void) const |
Return unused events. | |
void | MinimizeAlphabet (void) |
Set the alphabet to used events. | |
EventSet | ActiveEventSet (Idx x1) const |
Return active event set at state x1. | |
TransSet | ActiveTransSet (Idx x1) const |
Return active transition set at state x1. | |
StateSet | TransRelStateSpace (void) const |
Return the states covered by transitions. | |
StateSet | TransRelStateSpace (Idx x1) const |
Return the successor states of state x1. | |
StateSet | TransRelStateSpace (Idx x1, Idx ev) const |
Return the successor states of state x1 with event ev. | |
bool | IsDeterministic (void) const |
Check if generator is deterministic. | |
void | SetMinStateIndexMap (void) const |
Set minimal index map for file io of generator states. | |
void | ClearMinStateIndexMap (void) const |
Clear minimal index map for 1:1 file io. | |
Idx | MinStateIndex (Idx index) const |
Get state index as is it will be written to file. | |
Idx | MaxStateIndex (void) const |
Get maximum state index used in this generator. | |
const std::map< Idx, Idx > & | MinStateIndexMap (void) const |
Get state index translation map. | |
std::string | EStr (Idx index) const |
Pretty printable event name for index (eg for debugging). | |
std::string | SStr (Idx index) const |
Return pretty printable state name for index (eg for debugging). | |
std::string | TStr (const Transition &rTrans) const |
Return pretty printable transition (eg for debugging). | |
void | GraphWrite (const std::string &rFileName, const std::string &rOutFormat="", const std::string &rDotExec="dot") const |
Produce graphical representation of this generator. | |
bool | operator< (const vGenerator &rOtherGen) const |
Order for sorting containers of generators. | |
Static Public Member Functions | |
static SymbolTable * | GlobalEventSymbolTablep (void) |
Get Pointer to global EventSymbolTable. | |
static void | StateNamesEnabledDefault (bool flag) |
Sets the default for automatic state name generation. | |
Protected Member Functions | |
virtual void | NewCore (void) |
Allocate my heap members (attribute dependent types). | |
virtual void | DeleteCore (void) |
Free my heap members (attribute dependent types). | |
virtual void | UpdateCore (void) |
Callback for core update. | |
void | ConfigureAttributeTypes (const AttributeVoid *pNewGlobalPrototype, const StateSet *pNewStatesPrototype, const EventSet *pNewAlphabetPrototype, const TransSet *pNewTransRelPrototype) |
Configure attribute types. | |
virtual void | DoRead (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0) |
Read generator object from TokenReader, see Type::Read for public wrappers. | |
virtual void | DoWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const |
Write generator to TokenWriter, see Type::Write for public wrappers. | |
virtual void | DoDWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const |
Write generator in debugging format to TokenWriter, see Type::DWrite for public wrappers. | |
virtual void | DoSWrite (TokenWriter &rTw) const |
Write generator statistics as comment to TokenWriter, see Type::SWrite for public wrappers. | |
virtual void | DoXWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const |
Write generator to TokenWriter, see Type::XWrite for public wrappers. | |
void | ReadGeneratorName (const std::string &rFileName) |
Read the generator's name from a file. | |
void | ReadGeneratorName (TokenReader &rTr) |
Read the generator's name from a TokenReader. | |
void | ReadAlphabet (const std::string &rFileName) |
Read the generator's alphabet from a file. | |
void | ReadAlphabet (TokenReader &rTr) |
Read the generator's alphabet from a TokenReader. | |
void | ReadStates (const std::string &rFileName) |
Read the generator's state set from a file. | |
void | ReadStates (TokenReader &rTr) |
Read the generator's stateset from a TokenReader. | |
void | XReadStateSet (TokenReader &rTr, StateSet &rStateSet, const std::string &rLabel="") const |
Read a stateset from TokenReader in XML format. | |
void | ReadTransRel (const std::string &rFileName) |
Read the generator's transition relation from a file. | |
void | ReadTransRel (TokenReader &rTr) |
Read the generator's transition relation from a TokenReader. | |
void | XReadTransRel (TokenReader &rTr) |
Read the generator's transition relation from a TokenReader. | |
void | XWriteStateSet (TokenWriter &rTw, const StateSet &rStateSet, const std::string &rLabel="") const |
Write a stateset to TokenWriter in XML format. | |
void | XWriteTransRel (TokenWriter &rTw) const |
Write transition relation to tokenwriter in XML format. | |
void | CheckAccessible (StateSet &accessibleset, Idx startState) const |
Get accessible states by filling accessibleset recursive. | |
void | CheckCoaccessible (StateSet &Coaccessibleset, const TransSetX2EvX1 &rtrel, Idx startState) const |
Get Coaccessible states by filling Coaccessibleset recursive. | |
Static Protected Member Functions | |
static const EventSet & | AlphabetVoid (void) |
Static default alphabet prototype (incl. | |
static const StateSet & | StatesVoid (void) |
Static default state set prototype (incl. | |
static const TransSet & | TransRelVoid (void) |
Static default transition relation prototype (incl. | |
static const AttributeVoid & | GlobalVoid (void) |
Static default global attribute prototype (configures global attribute type). | |
Protected Attributes | |
std::string | mMyName |
Name of generator. | |
Idx | mId |
Number of generator. | |
SymbolTable | mStateSymbolTable |
State symbol table (local per Generator). | |
SymbolTable * | mpStateSymbolTable |
Pointer to State symbol table. | |
SymbolTable * | mpEventSymbolTable |
Pointer to Event symbol table. | |
bool | mStateNamesEnabled |
Automatic state names. | |
bool | mReindexOnWrite |
Reindex states on file-i/o. | |
EventSet * | mpAlphabet |
Pointer to alphabet (actual type depends on attributes). | |
StateSet * | mpStates |
Pointer to state set (actual type depends on attributes). | |
TransSet * | mpTransRel |
Pointer to ransition relation (actual type depends on attributes). | |
AttributeVoid * | mpGlobalAttribute |
Pointer to lobal attribute (actual type depends on attributes). | |
const EventSet * | pAlphabetPrototype |
Pointer to alphabet prototype (incl. | |
const StateSet * | pStatesPrototype |
Pointer to state set prototype (incl. | |
const TransSet * | pTransRelPrototype |
Pointer to transition relation prototype (incl. | |
const AttributeVoid * | pGlobalPrototype |
Pointer to global attribute prototype (configures global attribute type). | |
StateSet | mInitStates |
Initial states. | |
StateSet | mMarkedStates |
Marked states. | |
std::map< Idx, Idx > | mMinStateIndexMap |
Map State indices to consecutive indices. | |
Static Protected Attributes | |
static Idx | msObjectCount = 0 |
Number of generator objects. | |
static bool | msStateNamesEnabledDefault = true |
Default for automatic statenames. | |
static bool | msReindexOnWriteDefault = true |
Default for automatic statenames. | |
File IO | |
| |
void | WriteAlphabet (void) const |
Write generators alphabet to console. | |
std::string | AlphabetToString (void) const |
Write generators alphabet to string. | |
void | WriteAlphabet (TokenWriter &rTw) const |
Write generators alphabet to tokenwriter. | |
void | WriteStateSet (const StateSet &rStateSet) const |
Write a stateset to console (no re-indexing). | |
std::string | StateSetToString (const StateSet &rStateSet) const |
Write a stateset to string (no re-indexing). | |
std::string | StateSetToText (const StateSet &rStateSet) const |
Write a stateset to formated text (no re-indexing). | |
void | WriteStateSet (TokenWriter &rTw, const StateSet &rStateSet) const |
Write a stateset to TokenWriter. | |
void | DWriteStateSet (TokenWriter &rTw, const StateSet &rStateSet) const |
Write a stateset to TokenWriter (debug version, no re-indexing). | |
std::string | StatesToString (void) const |
Write stateset of this generator to a string (no re-indexing). | |
std::string | StatesToText (void) const |
Write stateset of this generator to formated text (no re-indexing). | |
std::string | MarkedStatesToString (void) const |
Write set of marked states to a string (no re-indexing). | |
std::string | InitStatesToString (void) const |
Write set of initial states to a string (no re-indexing). | |
void | WriteTransRel (void) const |
Write transition relation to console (no re-indexing). | |
std::string | TransRelToString (void) const |
Write transition relation to string (no re-indexing). | |
std::string | TransRelToText (void) const |
Write transition relation to formated text (no re-indexing). | |
void | WriteTransRel (TokenWriter &rTw) const |
Write transition relation to tokenwriter. | |
void | DWriteTransRel (TokenWriter &rTw) const |
Write transition relation to tokenwriter (debug version). | |
virtual void | DotWrite (const std::string &rFileName) const |
Writes generator to dot input format. | |
virtual void | DDotWrite (const std::string &rFileName) const |
Writes generator to dot input format (no re-indexing). | |
virtual void | XDotWrite (const std::string &rFileName) const |
Writes generator to dot input format for export to VioLib. | |
void | ReadStateSet (TokenReader &rTr, const std::string &rLabel, StateSet &rStateSet) const |
Read a state set. | |
bool | ReindexOnWrite (void) const |
Test whether file-i/o uses minimal state indicees. | |
void | ReindexOnWrite (bool flag) |
Enable/disable minimal state indicees for file-i/o. | |
static void | ReindexOnWriteDefault (bool flag) |
Enable/disable reindexing states for file-i/o. | |
static bool | ReindexOnWriteDefault (void) |
Enable/disable reindexing states for file-i/o. |
Base class of all FAUDES generators.
The faudes::vGenerator models the plain five-tupel G = (X, Sigma, Delta, X_0, X_m) to represent the marked language L(G) and closed language L_m(G), respectively. It provides read and write access to core menbers, e.g. methods for inserting/deleting events, states and transitions.
States, events and transitions in a generator can be addressed in three alternative methods:
For read access, const refererences to sets are provided. In order to allow for consistency checks, write access is via generator methods only. When the compiletime option FAUDES_CHECKED is defined, write methods throw an exception on inconsistent data, eg. setting an initial state that is not an element of the state set, or introducing a transition with an event label that is not in the alphabet.
While both, events and states, are represented by the integer type faudes::Idx, there is a fundamental distinction between both, which stems from the design choice to use generators as a tool to represent formal languages. From this perspective, events are global enteties while states are local to the respective generator. Any two events within libFAUDES are related while states only compare within a generator.
In consequence, there is global sybmoltable for event name resolution, while there is one local state symboltable for each generator. Furthermore, state names are considered cosmetic and hence are optional, while event names are mandatory.
Example: two machines both refer to the event name "alpha" that models the process of passing a workpiece from one machine to the other. In libFAUDES this is indeed modelled as one event which is represented by one index. However, both machines may have a state "Idle" which indicates that the respective machine is idle. In libFAUDES the two states are treated locally to the generators and whether or not they have the same index is regarded irrelevant.
The generator class carries a flag to indicate that functions with result type generator shall attach names to the newly created states, based on the state names of the respective arguments. Turning of this feature and avoiding state names alltogether considerably increases libFAUDES performance.
Generators inherit the standard token IO interface from the libFAUDES general purpose base Type, so you may use Read and Write functions for generators. The file-format consists of a generator section that includes one subsection for each core member. It is illustrated by the below example
<Generator> % libFAUDES Generator for the simple machine "simple machine" <Alphabet> "alpha" "beta" "mue" "lambda" </Alphabet> <States> "idle" "busy" "down" </States> <TransRel> "idle" "alpha" "busy" "busy" "beta" "idle" "busy" "mue" "down" "down" "lambda" "idle" </TransRel> <InitStates> "idle" </InitStates> <MarkedStates> "idle" </MarkedStates> </Generator>
Note that for file IO states may be represented either ba symbolic name or index. However, when writing a file indices will be chosen consecutively and beginning at 1. Thus, state indices are not maintained by file IO. Events are always represented by their symbolic name.
libFAUDES generators provide an interface to access so called attributes, ie data that is optionally attached to individual states, events, transitions, or globally to the generator.
The faudes::Generator's interface to attributes is abstract in the sense that a generator is not aware of the actual type of its attributes. Instances of the class Generator indeed have trivial attributes that hold no data at all. To use attributes, you are meant to instantiate objects of the derived class TaGenerator with template parameters to specify attribute types. Basic algorithms implemented for plain generators will accept attributed generators as arguments. Such algorithms may occasionally inspect or set attributes using the abstract interface and C++ dynamic casts. For specialised algorithms that refer to extended generator semantics, we recommend derived generator classes as argument type.
Definition at line 155 of file cfl_generator.h.
faudes::vGenerator::vGenerator | ( | void | ) |
faudes::vGenerator::vGenerator | ( | const vGenerator & | rOtherGen | ) |
Copy-constructror.
Definition at line 94 of file cfl_generator.cpp.
faudes::vGenerator::vGenerator | ( | const std::string & | rFileName | ) |
Construct from file.
This constructor effectively uses the DoRead(TokenReader&) function to read.
rFileName | Name of file |
Definition at line 126 of file cfl_generator.cpp.
faudes::vGenerator::~vGenerator | ( | void | ) | [virtual] |
Destructor.
Definition at line 191 of file cfl_generator.cpp.
bool faudes::vGenerator::Accessible | ( | void | ) |
Make generator accessible.
Definition at line 1891 of file cfl_generator.cpp.
StateSet faudes::vGenerator::AccessibleSet | ( | void | ) | const |
Return active event set at state x1.
x1 | Index of x1 |
Definition at line 1785 of file cfl_generator.cpp.
Return active transition set at state x1.
x1 | Index of x1 |
Definition at line 1795 of file cfl_generator.cpp.
const EventSet & faudes::vGenerator::Alphabet | ( | void | ) | const |
Return const reference to alphabet.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1725 of file cfl_generator.cpp.
EventSet::Iterator faudes::vGenerator::AlphabetBegin | ( | void | ) | const |
Iterator to Begin() of alphabet.
doxygen group
Definition at line 957 of file cfl_generator.cpp.
bool faudes::vGenerator::AlphabetEmpty | ( | void | ) | const |
Check if alphabet is Empty.
Definition at line 618 of file cfl_generator.cpp.
EventSet::Iterator faudes::vGenerator::AlphabetEnd | ( | void | ) | const |
Iterator to End() of alphabet.
Definition at line 962 of file cfl_generator.cpp.
Idx faudes::vGenerator::AlphabetSize | ( | void | ) | const |
Get number of events in alphabet.
Definition at line 543 of file cfl_generator.cpp.
std::string faudes::vGenerator::AlphabetToString | ( | void | ) | const |
Write generators alphabet to string.
Exception |
|
Definition at line 2263 of file cfl_generator.cpp.
const EventSet & faudes::vGenerator::AlphabetVoid | ( | void | ) | [static, protected] |
Static default alphabet prototype (incl.
attribute type)
Definition at line 39 of file cfl_generator.cpp.
vGenerator & faudes::vGenerator::Assign | ( | const Type & | rSrc | ) | [virtual] |
Copy from other faudes type.
The current implementation tests whether the source object can be casted to a generator and then performs the according assignment.
rSrc | Source to copy from. |
Reimplemented from faudes::Type.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 284 of file cfl_generator.cpp.
vGenerator & faudes::vGenerator::Assign | ( | const vGenerator & | rSrc | ) | [virtual] |
Copy from other vGenerator.
doxygen group The current implementation tries to be smart and copy attributes if types can be casted. Use CopyWithoutAttributes to explicitely ignore attributes.
rSrc | Source to copy from. |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 252 of file cfl_generator.cpp.
vGenerator & faudes::vGenerator::AssignWithoutAttributes | ( | const vGenerator & | rGen | ) | [virtual] |
Copy from other vGenerator, ignore attributes.
rGen | Source to copy from. |
Definition at line 295 of file cfl_generator.cpp.
StateSet faudes::vGenerator::BlockingStates | ( | void | ) | const |
Compute set of blocking states.
A state is considered blocking it is accessible but not coaccessible.
Definition at line 1997 of file cfl_generator.cpp.
Type test.
Uses C++ dynamic cast to test whether the specified object casts to a vGenerator.
Reimplemented from faudes::Type.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 185 of file cfl_generator.cpp.
void faudes::vGenerator::CheckAccessible | ( | StateSet & | accessibleset, | |
Idx | startState | |||
) | const [protected] |
Get accessible states by filling accessibleset recursive.
accessibleset | Reference to StateSet with accessibel states | |
startState | State index to start with |
Definition at line 1856 of file cfl_generator.cpp.
void faudes::vGenerator::CheckCoaccessible | ( | StateSet & | Coaccessibleset, | |
const TransSetX2EvX1 & | rtrel, | |||
Idx | startState | |||
) | const [protected] |
Get Coaccessible states by filling Coaccessibleset recursive.
Coaccessibleset | Reference to StateSet with coaccessibel states | |
rtrel | Reverse transition relation where x1 <-> x2 | |
startState | State index to start with |
Definition at line 1868 of file cfl_generator.cpp.
void faudes::vGenerator::Clear | ( | void | ) | [virtual] |
Clear generator data.
Clears state set, alphabet and transitionrealtion. Behavioural flags eg StateNamesEnabled are maintained.
Reimplemented from faudes::Type.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::Executor, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 553 of file cfl_generator.cpp.
void faudes::vGenerator::ClearAttributes | ( | void | ) | [virtual] |
void faudes::vGenerator::ClearEventAttributes | ( | void | ) | [virtual] |
Clear event attributes.
Definition at line 575 of file cfl_generator.cpp.
void faudes::vGenerator::ClearGlobalAttribute | ( | void | ) | [virtual] |
Clear global attribute.
Definition at line 565 of file cfl_generator.cpp.
void faudes::vGenerator::ClearInitStates | ( | void | ) |
Clear all mInitStates.
Definition at line 1365 of file cfl_generator.cpp.
void faudes::vGenerator::ClearMarkedStates | ( | void | ) |
Clear all marked states.
Definition at line 1440 of file cfl_generator.cpp.
void faudes::vGenerator::ClearMinStateIndexMap | ( | void | ) | const |
Clear minimal index map for 1:1 file io.
Definition at line 644 of file cfl_generator.cpp.
void faudes::vGenerator::ClearStateAttributes | ( | void | ) | [virtual] |
Clear state attributes.
Reimplemented in faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >.
Definition at line 570 of file cfl_generator.cpp.
void faudes::vGenerator::ClearStateNames | ( | void | ) |
Remove all names from generator's StateSymbolTable.
Definition at line 883 of file cfl_generator.cpp.
void faudes::vGenerator::ClearStates | ( | void | ) |
Clear all states and transitions, maintain alphabet.
Definition at line 594 of file cfl_generator.cpp.
void faudes::vGenerator::ClearTransAttributes | ( | void | ) | [virtual] |
Clear transition attributes.
Definition at line 580 of file cfl_generator.cpp.
void faudes::vGenerator::ClearTransRel | ( | void | ) |
Clear all transitions.
Definition at line 1564 of file cfl_generator.cpp.
void faudes::vGenerator::ClrEventAttribute | ( | Idx | index | ) | [virtual] |
Clear attribute for existing event.
index | Event index |
Definition at line 1584 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::ClrInitState | ( | StateSet::Iterator | pos | ) |
Unset an existing state as initial state by iterator.
pos | StateSet::iterator |
Definition at line 1359 of file cfl_generator.cpp.
void faudes::vGenerator::ClrInitState | ( | const std::string & | rName | ) |
Unset an existing state as initial state by name.
rName | State name |
Exception |
|
Definition at line 1345 of file cfl_generator.cpp.
void faudes::vGenerator::ClrInitState | ( | Idx | index | ) |
Unset an existing state as initial state by index.
Define FAUDES_CHECKED for consistency checks.
index | State index |
Exception |
|
Definition at line 1331 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::ClrMarkedState | ( | StateSet::Iterator | pos | ) |
Unset an existing state as marked state by iterator.
pos | StateSet::iterator |
Definition at line 1434 of file cfl_generator.cpp.
void faudes::vGenerator::ClrMarkedState | ( | const std::string & | rName | ) |
Unset an existing state as marked state by name.
rName | State name |
Exception |
|
Definition at line 1420 of file cfl_generator.cpp.
void faudes::vGenerator::ClrMarkedState | ( | Idx | index | ) |
Unset an existing state as marked state by index.
index | State index |
Exception |
|
Definition at line 1406 of file cfl_generator.cpp.
void faudes::vGenerator::ClrStateAttribute | ( | Idx | index | ) | [virtual] |
Clear attribute for existing state.
index | State index |
Definition at line 1597 of file cfl_generator.cpp.
void faudes::vGenerator::ClrStateName | ( | const std::string & | rName | ) |
Clear name for individual state.
rName | State name |
Definition at line 905 of file cfl_generator.cpp.
void faudes::vGenerator::ClrStateName | ( | Idx | index | ) |
Clear name for individual state.
index | State index |
Exception |
|
Definition at line 891 of file cfl_generator.cpp.
void faudes::vGenerator::ClrTransAttribute | ( | const Transition & | rTrans | ) | [virtual] |
Clear attribute for existing transition.
rTrans | transition |
Definition at line 1558 of file cfl_generator.cpp.
TransSet::Iterator faudes::vGenerator::ClrTransition | ( | TransSet::Iterator | it | ) |
Remove a transition by iterator.
it | TransSet::iterator |
Definition at line 1534 of file cfl_generator.cpp.
void faudes::vGenerator::ClrTransition | ( | const Transition & | rTrans | ) |
Remove a transition by transition object.
rTrans | Transition object |
Definition at line 1528 of file cfl_generator.cpp.
Remove a transition by indices.
x1 | Predecessor state index | |
ev | Event index | |
x2 | Successor state index |
Definition at line 1521 of file cfl_generator.cpp.
bool faudes::vGenerator::Coaccessible | ( | void | ) |
Make generator Coaccessible.
Definition at line 1934 of file cfl_generator.cpp.
StateSet faudes::vGenerator::CoaccessibleSet | ( | void | ) | const |
Compute set of Coaccessible states.
Definition at line 1920 of file cfl_generator.cpp.
bool faudes::vGenerator::Complete | ( | void | ) |
Make generator Complete.
This procedure removes all states that are guaranteed to evolve into a terminal state within a finite number of transitios. The current implementations in initialized by the set of terminal states and then performs a backward reachability analysis.
Definition at line 2027 of file cfl_generator.cpp.
void faudes::vGenerator::ConfigureAttributeTypes | ( | const AttributeVoid * | pNewGlobalPrototype, | |
const StateSet * | pNewStatesPrototype, | |||
const EventSet * | pNewAlphabetPrototype, | |||
const TransSet * | pNewTransRelPrototype | |||
) | [protected] |
Configure attribute types.
Definition at line 198 of file cfl_generator.cpp.
vGenerator * faudes::vGenerator::Copy | ( | void | ) | const [virtual] |
Construct copy on heap.
Technically not a constructor, this function creates a vGenerator with the same event symboltable. It is the callers responsebilty to delete the object when no longer needed. Derived classes must reimplement this function to create an object of the same class and the same event symboltable.
Reimplemented from faudes::Type.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TdiagGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioConstraint< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioController< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioEnvironment< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioPlant< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TioGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioConstraint< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioController< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioEnvironment< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::THioPlant< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 177 of file cfl_generator.cpp.
void faudes::vGenerator::DDotWrite | ( | const std::string & | rFileName | ) | const [virtual] |
Writes generator to dot input format (no re-indexing).
Variant of DotWrite() without re-indexing.
rFileName | File to write |
Exception |
|
Definition at line 2673 of file cfl_generator.cpp.
void faudes::vGenerator::DeleteCore | ( | void | ) | [protected, virtual] |
Free my heap members (attribute dependent types).
Definition at line 236 of file cfl_generator.cpp.
bool faudes::vGenerator::DelEvent | ( | const std::string & | rName | ) |
Delete event from generator by name.
mpEventSymbolTable stays untouched. Transitions containing event will be removed too.
rName | Name of event |
Definition at line 1121 of file cfl_generator.cpp.
bool faudes::vGenerator::DelEvent | ( | Idx | index | ) |
Delete event from generator by index.
mpEventSymbolTable stays untouched. Transitions containing event will be removed too.
index | Index of event |
Definition at line 1114 of file cfl_generator.cpp.
bool faudes::vGenerator::DelEventFromAlphabet | ( | Idx | index | ) |
Delete event from alphabet without consistency check.
The event is only deleted from mpAlphabet but not from transition relation.
index | Index of event |
Definition at line 1139 of file cfl_generator.cpp.
void faudes::vGenerator::DelEvents | ( | const EventSet & | rEvents | ) |
Delete a set of events from generator.
mpEventSymbolTable stays untouched. Transitions containing events will be removed too.
rEvents | EventSet containing events to remove |
Definition at line 1129 of file cfl_generator.cpp.
bool faudes::vGenerator::DelState | ( | const std::string & | rName | ) |
Delete a state from generator by name.
Cleans mpStates, mInitStates, mMarkedStates, mpTransRel and mpStateSymbolTable.
rName | Name of state to delete. Will be erased in mpStateSymbolTable too |
Exception |
|
Definition at line 1246 of file cfl_generator.cpp.
bool faudes::vGenerator::DelState | ( | Idx | index | ) |
Delete a state from generator by index.
Cleans mpStates, mInitStates, mMarkedStates, mpTransRel and mpStateSymbolTable.
index | Index of state to delete. |
Definition at line 1231 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::DelStateFromStates | ( | StateSet::Iterator | pos | ) |
Delete a state from generator without consistency check.
This removes the state from mpStates and mpStateSymbolTable but doesn't touch mpTransRel, mInitStates and mMarkedStates. Index to delete is given by iterator.
pos | StateSet::Iterator |
Definition at line 1289 of file cfl_generator.cpp.
bool faudes::vGenerator::DelStateFromStates | ( | Idx | index | ) |
Delete a state from generator without consistency check.
This removes the state from mpStates and mpStateSymbolTable but doesn't touch mpTransRel, mInitStates and mMarkedStates.
index | Index of state to delete. |
Definition at line 1282 of file cfl_generator.cpp.
void faudes::vGenerator::DelStates | ( | const StateSet & | rDelStates | ) |
Delete a set of states Cleans mpStates, mInitStates, mMarkedStates, mpTransrel, and mpStateSymboltable.
rDelStates | StateSet containing states aka indicees to delete |
Definition at line 1262 of file cfl_generator.cpp.
void faudes::vGenerator::DoDWrite | ( | TokenWriter & | rTw, | |
const std::string & | rLabel = "" , |
|||
const Type * | pContext = 0 | |||
) | const [protected, virtual] |
Write generator in debugging format to TokenWriter, see Type::DWrite for public wrappers.
Reimplement this method in derived classes to provide the std token io interface defined in the public section of Type.
rTw | Reference to TokenWriter | |
rLabel | Label of section to write | |
pContext | Write context to provide contextual information (ignored) |
Exception |
|
Reimplemented from faudes::Type.
Definition at line 2198 of file cfl_generator.cpp.
void faudes::vGenerator::DoRead | ( | TokenReader & | rTr, | |
const std::string & | rLabel = "" , |
|||
const Type * | pContext = 0 | |||
) | [protected, virtual] |
Read generator object from TokenReader, see Type::Read for public wrappers.
Virtual function for std token io interface. Context is ignored, label defaults to "Generator".
rTr | TokenReader to read from | |
rLabel | Section to read | |
pContext | Read context to provide contextual information (ignored) |
Exception |
|
Reimplemented from faudes::Type.
Reimplemented in faudes::Executor.
Definition at line 2765 of file cfl_generator.cpp.
void faudes::vGenerator::DoSWrite | ( | TokenWriter & | rTw | ) | const [protected, virtual] |
Write generator statistics as comment to TokenWriter, see Type::SWrite for public wrappers.
Reimplement this method in derived classes to provide the std token io interface defined in the public section of Type.
rTw | Reference to TokenWriter |
Exception |
|
Reimplemented from faudes::Type.
Reimplemented in faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >.
Definition at line 2597 of file cfl_generator.cpp.
void faudes::vGenerator::DotWrite | ( | const std::string & | rFileName | ) | const [virtual] |
Writes generator to dot input format.
The dot file format is specified by the graphiz package; see http://www.graphviz.org. The package includes the dot command line tool to generate a graphical representation of the generators graph. See also GraphWrite(). This functions sets the re-indexing to minimal indices.
rFileName | File to write |
Exception |
|
Reimplemented in faudes::TdiagGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >.
Definition at line 2613 of file cfl_generator.cpp.
void faudes::vGenerator::DoWrite | ( | TokenWriter & | rTw, | |
const std::string & | rLabel = "" , |
|||
const Type * | pContext = 0 | |||
) | const [protected, virtual] |
Write generator to TokenWriter, see Type::Write for public wrappers.
Virtual function for std token io interface. Context is ignored, label defaults to "Generator". If the tokenwriter writes to a file, state indices will be re-indext to start from 1.
rTw | Reference to TokenWriter | |
rLabel | Label of section to write | |
pContext | Write context to provide contextual information (ignored) |
Exception |
|
Reimplemented from faudes::Type.
Reimplemented in faudes::TdiagGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::Executor.
Definition at line 2163 of file cfl_generator.cpp.
void faudes::vGenerator::DoXWrite | ( | TokenWriter & | rTw, | |
const std::string & | rLabel = "" , |
|||
const Type * | pContext = 0 | |||
) | const [protected, virtual] |
Write generator to TokenWriter, see Type::XWrite for public wrappers.
Virtual function for std token io interface. Context is ignored, label defaults to "Generator". XML output allways uses reindex.
rTw | Reference to TokenWriter | |
rLabel | Label of section to write | |
pContext | Write context to provide contextual information (ignored) |
Exception |
|
Reimplemented from faudes::Type.
Definition at line 2228 of file cfl_generator.cpp.
void faudes::vGenerator::DWriteStateSet | ( | TokenWriter & | rTw, | |
const StateSet & | rStateSet | |||
) | const |
Write a stateset to TokenWriter (debug version, no re-indexing).
rTw | Reference to TokenWriter | |
rStateSet | Reference to stateset |
Exception |
|
Definition at line 2346 of file cfl_generator.cpp.
void faudes::vGenerator::DWriteTransRel | ( | TokenWriter & | rTw | ) | const |
Write transition relation to tokenwriter (debug version).
rTw | Reference to TokenWriter |
Exception |
|
Definition at line 2517 of file cfl_generator.cpp.
bool faudes::vGenerator::Empty | ( | void | ) | const |
Check if generator is empty (no states).
Definition at line 623 of file cfl_generator.cpp.
void faudes::vGenerator::EnforceStateNames | ( | const std::string & | rTemplate | ) |
For all states without a symbolic name, assign a name based on suggested template and the index.
rTemplate | basis for name generation |
Definition at line 937 of file cfl_generator.cpp.
std::string faudes::vGenerator::EStr | ( | Idx | index | ) | const |
Pretty printable event name for index (eg for debugging).
index | Event index |
Reimplemented in faudes::Executor.
Definition at line 3347 of file cfl_generator.cpp.
const AttributeVoid & faudes::vGenerator::EventAttribute | ( | const std::string & | rName | ) | const [virtual] |
Event attribute lookup.
In a context where the attribute type is known, you may prefer the TaGenerator method.
rName |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1673 of file cfl_generator.cpp.
const AttributeVoid & faudes::vGenerator::EventAttribute | ( | Idx | index | ) | const [virtual] |
Event attribute lookup.
In a context where the attribute type is known, you may prefer the TaGenerator method.
index |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1663 of file cfl_generator.cpp.
Set attribute for existing event.
This version uses a dynamic cast to test the actual type of the provided attribute. An exception is thrown for an invalid attribute type. In a context where the attribute type is known, you may prefer the TaGenerator method.
index | Event index | |
rAttr | New attribute |
Exception |
|
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1569 of file cfl_generator.cpp.
AttributeVoid * faudes::vGenerator::EventAttributep | ( | const std::string & | rName | ) | [virtual] |
Event attribute pointer to access Attribute methods.
If there are no attributes (plain vGenerator) this method returs 0. If there are attributes, an explicit default value may be inserted. In a context where the attribute type is known, you may prefer the TaGenerator method.
rName |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1678 of file cfl_generator.cpp.
AttributeVoid * faudes::vGenerator::EventAttributep | ( | Idx | index | ) | [virtual] |
Event attribute pointer to access Attribute methods.
If there are no attributes (plain vGenerator) this method returs 0. If there are attributes, an explicit default value may be inserted. In a context where the attribute type is known, you may prefer the TaGenerator method.
index |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1668 of file cfl_generator.cpp.
void faudes::vGenerator::EventAttributes | ( | const EventSet & | rEventSet | ) | [virtual] |
Set attributes for existing events.
This version uses a dynamic cast to test the actual type of the provided attributes. An exception is thrown for an invalid attribute type.
rEventSet | Set of attributed events |
Exception |
|
Definition at line 1577 of file cfl_generator.cpp.
Idx faudes::vGenerator::EventIndex | ( | const std::string & | rName | ) | const |
Event index lookup.
rName | Name of event to lookup |
Definition at line 752 of file cfl_generator.cpp.
void faudes::vGenerator::EventName | ( | Idx | index, | |
const std::string & | rName | |||
) |
Set name for existing event.
Note: since the event symboltable is global, this affect all generators that refer to the specified event.
index | Event index | |
rName | New name |
Exception |
|
Definition at line 762 of file cfl_generator.cpp.
std::string faudes::vGenerator::EventName | ( | Idx | index | ) | const |
Event name lookup.
index | Index of event to look up |
Reimplemented in faudes::Executor.
Definition at line 757 of file cfl_generator.cpp.
bool faudes::vGenerator::EventRename | ( | Idx | event, | |
const std::string & | rNewName | |||
) |
Rename event in this generator.
This method renames the specified event. It does so by removing and adding transitions. This does not effect other generators.
event | Event to rename | |
rNewName | New name |
Definition at line 785 of file cfl_generator.cpp.
void faudes::vGenerator::EventSymbolTablep | ( | const vGenerator & | rOtherGen | ) | [virtual] |
Set EventSymbolTable as given by rOtherGen.
This function sets the reference to the event symboltable. The current implementation clears the generator, future versions may implement a re-indexing.
rOtherGen | Other generator |
Definition at line 747 of file cfl_generator.cpp.
void faudes::vGenerator::EventSymbolTablep | ( | SymbolTable * | pSymTab | ) | [virtual] |
Set EventSymbolTable to be used by this vGenerator.
This function sets the reference to the event symboltable. The current implementation in derived classes clears the generator, future versions may implement a re-indexing.
pSymTab | Pointer to SymbolTable |
Definition at line 741 of file cfl_generator.cpp.
SymbolTable * faudes::vGenerator::EventSymbolTablep | ( | void | ) | const |
Get Pointer to EventSymbolTable currently used by this vGenerator.
doxygen group
Definition at line 731 of file cfl_generator.cpp.
bool faudes::vGenerator::ExistsEvent | ( | const std::string & | rName | ) | const |
Test existence of event in alphabet.
rName | Event name |
Definition at line 1608 of file cfl_generator.cpp.
bool faudes::vGenerator::ExistsEvent | ( | Idx | index | ) | const |
Test existence of event in alphabet.
index | Event index |
Definition at line 1603 of file cfl_generator.cpp.
bool faudes::vGenerator::ExistsInitState | ( | Idx | index | ) | const |
Test existence of state in mInitStates.
index | State index |
Definition at line 1643 of file cfl_generator.cpp.
bool faudes::vGenerator::ExistsMarkedState | ( | Idx | index | ) | const |
Test existence of state in mMarkedStates.
index | State index |
Definition at line 1653 of file cfl_generator.cpp.
bool faudes::vGenerator::ExistsState | ( | const std::string & | name | ) | const |
Test existence of state in state set.
name | State name |
Definition at line 1628 of file cfl_generator.cpp.
bool faudes::vGenerator::ExistsState | ( | Idx | index | ) | const |
Test existence of state in state set.
index | State index |
Definition at line 1623 of file cfl_generator.cpp.
bool faudes::vGenerator::ExistsTransition | ( | const Transition & | rTrans | ) | const |
test for transition
rTrans | transition |
Definition at line 1024 of file cfl_generator.cpp.
Test for transition given by x1, ev, x2.
x1 | Predecessor state | |
ev | Event | |
x2 | Successor state |
Definition at line 1029 of file cfl_generator.cpp.
bool faudes::vGenerator::ExistsTransition | ( | const std::string & | rX1, | |
const std::string & | rEv, | |||
const std::string & | rX2 | |||
) | const |
Test for transition given by x1, ev, x2.
rX1 | name of Predecessor state | |
rEv | name of Event | |
rX2 | name of Successor state |
Definition at line 1034 of file cfl_generator.cpp.
EventSet::Iterator faudes::vGenerator::FindEvent | ( | const std::string & | rName | ) | const |
Returns a iterator to event index in alphabet.
rName | Event name of index to find |
Definition at line 1618 of file cfl_generator.cpp.
EventSet::Iterator faudes::vGenerator::FindEvent | ( | Idx | index | ) | const |
Returns a iterator to event index in alphabet.
index | Index to find |
Definition at line 1613 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::FindInitState | ( | Idx | index | ) | const |
Iterator to state index in mInitStates.
index | Index to find |
Definition at line 1648 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::FindMarkedState | ( | Idx | index | ) | const |
Returns a iterator to state index in mMarkedStates.
index | Index to find |
Definition at line 1658 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::FindState | ( | const std::string & | rName | ) | const |
Returns a iterator to state with specified name.
rName | name of state to find |
Definition at line 1633 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::FindState | ( | Idx | index | ) | const |
Returns a iterator to state index in state set.
index | Index to find |
Definition at line 1638 of file cfl_generator.cpp.
TransSet::Iterator faudes::vGenerator::FindTransition | ( | const Transition & | rTrans | ) | const |
Iterator to transition.
rTrans | transition |
Definition at line 1007 of file cfl_generator.cpp.
TransSet::Iterator faudes::vGenerator::FindTransition | ( | Idx | x1, | |
Idx | ev, | |||
Idx | x2 | |||
) | const |
Iterator to transition given by x1, ev, x2.
x1 | Predecessor state | |
ev | Event | |
x2 | Successor state |
Definition at line 1012 of file cfl_generator.cpp.
TransSet::Iterator faudes::vGenerator::FindTransition | ( | const std::string & | rX1, | |
const std::string & | rEv, | |||
const std::string & | rX2 | |||
) | const |
iterator to transition given by x1, ev, x2
rX1 | name of Predecessor state | |
rEv | name of Event | |
rX2 | name of Successor state |
Definition at line 1017 of file cfl_generator.cpp.
const AttributeVoid & faudes::vGenerator::GlobalAttribute | ( | void | ) | const [virtual] |
Global attribute lookup.
In a context where the attribute type is known, you may prefer the TaGenerator method.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1712 of file cfl_generator.cpp.
void faudes::vGenerator::GlobalAttribute | ( | const Type & | rAttr | ) | [virtual] |
Set global attribute.
The vGenerator does not have attributes, so this function throws an exception for any specified attribute different to AttributeVoid. The TaGenarator provides a re-implementation to actually set the global attribute.
rAttr | Attribute |
Exception |
|
Definition at line 1693 of file cfl_generator.cpp.
AttributeVoid * faudes::vGenerator::GlobalAttributep | ( | void | ) | [virtual] |
Get attribute pointer The global attribute allways exits.
For the vGenerator its of type AttributeVoid, the TaGenerator sets a nontrivial type. In a context where the attribute type is known, you may prefer the TaGenerator method.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1718 of file cfl_generator.cpp.
void faudes::vGenerator::GlobalAttributeTry | ( | const Type & | rAttr | ) | [virtual] |
Set global attribute.
The vGenerator does not have attributes, so this function does nothing. The TaGenarator provides a re-implementation to actually set the global attribute.
rAttr | Attribute |
Definition at line 1705 of file cfl_generator.cpp.
SymbolTable * faudes::vGenerator::GlobalEventSymbolTablep | ( | void | ) | [static] |
Get Pointer to global EventSymbolTable.
This is a static member of SymbolTable and used as default for all derived generator classes and instantiated objects.
Definition at line 736 of file cfl_generator.cpp.
const AttributeVoid & faudes::vGenerator::GlobalVoid | ( | void | ) | [static, protected] |
Static default global attribute prototype (configures global attribute type).
Definition at line 51 of file cfl_generator.cpp.
void faudes::vGenerator::GraphWrite | ( | const std::string & | rFileName, | |
const std::string & | rOutFormat = "" , |
|||
const std::string & | rDotExec = "dot" | |||
) | const |
Produce graphical representation of this generator.
This method calls the generator's DotWrite function and then processes the output with the dot tool from graphiz package. If no output format is given, try to guess from filename extension. See also ProcessDot().
rFileName | Name of output file | |
rOutFormat | Graphics file format, eg "png", "jpg", "svg" | |
rDotExec | path/name of executable |
Exception |
|
Definition at line 3365 of file cfl_generator.cpp.
Idx faudes::vGenerator::InitState | ( | void | ) | const |
Return initial state.
If the initial state is not unique, this function returns 0.
Definition at line 1042 of file cfl_generator.cpp.
const StateSet & faudes::vGenerator::InitStates | ( | void | ) | const |
StateSet::Iterator faudes::vGenerator::InitStatesBegin | ( | void | ) | const |
Iterator to Begin() of mInitStates.
Definition at line 1050 of file cfl_generator.cpp.
bool faudes::vGenerator::InitStatesEmpty | ( | void | ) | const |
Check if set of initial states are empty.
Definition at line 633 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::InitStatesEnd | ( | void | ) | const |
Iterator to End() of mInitStates.
Definition at line 1055 of file cfl_generator.cpp.
Idx faudes::vGenerator::InitStatesSize | ( | void | ) | const |
Get number of initial states.
Definition at line 608 of file cfl_generator.cpp.
std::string faudes::vGenerator::InitStatesToString | ( | void | ) | const |
Write set of initial states to a string (no re-indexing).
Exception |
|
Definition at line 2442 of file cfl_generator.cpp.
void faudes::vGenerator::InjectAlphabet | ( | const EventSet & | rNewalphabet | ) |
Set mpAlphabet without consistency check.
Sets the alphabet incl attributes, if provided.
rNewalphabet | EventSet with new alphabet |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1070 of file cfl_generator.cpp.
void faudes::vGenerator::InjectInitStates | ( | const StateSet & | rNewInitStates | ) |
Replace mInitStates with StateSet given as parameter without consistency checks.
rNewInitStates | StateSet containing new mInitStates |
Definition at line 1323 of file cfl_generator.cpp.
void faudes::vGenerator::InjectMarkedStates | ( | const StateSet & | rNewMarkedStates | ) |
Replace mMarkedStates with StateSet given as parameter without consistency checks.
rNewMarkedStates | StateSet containing new marked states |
Definition at line 1398 of file cfl_generator.cpp.
void faudes::vGenerator::InjectState | ( | Idx | index | ) |
Inject an existing state index into generators mStates Use with care! For use in performance optimized functions.
index | State index to inject |
Definition at line 1166 of file cfl_generator.cpp.
void faudes::vGenerator::InjectStates | ( | const StateSet & | rNewStates | ) |
Inject a complete state set without consistency checks (without attributes).
rNewStates | StateSet |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1172 of file cfl_generator.cpp.
void faudes::vGenerator::InjectTransition | ( | const Transition & | rTrans | ) |
Set transition without consistency check.
rTrans | Transition to insert |
Definition at line 1445 of file cfl_generator.cpp.
void faudes::vGenerator::InjectTransRel | ( | const TransSet & | rNewtransrel | ) |
Set transition relation without consistency check (no attributes).
rNewtransrel | TransRel to insert |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1451 of file cfl_generator.cpp.
Idx faudes::vGenerator::InsEvent | ( | const std::string & | rName | ) |
Add named event to generator.
An entry in the mpEventSymbolTable will be made if event name is not known so far.
rName | Name of the event to add |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1103 of file cfl_generator.cpp.
bool faudes::vGenerator::InsEvent | ( | Idx | index | ) |
Add an existing event to alphabet by index.
doxygen group It is an error to insert an event index that is not known to the mpEventSymbolTable.
index | Event index |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1097 of file cfl_generator.cpp.
void faudes::vGenerator::InsEvents | ( | const EventSet & | events | ) |
Add new named events to generator.
If the event allready exists, the attribute is maintained.
events | EventSet |
Definition at line 1109 of file cfl_generator.cpp.
Idx faudes::vGenerator::InsInitState | ( | const std::string & | rName | ) |
Create a new named state and set as initial state.
rName | Name of the state to add |
Definition at line 1190 of file cfl_generator.cpp.
bool faudes::vGenerator::InsInitState | ( | Idx | index | ) |
Add (perhaps new) state to generator and turn it into a initial state.
index | State to insert |
Definition at line 1199 of file cfl_generator.cpp.
Idx faudes::vGenerator::InsInitState | ( | void | ) |
Create new anonymous state and set as initial state.
Definition at line 1181 of file cfl_generator.cpp.
Idx faudes::vGenerator::InsMarkedState | ( | const std::string & | rName | ) |
Create a new named state and set as marked state.
rName | Name of the state to add |
Definition at line 1222 of file cfl_generator.cpp.
bool faudes::vGenerator::InsMarkedState | ( | Idx | index | ) |
Add (perhaps new) state to generator and turn it into a marked state.
index | State to insert |
Definition at line 1215 of file cfl_generator.cpp.
Idx faudes::vGenerator::InsMarkedState | ( | void | ) |
Create new anonymous state and set as marked state.
Definition at line 1206 of file cfl_generator.cpp.
Idx faudes::vGenerator::InsState | ( | const std::string & | rName | ) |
Add new named state to generator.
rName | Name of the state to add |
Exception | Name already exists (id 44) |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1158 of file cfl_generator.cpp.
bool faudes::vGenerator::InsState | ( | Idx | index | ) |
Add (perhaps new) state to generator.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1152 of file cfl_generator.cpp.
Idx faudes::vGenerator::InsState | ( | void | ) |
Add new anonymous state to generator.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1146 of file cfl_generator.cpp.
bool faudes::vGenerator::IsAccessible | ( | void | ) | const |
Check if generator is accessible.
Definition at line 1908 of file cfl_generator.cpp.
bool faudes::vGenerator::IsCoaccessible | ( | void | ) | const |
Check if generator is Coaccessible.
Definition at line 1950 of file cfl_generator.cpp.
bool faudes::vGenerator::IsComplete | ( | const StateSet & | rStates | ) | const |
Check if generator is complete.
Same as IsComplete(void), however, only the specified states are considered. The rational is to e.g. apply the test to accessible states only. In that case, the test is equivalent to completeness of the generated language.
rStates | Set of state indices to restrict the completeness test |
Definition at line 2006 of file cfl_generator.cpp.
bool faudes::vGenerator::IsComplete | ( | void | ) | const |
Check if generator is complete.
A generator is considered complete, if each state has at least one successor state. If the generator is trim, completeness is equivalent to completeness of the markede language, ie forall s in Lm(G) there exists r in Lm(G) with s<r
Definition at line 2022 of file cfl_generator.cpp.
bool faudes::vGenerator::IsDeterministic | ( | void | ) | const |
Check if generator is deterministic.
We require the transition relation to be a partial function and at most one initial state.
Note: pre 2.19 libFAUDES also insisted in exactly one initial state.
Definition at line 2117 of file cfl_generator.cpp.
bool faudes::vGenerator::IsOmegaTrim | ( | void | ) | const |
Check if generator is omega-trim.
Returns true if all states are accessible, coacessible, and have a successor state.
Definition at line 2105 of file cfl_generator.cpp.
bool faudes::vGenerator::IsTrim | ( | void | ) | const |
Check if generator is trim.
Returns true if all states are rechable and coreachale.
Definition at line 1987 of file cfl_generator.cpp.
const StateSet & faudes::vGenerator::MarkedStates | ( | void | ) | const |
Return const ref of marked states.
Definition at line 1760 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::MarkedStatesBegin | ( | void | ) | const |
Iterator to Begin() of mMarkedStates.
Definition at line 1060 of file cfl_generator.cpp.
bool faudes::vGenerator::MarkedStatesEmpty | ( | void | ) | const |
Check if set of marked states are empty.
Definition at line 638 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::MarkedStatesEnd | ( | void | ) | const |
Iterator to End() of mMarkedStates.
Definition at line 1065 of file cfl_generator.cpp.
Idx faudes::vGenerator::MarkedStatesSize | ( | void | ) | const |
Get number of marked states.
Definition at line 613 of file cfl_generator.cpp.
std::string faudes::vGenerator::MarkedStatesToString | ( | void | ) | const |
Write set of marked states to a string (no re-indexing).
Exception |
|
Definition at line 2437 of file cfl_generator.cpp.
Idx faudes::vGenerator::MaxStateIndex | ( | void | ) | const |
Get maximum state index used in this generator.
Returns 0 if no states at all.
Definition at line 724 of file cfl_generator.cpp.
void faudes::vGenerator::MinimizeAlphabet | ( | void | ) |
Set the alphabet to used events.
Definition at line 1765 of file cfl_generator.cpp.
Get state index as is it will be written to file.
index | state index |
Definition at line 713 of file cfl_generator.cpp.
Get state index translation map.
Definition at line 652 of file cfl_generator.cpp.
void faudes::vGenerator::Move | ( | vGenerator & | rGen | ) | [virtual] |
Destructive copy to other vGenerator.
Copy method with increased performance at the cost of invalidating the source data. If attribute types of source and destination differ, a std copy is invoked.
rGen | Destination for copy operation. |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 325 of file cfl_generator.cpp.
const std::string & faudes::vGenerator::Name | ( | void | ) | const [virtual] |
Get generator's name.
Reimplemented from faudes::Type.
Reimplemented in faudes::Executor.
Definition at line 503 of file cfl_generator.cpp.
void faudes::vGenerator::Name | ( | const std::string & | rName | ) | [virtual] |
Set the generator's name.
doxygen group
rName | Generator name |
Reimplemented from faudes::Type.
Definition at line 497 of file cfl_generator.cpp.
vGenerator * faudes::vGenerator::New | ( | void | ) | const [virtual] |
Construct on heap.
Technically not a constructor, this function creates a vGenerator with the same event symboltable. It is the callers responsebilty to delete the object when no longer needed. Derived classes must reimplement this function to create an object of the same class and the same event symboltable.
Reimplemented from faudes::Type.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TdiagGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioConstraint< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioController< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioEnvironment< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioPlant< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TioGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioConstraint< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioController< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioEnvironment< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::THioPlant< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 165 of file cfl_generator.cpp.
void faudes::vGenerator::NewCore | ( | void | ) | [protected, virtual] |
Allocate my heap members (attribute dependent types).
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 220 of file cfl_generator.cpp.
EventSet faudes::vGenerator::NewEventSet | ( | void | ) | const |
Create EventSet with generator's EventSymbolTable (on stack).
Definition at line 831 of file cfl_generator.cpp.
EventSet * faudes::vGenerator::NewEventSetp | ( | void | ) | const |
Create EventSet with generator's EventSymbolTable (on heap).
Definition at line 838 of file cfl_generator.cpp.
bool faudes::vGenerator::OmegaTrim | ( | void | ) |
Make generator omega-trim.
This function removes states such that the generator becomes omega trim while not affecting the induced omega language.
The implementation first make the generator accessible and then iteratively removes state that either never reach a marked state or that are guaranteed to eventually reach a terminal state. There might be a more efficient approach.
Definition at line 2084 of file cfl_generator.cpp.
bool faudes::vGenerator::operator< | ( | const vGenerator & | rOtherGen | ) | const [inline] |
Order for sorting containers of generators.
Definition at line 2690 of file cfl_generator.h.
vGenerator & faudes::vGenerator::operator= | ( | const vGenerator & | rOtherGen | ) | [virtual] |
Assignment operator (uses Copy method) Note: you must reimplement this operator in derived classes in order to handle internal pointers correctly.
rOtherGen | Other generator |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TdiagGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioConstraint< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioController< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioEnvironment< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioPlant< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TioGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioConstraint< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioController< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioEnvironment< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::THioPlant< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 374 of file cfl_generator.cpp.
void faudes::vGenerator::ReadAlphabet | ( | TokenReader & | rTr | ) | [protected] |
Read the generator's alphabet from a TokenReader.
rTr | Reference to TokenReader |
Exception |
|
Definition at line 2844 of file cfl_generator.cpp.
void faudes::vGenerator::ReadAlphabet | ( | const std::string & | rFileName | ) | [protected] |
Read the generator's alphabet from a file.
rFileName | File to read from |
Exception |
|
Definition at line 2838 of file cfl_generator.cpp.
void faudes::vGenerator::ReadGeneratorName | ( | TokenReader & | rTr | ) | [protected] |
Read the generator's name from a TokenReader.
rTr | Reference to TokenReader |
Exception |
|
Definition at line 2831 of file cfl_generator.cpp.
void faudes::vGenerator::ReadGeneratorName | ( | const std::string & | rFileName | ) | [protected] |
Read the generator's name from a file.
rFileName | File to read from |
Exception |
|
Definition at line 2824 of file cfl_generator.cpp.
void faudes::vGenerator::ReadStates | ( | TokenReader & | rTr | ) | [protected] |
Read the generator's stateset from a TokenReader.
This sets up the StateSymbolTable
rTr | Reference to TokenReader |
Exception |
|
Definition at line 2857 of file cfl_generator.cpp.
void faudes::vGenerator::ReadStates | ( | const std::string & | rFileName | ) | [protected] |
Read the generator's state set from a file.
This sets up the StateSymbolTable.
rFileName | File to read from |
Exception |
|
Definition at line 2851 of file cfl_generator.cpp.
void faudes::vGenerator::ReadStateSet | ( | TokenReader & | rTr, | |
const std::string & | rLabel, | |||
StateSet & | rStateSet | |||
) | const |
Read a state set.
Refer to the generators state symboltable while reading a state set. Ignore any attributes.
rTr | Reference to TokenReader | |
rLabel | Label of set in source | |
rStateSet | Destination state set |
Exception |
|
Definition at line 2954 of file cfl_generator.cpp.
void faudes::vGenerator::ReadTransRel | ( | TokenReader & | rTr | ) | [protected] |
Read the generator's transition relation from a TokenReader.
rTr | Reference to TokenReader |
Exception |
|
Definition at line 3161 of file cfl_generator.cpp.
void faudes::vGenerator::ReadTransRel | ( | const std::string & | rFileName | ) | [protected] |
Read the generator's transition relation from a file.
rFileName | File to read from |
Exception |
|
Definition at line 3155 of file cfl_generator.cpp.
void faudes::vGenerator::ReindexOnWrite | ( | bool | flag | ) |
Enable/disable minimal state indicees for file-i/o.
When writing files, libFAUDES will by default re-index the state set in order to have consecutively indexed states. This behaviour can be configured by ReindexOnWrite(bool)
flag | True enables reindexing. |
Definition at line 2146 of file cfl_generator.cpp.
bool faudes::vGenerator::ReindexOnWrite | ( | void | ) | const |
Test whether file-i/o uses minimal state indicees.
Definition at line 2141 of file cfl_generator.cpp.
bool faudes::vGenerator::ReindexOnWriteDefault | ( | void | ) | [static] |
Enable/disable reindexing states for file-i/o.
Set default value for re-indexing.
Definition at line 2156 of file cfl_generator.cpp.
void faudes::vGenerator::ReindexOnWriteDefault | ( | bool | flag | ) | [static] |
Enable/disable reindexing states for file-i/o.
Set default value for re-indexing.
flag | True enables reindexing. |
Definition at line 2151 of file cfl_generator.cpp.
void faudes::vGenerator::RestrictAlphabet | ( | const EventSet & | rNewalphabet | ) |
Restricts mpAlphabet without consistency check.
Maintains attributes if any.
rNewalphabet | EventSet with alphabet |
Definition at line 1084 of file cfl_generator.cpp.
void faudes::vGenerator::SetDefaultStateNames | ( | void | ) |
Assign each state a default name based on its index.
Definition at line 928 of file cfl_generator.cpp.
void faudes::vGenerator::SetInitState | ( | const std::string & | rName | ) |
Set an existing state as initial state by name.
rName | Name of state to set as initial state |
Exception |
|
Definition at line 1309 of file cfl_generator.cpp.
void faudes::vGenerator::SetInitState | ( | Idx | index | ) |
Set an existing state as initial state by index.
index | Index of state to set as initial state |
Exception |
|
Definition at line 1295 of file cfl_generator.cpp.
void faudes::vGenerator::SetMarkedState | ( | const std::string & | rName | ) |
Set an existing state as marked state by name.
rName | Name of state to set as marked state |
Exception |
|
Definition at line 1384 of file cfl_generator.cpp.
void faudes::vGenerator::SetMarkedState | ( | Idx | index | ) |
Set an existing state as marked state by index.
index | Index of state to set as initial state |
Exception |
|
Definition at line 1370 of file cfl_generator.cpp.
void faudes::vGenerator::SetMinStateIndexMap | ( | void | ) | const |
Set minimal index map for file io of generator states.
This function is implemented as fake-const to allow for const Write function.
Definition at line 658 of file cfl_generator.cpp.
bool faudes::vGenerator::SetTransition | ( | const Transition & | rTransition | ) |
Add a transition to generator.
States and event must already exist.
rTransition | Transition |
Exception |
|
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1494 of file cfl_generator.cpp.
bool faudes::vGenerator::SetTransition | ( | const std::string & | rX1, | |
const std::string & | rEv, | |||
const std::string & | rX2 | |||
) |
Add a transition to generator by names.
Statename and eventname must already exist.
rX1 | Predecessor state name | |
rEv | Event name | |
rX2 | Successor state name |
Exception |
|
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1458 of file cfl_generator.cpp.
Add a transition to generator by indices.
States and event must already exist.
x1 | Predecessor state index | |
ev | Event index | |
x2 | Successor state index |
Exception |
|
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1489 of file cfl_generator.cpp.
Idx faudes::vGenerator::Size | ( | void | ) | const |
Get generator size (number of states).
Definition at line 548 of file cfl_generator.cpp.
std::string faudes::vGenerator::SStr | ( | Idx | index | ) | const |
Return pretty printable state name for index (eg for debugging).
index | State index |
Reimplemented in faudes::Executor.
Definition at line 3352 of file cfl_generator.cpp.
const AttributeVoid & faudes::vGenerator::StateAttribute | ( | Idx | index | ) | const [virtual] |
State attribute lookup.
In a context where the attribute type is known, you may prefer the TaGenerator method.
index | State index |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1683 of file cfl_generator.cpp.
Set attribute for existing state.
This version uses a dynamic cast to test the actual type of the provided attribute. An exception is thrown for an invalid attribute type. In a context where the attribute type is known, you may prefer the TaGenerator method.
index | State index | |
rAttr | New attribute |
Exception |
|
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1590 of file cfl_generator.cpp.
AttributeVoid * faudes::vGenerator::StateAttributep | ( | Idx | index | ) | [virtual] |
State attribute pointer to access Attribute methods.
If there are no attributes (plain vGenerator) this method returns 0. If there are attributes, an explicit default value may be inserted. In a context where the attribute type is known, you may prefer the TaGenerator method.
index | State index |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1688 of file cfl_generator.cpp.
Idx faudes::vGenerator::StateIndex | ( | const std::string & | rName | ) | const |
State index lookup.
rName |
Definition at line 857 of file cfl_generator.cpp.
void faudes::vGenerator::StateName | ( | Idx | index, | |
const std::string & | rName | |||
) |
Set name of state.
index | Index | |
rName | Name |
Exception |
|
Definition at line 867 of file cfl_generator.cpp.
std::string faudes::vGenerator::StateName | ( | Idx | index | ) | const |
State name lookup.
index |
Reimplemented in faudes::Executor.
Definition at line 862 of file cfl_generator.cpp.
void faudes::vGenerator::StateNamesEnabled | ( | bool | flag | ) |
Enable/disable libFAUEDS functions to automatically generate state names.
flag | True enables statenames / false disables them |
Definition at line 918 of file cfl_generator.cpp.
bool faudes::vGenerator::StateNamesEnabled | ( | void | ) | const |
Whether libFAUEDS functions are requested to generate state names.
Most libFAUDES functions introduce new states to a generator can be enabled to also assign (more or less sensible) names to those states. This feature is purely cosmetic and may be disabled for performance reasons.
Definition at line 913 of file cfl_generator.cpp.
void faudes::vGenerator::StateNamesEnabledDefault | ( | bool | flag | ) | [static] |
Sets the default for automatic state name generation.
This flag takes effect only on generators newly created by the default constructor. The copy constructor copies the state name flag from the source generator. See also StateNamesEnabled(bool).
flag | True enables statenames / false disables them |
Definition at line 923 of file cfl_generator.cpp.
const StateSet & faudes::vGenerator::States | ( | void | ) | const |
Return reference to state set.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1730 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::StatesBegin | ( | void | ) | const |
Iterator to Begin() of state set.
Definition at line 967 of file cfl_generator.cpp.
StateSet::Iterator faudes::vGenerator::StatesEnd | ( | void | ) | const |
Iterator to End() of state set.
Definition at line 972 of file cfl_generator.cpp.
std::string faudes::vGenerator::StateSetToString | ( | const StateSet & | rStateSet | ) | const |
Write a stateset to string (no re-indexing).
Uses WriteStateSet(TokenWriter& rTw, const StateSet&) const to write the specified state set to a string referring to this generators state names.
rStateSet | Reference to stateset |
Exception |
|
Definition at line 2281 of file cfl_generator.cpp.
std::string faudes::vGenerator::StateSetToText | ( | const StateSet & | rStateSet | ) | const |
Write a stateset to formated text (no re-indexing).
Uses WriteStateSet(TokenWriter& rTw, const StateSet&) const to write the specified state set to a string referring to this generators state names.
rStateSet | Reference to stateset |
Exception |
|
Definition at line 2288 of file cfl_generator.cpp.
std::string faudes::vGenerator::StatesToString | ( | void | ) | const |
Write stateset of this generator to a string (no re-indexing).
Exception |
|
Definition at line 2427 of file cfl_generator.cpp.
std::string faudes::vGenerator::StatesToText | ( | void | ) | const |
Write stateset of this generator to formated text (no re-indexing).
Exception |
|
Definition at line 2432 of file cfl_generator.cpp.
const StateSet & faudes::vGenerator::StatesVoid | ( | void | ) | [static, protected] |
Static default state set prototype (incl.
attribute type)
Definition at line 43 of file cfl_generator.cpp.
void faudes::vGenerator::StateSymbolTable | ( | const SymbolTable & | rSymTab | ) |
Set StateSymbolTable.
By convention, state names and indices are local to the respective generator. It is most unlikely that you want to use this function.
Definition at line 851 of file cfl_generator.cpp.
const SymbolTable & faudes::vGenerator::StateSymbolTable | ( | void | ) | const |
Get StateSymbolTable.
doxygen group
Definition at line 846 of file cfl_generator.cpp.
Return the successor state of state x1 with event ev.
If no such transition exists, return 0. If multiple such transitions exit, throug expection.
Exception |
|
Definition at line 1839 of file cfl_generator.cpp.
Compute set of terminal states.
A terminal state is a state with no successor state. This function returns the the set terminal states contained in the specified state ste.
rStates | Set of state indices to restrict the search |
Definition at line 2058 of file cfl_generator.cpp.
StateSet faudes::vGenerator::TerminalStates | ( | void | ) | const |
Compute set of terminal states.
A terminal state is a state with no successor state. If and only if the set of terminal states is empty, the generator is complete.
Definition at line 2078 of file cfl_generator.cpp.
const AttributeVoid & faudes::vGenerator::TransAttribute | ( | const Transition & | rTrans | ) | const [virtual] |
Transition attribute lookup.
In a context where the attribute type is known, you may prefer the TaGenerator method.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1553 of file cfl_generator.cpp.
void faudes::vGenerator::TransAttribute | ( | const Transition & | rTrans, | |
const Type & | rAttr | |||
) | [virtual] |
Set attribute for existing transition.
This version uses a dynamic cast to test the actual type of the provided attribute. An exception is thrown for an invalid attribute type. In a context where the attribute type is known, you may prefer the TaGenerator method.
rTrans | Transition | |
rAttr | New attribute |
Exception |
|
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1540 of file cfl_generator.cpp.
AttributeVoid * faudes::vGenerator::TransAttributep | ( | const Transition & | rTrans | ) | [virtual] |
Transition attribute pointer to access Attribute methods.
If there are no attributes (plain vGenerator) this method returns 0. If there are attributes, an explicit default value may be inserted. In a context where the attribute type is known, you may prefer the TaGenerator method.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1547 of file cfl_generator.cpp.
Transition faudes::vGenerator::TransitionByNames | ( | const std::string & | rX1, | |
const std::string & | rEv, | |||
const std::string & | rX2 | |||
) | const |
Convebience function.
rX1 | Name of Predecessor state | |
rEv | Name of Event | |
rX2 | Name of Successor state |
Definition at line 1749 of file cfl_generator.cpp.
void faudes::vGenerator::TransRel | ( | TransSetX1X2Ev & | res | ) | const |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
void faudes::vGenerator::TransRel | ( | TransSetX2X1Ev & | res | ) | const |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
void faudes::vGenerator::TransRel | ( | TransSetX2EvX1 & | res | ) | const |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
void faudes::vGenerator::TransRel | ( | TransSetEvX2X1 & | res | ) | const |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1743 of file cfl_generator.cpp.
void faudes::vGenerator::TransRel | ( | TransSetEvX1X2 & | res | ) | const |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1742 of file cfl_generator.cpp.
void faudes::vGenerator::TransRel | ( | TransSetX1EvX2 & | res | ) | const |
Get copy of trantision relation sorted by other compare operator, e.g.
"x2,ev,x1"
res | resulting transition relation |
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1741 of file cfl_generator.cpp.
const TransSet & faudes::vGenerator::TransRel | ( | void | ) | const |
Return reference to transition relation.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1735 of file cfl_generator.cpp.
TransSet::Iterator faudes::vGenerator::TransRelBegin | ( | Idx | x1, | |
Idx | ev | |||
) | const |
iterator to begin of transitions with x1 as predecessor state and event ev.
x1 | Predecessor state | |
ev | Event |
Definition at line 997 of file cfl_generator.cpp.
TransSet::Iterator faudes::vGenerator::TransRelBegin | ( | Idx | x1 | ) | const |
Iterator to begin of transitions with x1 as predecessor state.
x1 | Predecessor state |
Definition at line 987 of file cfl_generator.cpp.
TransSet::Iterator faudes::vGenerator::TransRelBegin | ( | void | ) | const |
Iterator to Begin() of transition relation.
Definition at line 977 of file cfl_generator.cpp.
bool faudes::vGenerator::TransRelEmpty | ( | void | ) | const |
Check if transition relation is empty.
Definition at line 628 of file cfl_generator.cpp.
TransSet::Iterator faudes::vGenerator::TransRelEnd | ( | Idx | x1, | |
Idx | ev | |||
) | const |
Iterator to end of transitions with x1 as predecessor state and event ev.
Note: Set the End(x1,ev) iterator to a variable, so it won't be recalculated every iteration.
x1 | Predecessor state | |
ev | Event |
Definition at line 1002 of file cfl_generator.cpp.
TransSet::Iterator faudes::vGenerator::TransRelEnd | ( | Idx | x1 | ) | const |
iterator to end of transitions with x1 as predecessor state.
Note: Set the End(x1) iterator to a variable, so it won't be recalculated every iteration.
x1 | Predecessor state |
Definition at line 992 of file cfl_generator.cpp.
TransSet::Iterator faudes::vGenerator::TransRelEnd | ( | void | ) | const |
Iterator to End() of transition relation.
Definition at line 982 of file cfl_generator.cpp.
Idx faudes::vGenerator::TransRelSize | ( | void | ) | const |
Get number of transitions.
Definition at line 603 of file cfl_generator.cpp.
Return the successor states of state x1 with event ev.
Definition at line 1827 of file cfl_generator.cpp.
Return the successor states of state x1.
Definition at line 1816 of file cfl_generator.cpp.
StateSet faudes::vGenerator::TransRelStateSpace | ( | void | ) | const |
Return the states covered by transitions.
Definition at line 1805 of file cfl_generator.cpp.
std::string faudes::vGenerator::TransRelToString | ( | void | ) | const |
Write transition relation to string (no re-indexing).
Definition at line 2454 of file cfl_generator.cpp.
std::string faudes::vGenerator::TransRelToText | ( | void | ) | const |
Write transition relation to formated text (no re-indexing).
Definition at line 2461 of file cfl_generator.cpp.
const TransSet & faudes::vGenerator::TransRelVoid | ( | void | ) | [static, protected] |
Static default transition relation prototype (incl.
attribute type)
Definition at line 47 of file cfl_generator.cpp.
bool faudes::vGenerator::Trim | ( | void | ) |
Make generator trim.
This function removes all states are not accessible or not coaccessible. In other words: only those states are kept, that contribute to that marked language.
Definition at line 1971 of file cfl_generator.cpp.
StateSet faudes::vGenerator::TrimSet | ( | void | ) | const |
Compute set of trim states.
Definition at line 1962 of file cfl_generator.cpp.
std::string faudes::vGenerator::TStr | ( | const Transition & | rTrans | ) | const |
Return pretty printable transition (eg for debugging).
rTrans | Transition |
Definition at line 3359 of file cfl_generator.cpp.
std::string faudes::vGenerator::UniqueEventName | ( | const std::string & | rName | ) | const |
Create a new unique symbolic event name.
See also SymbolTable::UniqueSymbol().
rName | suggestion for new state name |
Definition at line 777 of file cfl_generator.cpp.
std::string faudes::vGenerator::UniqueStateName | ( | const std::string & | rName | ) | const |
Create a new unique symbolic state name.
See also SymbolTable::UniqueSymbol().
rName | suggestion for new state name |
Definition at line 949 of file cfl_generator.cpp.
EventSet faudes::vGenerator::UnusedEvents | ( | void | ) | const |
virtual bool faudes::vGenerator::UpdateAttributes | ( | void | ) | [inline, virtual] |
Updates internal attributes.
This method does nothing and may be reimplemented by a any class that adds semantics to attributes Eg. you may set a particular state flag, if this state is reachable.
Reimplemented in faudes::THioConstraint< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioController< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioEnvironment< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioPlant< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TioGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioConstraint< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioController< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioEnvironment< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::THioPlant< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 1760 of file cfl_generator.h.
void faudes::vGenerator::UpdateCore | ( | void | ) | [protected, virtual] |
Callback for core update.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 210 of file cfl_generator.cpp.
EventSet faudes::vGenerator::UsedEvents | ( | void | ) | const |
Return used events (executed in transitions).
doxygen group
Definition at line 1770 of file cfl_generator.cpp.
bool faudes::vGenerator::Valid | ( | void | ) | [virtual] |
Check if generator is valid.
Performs internal consistency tests, This method is intendend to test generators that have been manipulated by methods without consistency tests, eg InjectAlphabet.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >.
Definition at line 508 of file cfl_generator.cpp.
void faudes::vGenerator::Version | ( | const std::string & | rPattern, | |
const std::string & | rReplacement, | |||
vGenerator & | rResGen | |||
) | const [virtual] |
Create another version of this generator.
Assembles a copy of this generator, however, with versioned events. The new event names are created by replacing all substrings matching a specified string pattern by a replacement string. State names and indices as well as any attributes are maintained.
rPattern | String value to be replaced in event names | |
rReplacement | String value to be inserted in event names in place of rPattern | |
rResGen | Resulting versioned generator |
Exception |
|
Definition at line 432 of file cfl_generator.cpp.
void faudes::vGenerator::Version | ( | Idx | version, | |
vGenerator & | rResGen | |||
) | const [virtual] |
Create another version of this generator.
Assembles a copy of this generator, however, with versioned events. The new event names are created by appending an underscore and a numeric index. State names and indices as well as any attributes are maintained.
version | Numeric value to be appended to event names | |
rResGen | Resulting versioned generator |
Exception |
|
Definition at line 380 of file cfl_generator.cpp.
void faudes::vGenerator::Version | ( | const std::string & | rVersion, | |
vGenerator & | rResGen | |||
) | const [virtual] |
Create another version of this generator.
Assembles a copy of this generator, however, with versioned events. The new event names are created by appending an underscore and a specified string. State names and indices as well as any attributes are maintained.
rVersion | String value to be appended to event names | |
rResGen | Resulting versioned generator |
Exception |
|
Definition at line 388 of file cfl_generator.cpp.
void faudes::vGenerator::WriteAlphabet | ( | TokenWriter & | rTw | ) | const |
Write generators alphabet to tokenwriter.
rTw | Reference to TokenWriter |
Exception |
|
Definition at line 2270 of file cfl_generator.cpp.
void faudes::vGenerator::WriteAlphabet | ( | void | ) | const |
Write generators alphabet to console.
doxygen group
Definition at line 2257 of file cfl_generator.cpp.
void faudes::vGenerator::WriteStateSet | ( | TokenWriter & | rTw, | |
const StateSet & | rStateSet | |||
) | const |
Write a stateset to TokenWriter.
All native output of state sets done with this function. Technically, a StateSet is a set of plain indices with no references to symbolic names. Thus, it is only the context of a Generator that provides the symbolic names for file output.
Output of state sets always uses the mMinStateIndexMap to re-index states. However, this map is only set up automatically for file output. If You require re-indexed output to e.g. a string, you must set up the map by calling SetMinStateIndexMap(). To ensure that no re-indexing takes place, call ClearMinStateIndexMap().
rTw | Reference to TokenWriter | |
rStateSet | Reference to stateset |
Exception |
|
Definition at line 2297 of file cfl_generator.cpp.
void faudes::vGenerator::WriteStateSet | ( | const StateSet & | rStateSet | ) | const |
Write a stateset to console (no re-indexing).
Uses WriteStateSet(TokenWriter& rTw, const StateSet&) const to write the specified state set to console referring to this generators state names.
rStateSet | Reference to stateset |
Definition at line 2275 of file cfl_generator.cpp.
void faudes::vGenerator::WriteTransRel | ( | TokenWriter & | rTw | ) | const |
Write transition relation to tokenwriter.
Re-indexing and symbolic state names are handled in the same way as with state sets: this function refers to the generators state symboltable to obtain state names and uses the mMinStateIndexMap to re-index the output.
rTw | Reference to TokenWriter |
Exception |
|
Definition at line 2469 of file cfl_generator.cpp.
void faudes::vGenerator::WriteTransRel | ( | void | ) | const |
Write transition relation to console (no re-indexing).
Definition at line 2448 of file cfl_generator.cpp.
void faudes::vGenerator::XDotWrite | ( | const std::string & | rFileName | ) | const [virtual] |
Writes generator to dot input format for export to VioLib.
Variant of DotWrite() using strategic state and event names to simplify import to VioLib (qt widget for graphical representation of FAUDES generators).
rFileName | File to write |
Exception |
|
Definition at line 2724 of file cfl_generator.cpp.
void faudes::vGenerator::XReadStateSet | ( | TokenReader & | rTr, | |
StateSet & | rStateSet, | |||
const std::string & | rLabel = "" | |||
) | const [protected] |
Read a stateset from TokenReader in XML format.
This version for file IO supports the XML format introduced with libFAUDES 2.20. Note that for Generators and derived classes, the native libFAUDES token format is considered the default. To read XML fromated data, use the XRead() interface.
rTr | Reference to TokenReader | |
rStateSet | Reference to stateset | |
rLabel | Section name, defaults to name of set |
Exception |
|
Definition at line 3046 of file cfl_generator.cpp.
void faudes::vGenerator::XReadTransRel | ( | TokenReader & | rTr | ) | [protected] |
Read the generator's transition relation from a TokenReader.
rTr | Reference to TokenReader |
Exception |
|
Definition at line 3251 of file cfl_generator.cpp.
void faudes::vGenerator::XWriteStateSet | ( | TokenWriter & | rTw, | |
const StateSet & | rStateSet, | |||
const std::string & | rLabel = "" | |||
) | const [protected] |
Write a stateset to TokenWriter in XML format.
This version for file IO supports the XML format introduced with libFAUDES 2.20. Note that for Generators and derived classes, the native libFAUDES token format is considered the default. To obtain XML fromated output of a Generator, use the XWrite() interface.
rTw | Reference to TokenWriter | |
rStateSet | Reference to stateset | |
rLabel | Section name, defaults to name of set |
Exception |
|
Definition at line 2360 of file cfl_generator.cpp.
void faudes::vGenerator::XWriteTransRel | ( | TokenWriter & | rTw | ) | const [protected] |
Write transition relation to tokenwriter in XML format.
This version for file IO supports the XML format introduced with libFAUDES 2.20. Note that for Generators and derived classes, the native libFAUDES token format is considered the default. To obtain XML fromated output of a Generator, use the XWrite() interface.
rTw | Reference to TokenWriter |
Exception |
|
Definition at line 2559 of file cfl_generator.cpp.
Idx faudes::vGenerator::mId [protected] |
Number of generator.
Definition at line 2704 of file cfl_generator.h.
StateSet faudes::vGenerator::mInitStates [protected] |
Initial states.
Definition at line 2767 of file cfl_generator.h.
StateSet faudes::vGenerator::mMarkedStates [protected] |
Marked states.
Definition at line 2770 of file cfl_generator.h.
std::map<Idx,Idx> faudes::vGenerator::mMinStateIndexMap [protected] |
Map State indices to consecutive indices.
Definition at line 2773 of file cfl_generator.h.
std::string faudes::vGenerator::mMyName [protected] |
Name of generator.
Definition at line 2701 of file cfl_generator.h.
EventSet* faudes::vGenerator::mpAlphabet [protected] |
Pointer to alphabet (actual type depends on attributes).
Definition at line 2731 of file cfl_generator.h.
SymbolTable* faudes::vGenerator::mpEventSymbolTable [protected] |
Pointer to Event symbol table.
Definition at line 2716 of file cfl_generator.h.
AttributeVoid* faudes::vGenerator::mpGlobalAttribute [protected] |
Pointer to lobal attribute (actual type depends on attributes).
Definition at line 2740 of file cfl_generator.h.
StateSet* faudes::vGenerator::mpStates [protected] |
Pointer to state set (actual type depends on attributes).
Definition at line 2734 of file cfl_generator.h.
SymbolTable* faudes::vGenerator::mpStateSymbolTable [protected] |
Pointer to State symbol table.
Definition at line 2713 of file cfl_generator.h.
TransSet* faudes::vGenerator::mpTransRel [protected] |
Pointer to ransition relation (actual type depends on attributes).
Definition at line 2737 of file cfl_generator.h.
bool faudes::vGenerator::mReindexOnWrite [protected] |
Reindex states on file-i/o.
Definition at line 2725 of file cfl_generator.h.
Idx faudes::vGenerator::msObjectCount = 0 [static, protected] |
Number of generator objects.
Definition at line 2707 of file cfl_generator.h.
bool faudes::vGenerator::msReindexOnWriteDefault = true [static, protected] |
Default for automatic statenames.
Definition at line 2728 of file cfl_generator.h.
bool faudes::vGenerator::msStateNamesEnabledDefault = true [static, protected] |
Default for automatic statenames.
Definition at line 2722 of file cfl_generator.h.
bool faudes::vGenerator::mStateNamesEnabled [protected] |
Automatic state names.
Definition at line 2719 of file cfl_generator.h.
SymbolTable faudes::vGenerator::mStateSymbolTable [protected] |
State symbol table (local per Generator).
Definition at line 2710 of file cfl_generator.h.
const EventSet* faudes::vGenerator::pAlphabetPrototype [protected] |
Pointer to alphabet prototype (incl.
attribute type)
Definition at line 2743 of file cfl_generator.h.
const AttributeVoid* faudes::vGenerator::pGlobalPrototype [protected] |
Pointer to global attribute prototype (configures global attribute type).
Definition at line 2752 of file cfl_generator.h.
const StateSet* faudes::vGenerator::pStatesPrototype [protected] |
Pointer to state set prototype (incl.
attribute type)
Definition at line 2746 of file cfl_generator.h.
const TransSet* faudes::vGenerator::pTransRelPrototype [protected] |
Pointer to transition relation prototype (incl.
attribute type)
Definition at line 2749 of file cfl_generator.h.
libFAUDES 2.20d --- 2011.04.26 --- c++ source docu by doxygen