|
|
||||||
|
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
386 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);
Classes IndexSet, TaIndexSet. Classes NameSet, TaNameSet. Class SymbolTable. Class Token. Class TokenReader. Class TokenWriter. Classes Transition, TTransSet and TaTransSet. Definition: cfl_attributes.h:52 Definition: cfl_indexset.h:78 Definition: cfl_nameset.h:69 Definition: cfl_symboltable.h:61 TBaseSet< Transition, TransSort::X1EvX2 >::Iterator Iterator Definition: cfl_transset.h:273 Definition: cfl_tokenreader.h:64 Definition: cfl_tokenwriter.h:52 Definition: cfl_transset.h:57 Definition: cfl_types.h:239 Definition: cfl_generator.h:213 const EventSet * pAlphabetPrototype Definition: cfl_generator.h:2959 const AttributeVoid * pGlobalPrototype Definition: cfl_generator.h:2968 virtual bool UpdateAttributes(void) Definition: cfl_generator.h:1897 AttributeVoid * mpGlobalAttribute Definition: cfl_generator.h:2956 void TransRel(TransSetX1X2Ev &res) const static bool msReindexOnWriteDefault Definition: cfl_generator.h:2944 SymbolTable * mpEventSymbolTable Definition: cfl_generator.h:2932 void TransRel(TransSetEvX2X1 &res) const void TransRel(TransSetX2X1Ev &res) const const TransSet * pTransRelPrototype Definition: cfl_generator.h:2965 void TransRel(TransSetX2EvX1 &res) const static bool msStateNamesEnabledDefault Definition: cfl_generator.h:2938 std::map< Idx, Idx > mMinStateIndexMap Definition: cfl_generator.h:2989 const StateSet * pStatesPrototype Definition: cfl_generator.h:2962 SymbolTable * mpStateSymbolTable Definition: cfl_generator.h:2929 void ReadTransRel(const std::string &rFileName) void SetDifference(const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB, TBaseSet< T, Cmp > &rRes) Definition: cfl_baseset.h:1092 void SetUnion(const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB, TBaseSet< T, Cmp > &rRes) Definition: cfl_baseset.h:1033 void SetIntersection(const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB, TBaseSet< T, Cmp > &rRes) Definition: cfl_baseset.h:1063 void AlphabetExtract(const vGenerator &rGen, EventSet &rRes) Definition: cfl_generator.cpp:3992 bool IsDeterministic(const vGenerator &rGen) Definition: cfl_generator.cpp:3914 Definition: cfl_agenerator.h:43 libFAUDES 2.33c --- 2025.05.15 --- c++ api documentaion by doxygen |