|
|
||||||
|
cfl_generator.h
Go to the documentation of this file.
51 * The faudes::vGenerator models the plain five-tupel G = (X, Sigma, Delta, X_0, X_m) to represent
63 * For read access, const refererences to sets are provided. In order to allow for consistency checks,
73 * is a fundamental distinction between both, which stems from the design choice to use generators
74 * as a tool to represent formal languages. From this perspective, events are global enteties while states
75 * are local to the respective generator. Any two events within libFAUDES are related while states only
85 * which is represented by one index. However, both machines may have a state "Idle" which indicates
96 * Generators inherit the standard token IO interface from the libFAUDES general purpose base Type,
97 * so you may use Read and Write functions for generators. The file-format consists of a generator
98 * section that includes one subsection for each core member. It is illustrated by the below example
129 * Technical Detail: Since symbolic state names are optional, states may alternatively be represented
131 * was that states are indexed consecutively starting from 1. This convention produces nice and human-readable output.
132 * However, it requires a re-indexing when writing the generator. As of libFAUDES 2.20j, the token format was extended to
133 * allow for explicit symbol table entries in the format "symbolic_state_name#index". Whether or not re-indexing
134 * is applied can be configured via ReindexOnWrite(bool). The default is not to re-index. If you want to read your token
138 * Technical Detail: The generator name, the alphabet and the state set are optional. The generator
139 * name defaults to "generator"; the alphabet and the state set are extracted from the transition relation.
140 * Furthermore, there alternative short labels "A" for "Alphabet", "S" for "States" etc. are accepted.
141 * This short format has been introduced in 2.24e and is meant for embedding data concisely into luafaudes scripts.
196 * is optionally attached to individual states, events, transitions, or globally to the generator.
203 * implemented for plain generators will accept attributed generators as arguments. Such algorithms may
204 * occasionally inspect or set attributes using the abstract interface and C++ dynamic casts. For
384 virtual void Version(const std::string& rPattern,const std::string& rReplacement, vGenerator& rResGen) const;
2356 * True if resulting generator contains at least one initial state and at least one marked state.
2384 * True if resulting generator contains at least one initial state and at least one marked state.
2485 * re-indexed output to e.g. a string, you must set up the map by calling SetMinStateIndexMap().
3044 virtual void DoWrite(TokenWriter& rTw, const std::string& rLabel="",const Type* pContext=0) const;
3062 virtual void DoDWrite(TokenWriter& rTw, const std::string& rLabel="",const Type* pContext=0) const;
3094 virtual void DoXWrite(TokenWriter& rTw, const std::string& rLabel="",const Type* pContext=0) const;
3214 void XWriteStateSet(TokenWriter& rTw, const StateSet& rStateSet, const std::string& rLabel="") const;
3338 extern FAUDES_API void Complete(const vGenerator& rGen, const EventSet& rSigmaO, vGenerator& rRes);
3380 extern FAUDES_API void SetIntersection(const vGenerator& rGenA, const vGenerator& rGenB, EventSet& rRes);
3390 extern FAUDES_API void SetUnion(const vGenerator& rGenA, const vGenerator& rGenB, EventSet& rRes);
3400 extern FAUDES_API void SetDifference(const vGenerator& rGenA, const vGenerator& rGenB, EventSet& rRes);
Compiletime options. Class Exception. Classes IndexSet, TaIndexSet. Classes NameSet, TaNameSet. Class SymbolTable. Class Token. Class TokenReader. Class TokenWriter. Classes Transition, TTransSet and TaTransSet. Runtime interface, faudes types. A SymbolTable associates sybolic names with indices. Definition: cfl_symboltable.h:61 TBaseSet< Transition, TransSort::X1EvX2 >::Iterator Iterator Iterator on transition. Definition: cfl_transset.h:269 A TokenReader reads sequential tokens from a file or string. Definition: cfl_tokenreader.h:63 A TokenWriter writes sequential tokens to a file, a string or stdout. Definition: cfl_tokenwriter.h:51 Triple (X1,Ev,X2) to represent current state, event and next state. Definition: cfl_transset.h:57 Base class of all libFAUDES objects that participate in the run-time interface. Definition: cfl_types.h:239 const EventSet * pAlphabetPrototype Pointer to alphabet prototype (incl. Definition: cfl_generator.h:2959 const AttributeVoid * pGlobalPrototype Pointer to global attribute prototype (configures global attribute type) Definition: cfl_generator.h:2968 EventSet * mpAlphabet Pointer to alphabet (actual type depends on attributes) Definition: cfl_generator.h:2947 AttributeVoid * mpGlobalAttribute Pointer to lobal attribute (actual type depends on attributes) Definition: cfl_generator.h:2956 void TransRel(TransSetX1X2Ev &res) const static bool msReindexOnWriteDefault Default for automatic statenames. Definition: cfl_generator.h:2944 SymbolTable mStateSymbolTable State symbol table (local per Generator) Definition: cfl_generator.h:2926 StateSet * mpStates Pointer to state set (actual type depends on attributes) Definition: cfl_generator.h:2950 TransSet * mpTransRel Pointer to ransition relation (actual type depends on attributes) Definition: cfl_generator.h:2953 void TransRel(TransSetEvX2X1 &res) const void TransRel(TransSetX2X1Ev &res) const const TransSet * pTransRelPrototype Pointer to transition relation prototype (incl. Definition: cfl_generator.h:2965 void TransRel(TransSetX2EvX1 &res) const static bool msStateNamesEnabledDefault Default for automatic statenames. Definition: cfl_generator.h:2938 std::map< Idx, Idx > mMinStateIndexMap Map State indices to consecutive indices. Definition: cfl_generator.h:2989 const StateSet * pStatesPrototype Pointer to state set prototype (incl. Definition: cfl_generator.h:2962 void ReadTransRel(const std::string &rFileName) Read the generator's transition relation from a file. TaNameSet< AttributeCFlags > Alphabet Convenience typedef for event sets with controllability attributes. Definition: cfl_cgenerator.h:240 void SetDifference(const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB, TBaseSet< T, Cmp > &rRes) Definition: cfl_baseset.h:1078 void SetUnion(const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB, TBaseSet< T, Cmp > &rRes) Definition: cfl_baseset.h:1019 void SetIntersection(const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB, TBaseSet< T, Cmp > &rRes) Definition: cfl_baseset.h:1049 vGenerator Generator Plain generator, api typedef for generator with no attributes. Definition: cfl_generator.h:3240 TBaseVector< Generator > GeneratorVector Convenience typedef for vectors og generators. Definition: cfl_generator.h:3246 void AlphabetExtract(const vGenerator &rGen, EventSet &rRes) RTI wrapper function. Definition: cfl_generator.cpp:3992 libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen |