| |
|
||||||
|
|
|||||||
|
Static Public Member Functions |
Protected Member Functions |
Static Protected Member Functions |
Protected Attributes |
Static Protected Attributes |
List of all members
faudes::vGenerator Class Reference Detailed DescriptionBase class of all FAUDES generators. OverviewThe 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. Events Versus StatesWhile 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. File I/O (default format)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 name="simple machine">
% libFAUDES Generator for the 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>
idle
</InitStates>
idle
</MarkedStates>
</Generator>
Definition cfl_nameset.h:588 Definition cfl_generator.h:213 const StateSet & MarkedStates(void) const Definition cfl_generator.cpp:1935 const StateSet & InitStates(void) const Definition cfl_generator.cpp:1930 Technical Detail: Since symbolic state names are optional, states may alternatively be represented by their index. In order to consitently read a generator from a token stream, the convention was that states are indexed consecutively starting from 1. This convention produces nice and human-readable output. However, it requires a re-indexing when writing the generator. As of libFAUDES 2.20j, the token format was extended to allow for explicit symbol table entries in the format "symbolic_state_name#index". Whether or not re-indexing is applied can be configured via ReindexOnWrite(bool). The default is not to re-index. If you want to read your token stream with libFAUDES pre 2.20j, you must turn re-index on. Technical Detail: The generator name, the alphabet and the state set are optional. The generator name defaults to "generator"; the alphabet and the state set are extracted from the transition relation. Furthermore, there alternative short labels "A" for "Alphabet", "S" for "States" etc. are accepted. This short format has been introduced in 2.24e and is meant for embedding data concisely into luafaudes scripts. In general, the full format is preferable. <T>
idle alpha busy
busy beta idle
busy mue down
down lambda idle
</T>
<I> idle </I>
<M> idle </M>
</Generator>
File I/O (XML file-format)The alternative file file format prodiced by XWrite() is meant to accomodate for additional attributes attached to states, events and transitions, including e.g. graph data for a graphical representation. It starts with the outer element "Generator" with name attribute (optionally) and type attribute (mandatory). <Alphabet>
<Event name="alpha"/>
<Event name="beta"/>
<Event name="mue"/>
<Event name="lambda"/>
</Alphabet>
<StateSet>
<State name="idle" id="1">
<Marked/><Initial/>
<State/>
<State name="busy" id="2"/>
<State name="down" id="3"/>
</StateSet>
<TransitionRelation>
<TransitionRelation/>
</Generator>
Definition cfl_indexset.h:78 Definition cfl_transset.h:57 AttributeslibFAUDES 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 213 of file cfl_generator.h.
Constructor & Destructor Documentation◆ vGenerator() [1/3]
doxygen group Default constructor Definition at line 69 of file cfl_generator.cpp. ◆ vGenerator() [2/3]
Copy-constructror Definition at line 104 of file cfl_generator.cpp. ◆ vGenerator() [3/3]
Construct from file. This constructor effectively uses the DoRead(TokenReader&) function to read.
Definition at line 138 of file cfl_generator.cpp. ◆ ~vGenerator()
Destructor Definition at line 205 of file cfl_generator.cpp. Member Function Documentation◆ Accessible()
Make generator accessible.
Definition at line 2052 of file cfl_generator.cpp. ◆ AccessibleSet()
doxygen group Compute set of accessible states Definition at line 2020 of file cfl_generator.cpp. ◆ ActiveEventSet()Return active event set at state x1
Definition at line 1960 of file cfl_generator.cpp. ◆ ActiveTransSet()Return active transition set at state x1
Definition at line 1970 of file cfl_generator.cpp. ◆ Alphabet()
Return const reference to alphabet
Definition at line 1900 of file cfl_generator.cpp. ◆ AlphabetBegin()
doxygen group Iterator to Begin() of alphabet
Definition at line 1069 of file cfl_generator.cpp. ◆ AlphabetEmpty()
Check if alphabet is Empty
Definition at line 670 of file cfl_generator.cpp. ◆ AlphabetEnd()
Iterator to End() of alphabet
Definition at line 1074 of file cfl_generator.cpp. ◆ AlphabetSize()
Get number of events in alphabet
Definition at line 594 of file cfl_generator.cpp. ◆ AlphabetToString()
Write generators alphabet to string
Definition at line 2515 of file cfl_generator.cpp. ◆ AlphabetVoid()
Static default alphabet prototype (incl. attribute type) Definition at line 48 of file cfl_generator.cpp. ◆ BlockingStates()
Compute set of blocking states. A state is considered blocking if it is accessible but not coaccessible. Definition at line 2170 of file cfl_generator.cpp. ◆ Cast()Type test. Uses C++ dynamic cast to test whether the specified object casts to a vGenerator.
Reimplemented from faudes::Type. Reimplemented in faudes::TlhaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TrGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TpGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >, and faudes::TcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >. Definition at line 199 of file cfl_generator.cpp. ◆ Clear()
Clear generator data. Clears state set, alphabet and transitionrealtion. Behavioural flags eg StateNamesEnabled are maintained. Reimplemented from faudes::Type. Reimplemented in faudes::TpGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::Executor, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 604 of file cfl_generator.cpp. ◆ ClearAttributes()
doxygen group Clear Attributes Definition at line 637 of file cfl_generator.cpp. ◆ ClearEventAttributes()
Clear event attributes Definition at line 627 of file cfl_generator.cpp. ◆ ClearGlobalAttribute()
Clear global attribute Definition at line 617 of file cfl_generator.cpp. ◆ ClearInitStates()
Clear all mInitStates Definition at line 1524 of file cfl_generator.cpp. ◆ ClearMarkedStates()
Clear all marked states Definition at line 1599 of file cfl_generator.cpp. ◆ ClearMinStateIndexMap()
Clear minimal index map for 1:1 file io Definition at line 696 of file cfl_generator.cpp. ◆ ClearStateAttributes()
Clear state attributes Reimplemented in faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >. Definition at line 622 of file cfl_generator.cpp. ◆ ClearStateNames()
Remove all names from generator's StateSymbolTable Definition at line 992 of file cfl_generator.cpp. ◆ ClearStates()
Clear all states and transitions, maintain alphabet. Definition at line 646 of file cfl_generator.cpp. ◆ ClearTransAttributes()
Clear transition attributes Definition at line 632 of file cfl_generator.cpp. ◆ ClearTransRel()
Clear all transitions Definition at line 1739 of file cfl_generator.cpp. ◆ ClrEventAttribute()
Clear attribute for existing event
Definition at line 1759 of file cfl_generator.cpp. ◆ ClrInitState() [1/3]
Unset an existing state as initial state by name
Definition at line 1504 of file cfl_generator.cpp. ◆ ClrInitState() [2/3]
Unset an existing state as initial state by index Define FAUDES_CHECKED for consistency checks.
Definition at line 1490 of file cfl_generator.cpp. ◆ ClrInitState() [3/3]
Unset an existing state as initial state by iterator
Definition at line 1518 of file cfl_generator.cpp. ◆ ClrMarkedState() [1/3]
Unset an existing state as marked state by name
Definition at line 1579 of file cfl_generator.cpp. ◆ ClrMarkedState() [2/3]
Unset an existing state as marked state by index
Definition at line 1565 of file cfl_generator.cpp. ◆ ClrMarkedState() [3/3]
Unset an existing state as marked state by iterator
Definition at line 1593 of file cfl_generator.cpp. ◆ ClrStateAttribute()
Clear attribute for existing state
Definition at line 1772 of file cfl_generator.cpp. ◆ ClrStateName() [1/2]
Clear name for individual state
Definition at line 1013 of file cfl_generator.cpp. ◆ ClrStateName() [2/2]
Clear name for individual state
Definition at line 999 of file cfl_generator.cpp. ◆ ClrTransAttribute()
Clear attribute for existing transition
Definition at line 1733 of file cfl_generator.cpp. ◆ ClrTransition() [1/3]
Remove a transition by transition object
Definition at line 1689 of file cfl_generator.cpp. ◆ ClrTransition() [2/3]Remove a transition by indices
Definition at line 1682 of file cfl_generator.cpp. ◆ ClrTransition() [3/3]
Remove a transition by iterator
Definition at line 1695 of file cfl_generator.cpp. ◆ ClrTransitions() [1/2]
Remove a transitions by state
Definition at line 1708 of file cfl_generator.cpp. ◆ ClrTransitions() [2/2]Remove a transitions by state and event
Definition at line 1701 of file cfl_generator.cpp. ◆ Coaccessible()
Make generator Coaccessible
Definition at line 2111 of file cfl_generator.cpp. ◆ CoaccessibleSet()
Compute set of Coaccessible states Definition at line 2076 of file cfl_generator.cpp. ◆ Complete() [1/2]
Make generator Complete w.r.t. an alphabet This procedure removes all states that conflict with completes w.r.t. the specified alphabet Sigma_o until a fixpoint is reached. The current implementation consists of an outer iteration to restrict a domain of states and an inner iteration for abcakwar reachability analyis. THIS IS EXPERIMENTAL / NEEDS TESTING
Definition at line 2268 of file cfl_generator.cpp. ◆ Complete() [2/2]
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 is initialized by the set of terminal states and then performs a backward reachability analysis.
Definition at line 2238 of file cfl_generator.cpp. ◆ ConfigureAttributeTypes()
Configure attribute types Definition at line 212 of file cfl_generator.cpp. ◆ Copy()
doxygen group 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.
Reimplemented from faudes::Type. Reimplemented in faudes::TrGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TpGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 298 of file cfl_generator.cpp. ◆ CopyWithoutAttributes()
Copy from other vGenerator, ignore attributes.
Definition at line 314 of file cfl_generator.cpp. ◆ DDotWrite()
Writes generator to dot input format (no re-indexing). Variant of DotWrite() without re-indexing.
Definition at line 3101 of file cfl_generator.cpp. ◆ DeleteCore()
Free my heap members (attribute dependent types) Definition at line 250 of file cfl_generator.cpp. ◆ DelEvent() [1/2]
Delete event from generator by name. mpEventSymbolTable stays untouched. Transitions containing event will be removed too.
Definition at line 1244 of file cfl_generator.cpp. ◆ DelEvent() [2/2]
Delete event from generator by index. mpEventSymbolTable stays untouched. Transitions containing event will be removed too.
Definition at line 1237 of file cfl_generator.cpp. ◆ DelEventFromAlphabet()
Delete event from alphabet without consistency check. The event is only deleted from mpAlphabet but not from transition relation.
Definition at line 1262 of file cfl_generator.cpp. ◆ DelEvents()
Delete a set of events from generator. mpEventSymbolTable stays untouched. Transitions containing events will be removed too.
Definition at line 1252 of file cfl_generator.cpp. ◆ DelState() [1/2]
Delete a state from generator by name. Cleans mpStates, mInitStates, mMarkedStates, mpTransRel and mpStateSymbolTable.
Definition at line 1387 of file cfl_generator.cpp. ◆ DelState() [2/2]
Delete a state from generator by index. Cleans mpStates, mInitStates, mMarkedStates, mpTransRel and mpStateSymbolTable.
Definition at line 1372 of file cfl_generator.cpp. ◆ DelStateFromStates() [1/2]
Delete a state from generator without consistency check. This removes the state from mpStates and mpStateSymbolTable but doesn't touch mpTransRel, mInitStates and mMarkedStates.
Definition at line 1421 of file cfl_generator.cpp. ◆ DelStateFromStates() [2/2]
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.
Definition at line 1428 of file cfl_generator.cpp. ◆ DelStates()
Delete a set of states Cleans mpStates, mInitStates, mMarkedStates, mpTransrel, and mpStateSymboltable
Definition at line 1403 of file cfl_generator.cpp. ◆ DoCopy()
Copyment for matching type Definition at line 266 of file cfl_generator.cpp. ◆ DoDWrite()
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.
Reimplemented from faudes::Type. Definition at line 2447 of file cfl_generator.cpp. ◆ DoMove()
Copyment for matching type (destructive) Definition at line 360 of file cfl_generator.cpp. ◆ DoRead()
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".
Reimplemented from faudes::Type. Reimplemented in faudes::TlhaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::Executor. Definition at line 3193 of file cfl_generator.cpp. ◆ DoSWrite()
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.
Reimplemented from faudes::Type. Reimplemented in faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >. Definition at line 2979 of file cfl_generator.cpp. ◆ DotWrite()
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.
Reimplemented in faudes::TdiagGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TrGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >. Definition at line 2995 of file cfl_generator.cpp. ◆ DoWrite()
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.
Reimplemented from faudes::Type. Reimplemented in faudes::TlhaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::Executor. Definition at line 2404 of file cfl_generator.cpp. ◆ DoXWrite()
Write generator to TokenWriter, see Type::XWrite for public wrappers. Virtual function for std token io interface. Context is ignored, label defaults to "Generator".
Reimplemented from faudes::Type. Definition at line 2477 of file cfl_generator.cpp. ◆ DWriteStateSet()
Write a stateset to TokenWriter (debug version, no re-indexing)
Definition at line 2731 of file cfl_generator.cpp. ◆ DWriteTransRel()
Write transition relation to tokenwriter (debug version)
Definition at line 2899 of file cfl_generator.cpp. ◆ Empty()
Check if generator is empty (no states)
Definition at line 675 of file cfl_generator.cpp. ◆ EnforceStateNames()
For all states without a symbolic name, assign a name based on suggested template and the index.
Definition at line 1049 of file cfl_generator.cpp. ◆ EStr()
Pretty printable event name for index (eg for debugging).
Definition at line 3957 of file cfl_generator.cpp. ◆ EventAttribute() [1/3]
Event 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 >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1848 of file cfl_generator.cpp. ◆ EventAttribute() [2/3]
Event 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 >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1838 of file cfl_generator.cpp. ◆ EventAttribute() [3/3]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.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1744 of file cfl_generator.cpp. ◆ EventAttributep() [1/2]
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.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1853 of file cfl_generator.cpp. ◆ EventAttributep() [2/2]
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.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1843 of file cfl_generator.cpp. ◆ EventAttributes()
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.
Definition at line 1752 of file cfl_generator.cpp. ◆ EventIndex()
Event index lookup
Definition at line 856 of file cfl_generator.cpp. ◆ EventName() [1/2]
Event name lookup
Definition at line 861 of file cfl_generator.cpp. ◆ EventName() [2/2]
Set name for existing event Note: since the event symboltable is global, this affect all generators that refer to the specified event.
Definition at line 866 of file cfl_generator.cpp. ◆ EventRename() [1/2]
Rename event in this generator. Convenience wrapper for EventRename(Idx, const std::string&).
Definition at line 934 of file cfl_generator.cpp. ◆ EventRename() [2/2]
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.
Definition at line 889 of file cfl_generator.cpp. ◆ EventSymbolTablep() [1/3]
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.
Definition at line 851 of file cfl_generator.cpp. ◆ EventSymbolTablep() [2/3]
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.
Definition at line 845 of file cfl_generator.cpp. ◆ EventSymbolTablep() [3/3]
doxygen group Get Pointer to EventSymbolTable currently used by this vGenerator.
Definition at line 835 of file cfl_generator.cpp. ◆ ExistsEvent() [1/2]
Test existence of event in alphabet
Definition at line 1783 of file cfl_generator.cpp. ◆ ExistsEvent() [2/2]
Test existence of event in alphabet
Definition at line 1778 of file cfl_generator.cpp. ◆ ExistsInitState()
Test existence of state in mInitStates
Definition at line 1818 of file cfl_generator.cpp. ◆ ExistsMarkedState()
Test existence of state in mMarkedStates
Definition at line 1828 of file cfl_generator.cpp. ◆ ExistsState() [1/2]
Test existence of state in state set
Definition at line 1803 of file cfl_generator.cpp. ◆ ExistsState() [2/2]
Test existence of state in state set
Definition at line 1798 of file cfl_generator.cpp. ◆ ExistsTransition() [1/5]
Test for transition given by x1, ev, x2
Definition at line 1146 of file cfl_generator.cpp. ◆ ExistsTransition() [2/5]
test for transition
Definition at line 1136 of file cfl_generator.cpp. ◆ ExistsTransition() [3/5]
Test for transition given by x1
Definition at line 1158 of file cfl_generator.cpp. ◆ ExistsTransition() [4/5]Test for transition given by x1, ev
Definition at line 1153 of file cfl_generator.cpp. ◆ ExistsTransition() [5/5]Test for transition given by x1, ev, x2
Definition at line 1141 of file cfl_generator.cpp. ◆ FindEvent() [1/2]
Returns a iterator to event index in alphabet
Definition at line 1793 of file cfl_generator.cpp. ◆ FindEvent() [2/2]
Returns a iterator to event index in alphabet
Definition at line 1788 of file cfl_generator.cpp. ◆ FindInitState()
Iterator to state index in mInitStates
Definition at line 1823 of file cfl_generator.cpp. ◆ FindMarkedState()
Returns a iterator to state index in mMarkedStates
Definition at line 1833 of file cfl_generator.cpp. ◆ FindState() [1/2]
Returns a iterator to state with specified name
Definition at line 1808 of file cfl_generator.cpp. ◆ FindState() [2/2]
Returns a iterator to state index in state set
Definition at line 1813 of file cfl_generator.cpp. ◆ FindTransition() [1/3]
iterator to transition given by x1, ev, x2
Definition at line 1129 of file cfl_generator.cpp. ◆ FindTransition() [2/3]
Iterator to transition
Definition at line 1119 of file cfl_generator.cpp. ◆ FindTransition() [3/3]
Iterator to transition given by x1, ev, x2
Definition at line 1124 of file cfl_generator.cpp. ◆ GlobalAttribute() [1/2]
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.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1868 of file cfl_generator.cpp. ◆ GlobalAttribute() [2/2]
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 >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1887 of file cfl_generator.cpp. ◆ GlobalAttributep()
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 >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1893 of file cfl_generator.cpp. ◆ GlobalAttributeTry()
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.
Definition at line 1880 of file cfl_generator.cpp. ◆ GlobalEventSymbolTablep()
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 840 of file cfl_generator.cpp. ◆ GlobalVoid()
Static default global attribute prototype (configures global attribute type) Definition at line 60 of file cfl_generator.cpp. ◆ GraphWrite()
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().
Definition at line 3976 of file cfl_generator.cpp. ◆ InitState()
Return initial state If the initial state is not unique, this function returns 0.
Definition at line 1164 of file cfl_generator.cpp. ◆ InitStates()
◆ InitStatesBegin()
Iterator to Begin() of mInitStates
Definition at line 1172 of file cfl_generator.cpp. ◆ InitStatesEmpty()
Check if set of initial states are empty
Definition at line 685 of file cfl_generator.cpp. ◆ InitStatesEnd()
Iterator to End() of mInitStates
Definition at line 1177 of file cfl_generator.cpp. ◆ InitStatesSize()
Get number of initial states
Definition at line 660 of file cfl_generator.cpp. ◆ InitStatesToString()
Write set of initial states to a string (no re-indexing)
Definition at line 2824 of file cfl_generator.cpp. ◆ InjectAlphabet()
Set mpAlphabet without consistency check. Sets the alphabet incl attributes, if provided.
Definition at line 1192 of file cfl_generator.cpp. ◆ InjectInitStates()
Replace mInitStates with StateSet given as parameter without consistency checks.
Definition at line 1482 of file cfl_generator.cpp. ◆ InjectMarkedStates()
Replace mMarkedStates with StateSet given as parameter without consistency checks.
Definition at line 1557 of file cfl_generator.cpp. ◆ InjectState()
Inject an existing state index into generators mStates Use with care! For use in performance optimized functions.
Definition at line 1294 of file cfl_generator.cpp. ◆ InjectStates()
Inject a complete state set without consistency checks (without attributes)
Definition at line 1300 of file cfl_generator.cpp. ◆ InjectTransition()
Set transition without consistency check.
Definition at line 1604 of file cfl_generator.cpp. ◆ InjectTransRel()
Set transition relation without consistency check (no attributes)
Definition at line 1610 of file cfl_generator.cpp. ◆ InsEvent() [1/2]
Add named event to generator. An entry in the mpEventSymbolTable will be made if event name is not known so far.
Definition at line 1226 of file cfl_generator.cpp. ◆ InsEvent() [2/2]
doxygen group Add an existing event to alphabet by index. It is an error to insert an event index that is not known to the mpEventSymbolTable.
Definition at line 1220 of file cfl_generator.cpp. ◆ InsEvents()
Add new named events to generator. If the event allready exists, the attribute is maintained.
Definition at line 1232 of file cfl_generator.cpp. ◆ InsInitState() [1/3]
Create a new named state and set as initial state
Definition at line 1318 of file cfl_generator.cpp. ◆ InsInitState() [2/3]
Add (perhaps new) state to generator and turn it into a initial state.
Definition at line 1327 of file cfl_generator.cpp. ◆ InsInitState() [3/3]
Create new anonymous state and set as initial state
Definition at line 1309 of file cfl_generator.cpp. ◆ InsInitStates()
Add (perhaps new) anonymous initial states to generator
Definition at line 1334 of file cfl_generator.cpp. ◆ InsMarkedState() [1/3]
Create a new named state and set as marked state
Definition at line 1356 of file cfl_generator.cpp. ◆ InsMarkedState() [2/3]
Add (perhaps new) state to generator and turn it into a marked state.
Definition at line 1349 of file cfl_generator.cpp. ◆ InsMarkedState() [3/3]
Create new anonymous state and set as marked state
Definition at line 1340 of file cfl_generator.cpp. ◆ InsMarkedStates()
Add (perhaps new/anonymous) marked states to generator
Definition at line 1365 of file cfl_generator.cpp. ◆ InsState() [1/3]
Add new named state to generator.
Definition at line 1281 of file cfl_generator.cpp. ◆ InsState() [2/3]
Add (perhaps new) state to generator
Definition at line 1275 of file cfl_generator.cpp. ◆ InsState() [3/3]
Add new anonymous state to generator
Definition at line 1269 of file cfl_generator.cpp. ◆ InsStates()
Add anonymous states to generator
Definition at line 1289 of file cfl_generator.cpp. ◆ IsAccessible()
Check if generator is accessible
Definition at line 2066 of file cfl_generator.cpp. ◆ IsCoaccessible()
Check if generator is Coaccessible
Definition at line 2125 of file cfl_generator.cpp. ◆ IsComplete() [1/3]
Check if generator is complete w.r.t. an alphabet A generator is considered complete w.r.t. an alphabet Sigma_o, if each state can be continued to a state in which a symbol of Sigma_c is enabled. If the generator is accessible, completeness w.r.t. Sigma_o is equivalent to: forall s in L(G) there exists t in (Sigma*)Sigma_u such that st in L(G)
Definition at line 2196 of file cfl_generator.cpp. ◆ IsComplete() [2/3]
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 (resp. trim) states only. Then, test is equivalent to completeness of the generated (resp. marked) language.
Definition at line 2179 of file cfl_generator.cpp. ◆ IsComplete() [3/3]
Check if generator is complete. A generator is considered complete, if each state has at least one successor state. If the generator is accessible, completeness is equivalent to completeness of the generated language, ie forall s in L(G) there exists r>s such that r in L(G) If the generator is trim, completeness is equivalent to completeness of the markede language, ie forall s in Lm(G) there exists r>s such that r in Lm(G)
Definition at line 2233 of file cfl_generator.cpp. ◆ IsDeterministic()
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 2358 of file cfl_generator.cpp. ◆ IsTrim()
Check if generator is trim. Returns true if all states are rechable and coreachale.
Definition at line 2160 of file cfl_generator.cpp. ◆ MarkedStates()
Return const ref of marked states
Definition at line 1935 of file cfl_generator.cpp. ◆ MarkedStatesBegin()
Iterator to Begin() of mMarkedStates
Definition at line 1182 of file cfl_generator.cpp. ◆ MarkedStatesEmpty()
Check if set of marked states are empty
Definition at line 690 of file cfl_generator.cpp. ◆ MarkedStatesEnd()
Iterator to End() of mMarkedStates
Definition at line 1187 of file cfl_generator.cpp. ◆ MarkedStatesSize()
Get number of marked states
Definition at line 665 of file cfl_generator.cpp. ◆ MarkedStatesToString()
Write set of marked states to a string (no re-indexing)
Definition at line 2819 of file cfl_generator.cpp. ◆ MaxStateIndex()
Get maximum state index used in this generator. Returns 0 if no states at all.
Definition at line 776 of file cfl_generator.cpp. ◆ MinimizeAlphabet()
Set the alphabet to used events Definition at line 1940 of file cfl_generator.cpp. ◆ MinStateIndex() [1/2]Get state index as is it will be written to file.
Definition at line 765 of file cfl_generator.cpp. ◆ MinStateIndex() [2/2]
Re-enumerate states. This method re-enumerates states such that the resulting state set consist of consecutive indexes; i.e. Size()=MaxStateIndex(). The current implementation sets up the minimal-state-index map used for file i/o and applies it to the state set and the transition relation. Note: libFAUDES does not maintain consecutive state indices. This was a design decision and it comes pros and cons. The method MinStateIndex() was implemented to provide some limited support for the implementation of algorithms in a consecutive state enumeration paradigm. However, mixing both paradigms most likely involves an overall performace penalty. Definition at line 782 of file cfl_generator.cpp. ◆ MinStateIndexMap()Get state index translation map
Definition at line 704 of file cfl_generator.cpp. ◆ Move()
Destructive copy from 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.
Reimplemented from faudes::Type. Reimplemented in faudes::TcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 344 of file cfl_generator.cpp. ◆ New()
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::TdiagGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioConstraint< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioConstraint< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioController< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioController< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioEnvironment< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioEnvironment< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioPlant< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioPlant< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TlhaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TioGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TrGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TpGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >, and faudes::TcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >. Definition at line 179 of file cfl_generator.cpp. ◆ NewCore()
Allocate my heap members (attribute dependent types) Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 234 of file cfl_generator.cpp. ◆ NewCpy()
Construct copy on heap. Technically not a constructor, this function creates a vGenerator with the same event symboltable on heap. 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::TdiagGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioConstraint< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioConstraint< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioController< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioController< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioEnvironment< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioEnvironment< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioPlant< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioPlant< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TlhaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TioGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TmtcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TrGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TpGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >, and faudes::TcGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >. Definition at line 191 of file cfl_generator.cpp. ◆ NewEventSet()
Create EventSet with generator's EventSymbolTable (on stack).
Definition at line 940 of file cfl_generator.cpp. ◆ NewEventSetp()
Create EventSet with generator's EventSymbolTable (on heap).
Definition at line 947 of file cfl_generator.cpp. ◆ operator<()
Order for sorting containers of generators Definition at line 2893 of file cfl_generator.h. ◆ operator=() [1/2]
Copyment operator (uses DoCopy method) Note: you must reimplement this operator in derived classes in order to handle internal pointers correctly.
Definition at line 419 of file cfl_generator.cpp. ◆ operator=() [2/2]
Copyment operator (uses DoMove method) Note: you must reimplement this operator in derived classes in order to handle internal pointers correctly.
Definition at line 426 of file cfl_generator.cpp. ◆ ReadAlphabet()
Read the generator's alphabet from a TokenReader. As of 2.24e, this method returns silently if no alphabet-tag is found.
Definition at line 3292 of file cfl_generator.cpp. ◆ ReadStates()
Read the generator's stateset from a TokenReader. This sets up the StateSymbolTable. As of 2.24e, this method returns silently if no alphabet-tag is found.
Definition at line 3305 of file cfl_generator.cpp. ◆ ReadStateSet()
Read a state set. Refer to the generators state symboltable while reading a state set. Ignore any attributes.
Definition at line 3434 of file cfl_generator.cpp. ◆ ReadTransRel() [1/2]
Read the generator's transition relation from a file.
◆ ReadTransRel() [2/2]
Read the generator's transition relation from a TokenReader.
Definition at line 3748 of file cfl_generator.cpp. ◆ ReindexOnWrite() [1/2]
Enable/disable minimal state indicees for file-i/o.
Definition at line 2387 of file cfl_generator.cpp. ◆ ReindexOnWrite() [2/2]
Test whether file-i/o uses minimal state indicees.
Definition at line 2382 of file cfl_generator.cpp. ◆ ReindexOnWriteDefault() [1/2]
Enable/disable reindexing states for file-i/o. Set default value for re-indexing. Initially, the default is set to "false".
Definition at line 2392 of file cfl_generator.cpp. ◆ ReindexOnWriteDefault() [2/2]
Enable/disable reindexing states for file-i/o. Set default value for re-indexing.
Definition at line 2397 of file cfl_generator.cpp. ◆ RestrictAlphabet()
Restricts mpAlphabet incl removing resp. transition. Maintains attributes if any. Note: before libFAUDES 2.23, this method did not remove transitions. Use InjectAlphabet(const EventSet&) for direct write acces to the alphabet.
Definition at line 1206 of file cfl_generator.cpp. ◆ RestrictStates()
Restrict states Cleans mpStates, mInitStates, mMarkedStates, mpTransrel, and mpStateSymboltable
Reimplemented in faudes::TrGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >. Definition at line 1434 of file cfl_generator.cpp. ◆ SetDefaultStateNames()
Copy each state a default name based on its index. Definition at line 1037 of file cfl_generator.cpp. ◆ SetInitState() [1/2]
Set an existing state as initial state by name.
Definition at line 1468 of file cfl_generator.cpp. ◆ SetInitState() [2/2]
Set an existing state as initial state by index.
Definition at line 1454 of file cfl_generator.cpp. ◆ SetMarkedState() [1/2]
Set an existing state as marked state by name.
Definition at line 1543 of file cfl_generator.cpp. ◆ SetMarkedState() [2/2]
Set an existing state as marked state by index
Definition at line 1529 of file cfl_generator.cpp. ◆ SetMinStateIndexMap()
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 710 of file cfl_generator.cpp. ◆ SetTransition() [1/3]
Add a transition to generator by names. Statename and eventname must already exist.
Definition at line 1617 of file cfl_generator.cpp. ◆ SetTransition() [2/3]
Add a transition to generator. States and event must already exist.
Definition at line 1653 of file cfl_generator.cpp. ◆ SetTransition() [3/3]Add a transition to generator by indices. States and event must already exist.
Definition at line 1648 of file cfl_generator.cpp. ◆ Size()
Get generator size (number of states)
Definition at line 599 of file cfl_generator.cpp. ◆ SStr()
Return pretty printable state name for index (eg for debugging)
Definition at line 3963 of file cfl_generator.cpp. ◆ StateAttribute() [1/2]
State 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 >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1858 of file cfl_generator.cpp. ◆ StateAttribute() [2/2]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.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1765 of file cfl_generator.cpp. ◆ StateAttributep()
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.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1863 of file cfl_generator.cpp. ◆ StateIndex()
State index lookup.
Definition at line 966 of file cfl_generator.cpp. ◆ StateName() [1/2]
State name lookup
Definition at line 971 of file cfl_generator.cpp. ◆ StateName() [2/2]
Set name of state
Definition at line 976 of file cfl_generator.cpp. ◆ StateNamesEnabled() [1/2]
Enable/disable libFAUEDS functions to automatically generate state names. Disabling state name generation implies ClearStateNames().
Definition at line 1026 of file cfl_generator.cpp. ◆ StateNamesEnabled() [2/2]
Whether libFAUEDS functions are requested to generate state names. Most libFAUDES functions that 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 1021 of file cfl_generator.cpp. ◆ StateNamesEnabledDefault()
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).
Definition at line 1032 of file cfl_generator.cpp. ◆ States()
Return reference to state set
Definition at line 1905 of file cfl_generator.cpp. ◆ StatesBegin()
Iterator to Begin() of state set
Definition at line 1079 of file cfl_generator.cpp. ◆ StatesEnd()
Iterator to End() of state set
Definition at line 1084 of file cfl_generator.cpp. ◆ StateSetToString()
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.
Definition at line 2533 of file cfl_generator.cpp. ◆ StateSetToText()
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.
Definition at line 2540 of file cfl_generator.cpp. ◆ StatesToString()
Write stateset of this generator to a string (no re-indexing)
Definition at line 2809 of file cfl_generator.cpp. ◆ StatesToText()
Write stateset of this generator to formated text (no re-indexing)
Definition at line 2814 of file cfl_generator.cpp. ◆ StatesVoid()
Static default state set prototype (incl. attribute type) Definition at line 52 of file cfl_generator.cpp. ◆ StateSymbolTable() [1/2]
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 960 of file cfl_generator.cpp. ◆ StateSymbolTable() [2/2]
doxygen group Get StateSymbolTable.
Definition at line 955 of file cfl_generator.cpp. ◆ SuccessorState()Return the successor state of state x1 with event ev. If no such transition exists, return 0. If multiple such transitions exit, through expection. A more egeneral set valued interface is provided by TransSet
Definition at line 2002 of file cfl_generator.cpp. ◆ SuccessorStates() [1/2]Return the successor states of state x1
Definition at line 1991 of file cfl_generator.cpp. ◆ SuccessorStates() [2/2]Return the successor states of state x1 with event ev
Definition at line 1996 of file cfl_generator.cpp. ◆ TerminalStates() [1/2]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.
Definition at line 2330 of file cfl_generator.cpp. ◆ TerminalStates() [2/2]
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 2350 of file cfl_generator.cpp. ◆ TransAttribute() [1/2]
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 >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1728 of file cfl_generator.cpp. ◆ TransAttribute() [2/2]
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.
Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1715 of file cfl_generator.cpp. ◆ TransAttributep()
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 >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 1722 of file cfl_generator.cpp. ◆ TransitionByNames()
Convebience function.
Definition at line 1924 of file cfl_generator.cpp. ◆ TransRel() [1/7]
Definition at line 1917 of file cfl_generator.cpp. ◆ TransRel() [2/7]
◆ TransRel() [3/7]
Get copy of trantision relation sorted by other compare operator, e.g. "x2,ev,x1"
Definition at line 1916 of file cfl_generator.cpp. ◆ TransRel() [4/7]
◆ TransRel() [5/7]
Definition at line 1919 of file cfl_generator.cpp. ◆ TransRel() [6/7]
◆ TransRel() [7/7]
Return reference to transition relation
Definition at line 1910 of file cfl_generator.cpp. ◆ TransRelBegin() [1/3]
Iterator to begin of transitions with x1 as predecessor state.
Definition at line 1099 of file cfl_generator.cpp. ◆ TransRelBegin() [2/3]
iterator to begin of transitions with x1 as predecessor state and event ev.
Definition at line 1109 of file cfl_generator.cpp. ◆ TransRelBegin() [3/3]
Iterator to Begin() of transition relation
Definition at line 1089 of file cfl_generator.cpp. ◆ TransRelEmpty()
Check if transition relation is empty
Definition at line 680 of file cfl_generator.cpp. ◆ TransRelEnd() [1/3]
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.
Definition at line 1104 of file cfl_generator.cpp. ◆ TransRelEnd() [2/3]
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.
Definition at line 1114 of file cfl_generator.cpp. ◆ TransRelEnd() [3/3]
Iterator to End() of transition relation
Definition at line 1094 of file cfl_generator.cpp. ◆ TransRelSize()
Get number of transitions
Definition at line 655 of file cfl_generator.cpp. ◆ TransRelStates()
Return the states covered by transitions
Definition at line 1980 of file cfl_generator.cpp. ◆ TransRelToString()
Write transition relation to string (no re-indexing) Definition at line 2836 of file cfl_generator.cpp. ◆ TransRelToText()
Write transition relation to formated text (no re-indexing) Definition at line 2843 of file cfl_generator.cpp. ◆ TransRelVoid()
Static default transition relation prototype (incl. attribute type) Definition at line 56 of file cfl_generator.cpp. ◆ Trim()
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 2144 of file cfl_generator.cpp. ◆ TrimSet()
Compute set of trim states Definition at line 2135 of file cfl_generator.cpp. ◆ TStr()
Return pretty printable transition (eg for debugging)
Definition at line 3970 of file cfl_generator.cpp. ◆ UniqueEventName()
Create a new unique symbolic event name. See also SymbolTable::UniqueSymbol().
Definition at line 881 of file cfl_generator.cpp. ◆ UniqueStateName()
Create a new unique symbolic state name. See also SymbolTable::UniqueSymbol().
Definition at line 1061 of file cfl_generator.cpp. ◆ UnusedEvents()
◆ UpdateAttributes()
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::THioConstraint< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioController< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioController< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioEnvironment< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioEnvironment< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::THioPlant< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::THioPlant< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, faudes::TlhaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TioGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, and faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >. Definition at line 1892 of file cfl_generator.h. ◆ UpdateCore()
Callback for core update Reimplemented in faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 224 of file cfl_generator.cpp. ◆ UsedEvents()
doxygen group Return used events (executed in transitions)
Definition at line 1945 of file cfl_generator.cpp. ◆ Valid()
doxygen group 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::TlhaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::Executor, faudes::TtGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< GlobalAttr, StateAttr, EventAttr, TransAttr >, faudes::TaGenerator< AttributeVoid, HioStateFlags, HioEventFlags, AttributeVoid >, and faudes::TaGenerator< AttributeVoid, StateRef, AttributeVoid, AttributeVoid >. Definition at line 559 of file cfl_generator.cpp. ◆ Version() [1/3]
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.
Definition at line 485 of file cfl_generator.cpp. ◆ Version() [2/3]
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.
Definition at line 441 of file cfl_generator.cpp. ◆ Version() [3/3]
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.
Definition at line 433 of file cfl_generator.cpp. ◆ WriteAlphabet() [1/2]
Write generators alphabet to tokenwriter
Definition at line 2522 of file cfl_generator.cpp. ◆ WriteAlphabet() [2/2]
doxygen group Write generators alphabet to console Definition at line 2509 of file cfl_generator.cpp. ◆ WriteStates()
Write generators stateset to TokenWriter. This method differs from the general purpos version WriteStateSet(TokenWriter&, const StateSet&) in that it can optionally write an explicit symbol table for state names. This will happen whenever writing is done without re-indexing states.
Definition at line 2549 of file cfl_generator.cpp. ◆ WriteStateSet() [1/2]
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.
Definition at line 2527 of file cfl_generator.cpp. ◆ WriteStateSet() [2/2]
Write a stateset to TokenWriter. All native output of external 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().
Definition at line 2642 of file cfl_generator.cpp. ◆ WriteTransRel() [1/2]
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.
Definition at line 2851 of file cfl_generator.cpp. ◆ WriteTransRel() [2/2]
Write transition relation to console (no re-indexing) Definition at line 2830 of file cfl_generator.cpp. ◆ XDotWrite()
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).
Definition at line 3152 of file cfl_generator.cpp. ◆ XReadStateSet()
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.
Definition at line 3615 of file cfl_generator.cpp. ◆ XReadTransRel()
Read the generator's transition relation from a TokenReader.
Definition at line 3861 of file cfl_generator.cpp. ◆ XWriteStateSet()
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.
Definition at line 2744 of file cfl_generator.cpp. ◆ XWriteTransRel()
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.
Definition at line 2941 of file cfl_generator.cpp. Member Data Documentation◆ mId
Number of generator Definition at line 2904 of file cfl_generator.h. ◆ mInitStates
Initial states Definition at line 2967 of file cfl_generator.h. ◆ mMarkedStates
Marked states Definition at line 2970 of file cfl_generator.h. ◆ mMinStateIndexMapMap State indices to consecutive indices Definition at line 2973 of file cfl_generator.h. ◆ mpAlphabet
Pointer to alphabet (actual type depends on attributes) Definition at line 2931 of file cfl_generator.h. ◆ mpEventSymbolTable
Pointer to Event symbol table Definition at line 2916 of file cfl_generator.h. ◆ mpGlobalAttribute
Pointer to lobal attribute (actual type depends on attributes) Definition at line 2940 of file cfl_generator.h. ◆ mpStates
Pointer to state set (actual type depends on attributes) Definition at line 2934 of file cfl_generator.h. ◆ mpStateSymbolTable
Pointer to State symbol table Definition at line 2913 of file cfl_generator.h. ◆ mpTransRel
Pointer to ransition relation (actual type depends on attributes) Definition at line 2937 of file cfl_generator.h. ◆ mReindexOnWrite
Reindex states on file-i/o Definition at line 2925 of file cfl_generator.h. ◆ msObjectCount
Number of generator objects Definition at line 2907 of file cfl_generator.h. ◆ msReindexOnWriteDefault
Default for automatic statenames Definition at line 2928 of file cfl_generator.h. ◆ msStateNamesEnabledDefault
Default for automatic statenames Definition at line 2922 of file cfl_generator.h. ◆ mStateNamesEnabled
Automatic state names Definition at line 2919 of file cfl_generator.h. ◆ mStateSymbolTable
State symbol table (local per Generator) Definition at line 2910 of file cfl_generator.h. ◆ pAlphabetPrototype
Pointer to alphabet prototype (incl. attribute type) Definition at line 2943 of file cfl_generator.h. ◆ pGlobalPrototype
Pointer to global attribute prototype (configures global attribute type) Definition at line 2952 of file cfl_generator.h. ◆ pStatesPrototype
Pointer to state set prototype (incl. attribute type) Definition at line 2946 of file cfl_generator.h. ◆ pTransRelPrototype
Pointer to transition relation prototype (incl. attribute type) Definition at line 2949 of file cfl_generator.h. The documentation for this class was generated from the following files: libFAUDES 2.34d --- 2026.03.10 --- c++ api documentaion by doxygen |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||