DiaDes
0.1
DIAgnosis of Discrete-Event System
|
Namespaces | |
LocalCandidateMachine | |
Projection | |
Enumerations | |
enum | TsConversionMode { normal, full, update } |
Functions | |
template<typename Fsm , typename BeliefStateIterator , typename StateCreation > | |
bool | abstract (const Fsm &machine, Fsm &abstractedMachine, BeliefStateIterator bfBegin, BeliefStateIterator bfEnd, std::vector< typename Fsm::State > &abstractedStates, StateCreation &creator) |
template<typename Fsm , typename BeliefStateIterator , typename StateCreation > | |
bool | abstract (const Fsm &machine, Fsm &abstractedMachine, BeliefStateIterator bfBegin, BeliefStateIterator bfEnd, StateCreation &creator) |
void | transformToCandidateStateMachine (const Component &component, Lcm::EvManager &manager, Lcm::EvSetManager &setManager, Lcm::LocalStateInfoManager &locStateInfoManager, Lcm::CandidateManager &candidateManager, Lcm::Fsm &result) |
template<typename Fsm > | |
bool | autFsmNeedEncoding (const Fsm &fsm) |
template<typename Fsm > | |
void | autFileStateEncoding (const Fsm &fsm, Diades::Graph::ConstNodeMap< AutStateId > &encoding) |
template<typename Fsm > | |
void | autFileStateReencoding (Fsm &fsm) |
bool | fromAutFile (std::istream &stream, AutFsm &fsm) |
bool | toAutFile (ostream &stream, const AutFsm &fsm, bool enforce=false) |
template<typename AutFsmRange > | |
bool | insertAutFsms (AutFsmRange range, AutFsm &output) |
template<typename Fsm > | |
bool | isComplete (const Fsm &machine) |
template<typename Fsm > | |
void | complete (Fsm &machine) |
bool | fsmFromDdAutFile (std::istream &stream, const ManagedDdAutFsm &mFsm) |
bool | faFromDdAutFile (std::istream &stream, const ManagedDdAutFA &mFa) |
bool | fsmToDdAutFile (ostream &stream, const ConstManagedDdAutFsm &mFsm) |
bool | faToDdAutFile (ostream &stream, const ConstManagedDdAutFA &mFa) |
bool | fsmToAutFile (ostream &stream, const DdAutFsm &fsm, const DdAutEventManager &eManager, bool enforce=false) |
template<typename DdAutFsmType > | |
bool | generateSynchronisedDdAutEventLabels (const SynchronisationRules< DdAutFsmType > &synchro, const std::vector< DdAutEventManager > &eventManagers, DdAutEventManager &syncEventManager) |
void | insertDdAutFA (const DdAutFA &sourceFsm, const DdAutStateManager &sourceStateManager, const DdAutEventManager &sourceEventManager, DdAutFA &targetFsm, DdAutStateManager &targetStateManager, DdAutEventManager &targetEventManager) |
template<typename DdAutFARange , typename RangeDdAutSM , typename RangeDdAutEM > | |
bool | insertFiniteAutomata (DdAutFARange faRange, RangeDdAutSM smRange, RangeDdAutEM evRange, DdAutFA &result, DdAutStateManager &targetStateManager, DdAutEventManager &targetEventManager) |
bool | fsmToDescriptor (const DdAutFsm &fsm, DdAutFileDescriptor &descriptor, const DdAutStateManager &sManager, const DdAutEventManager &eManager, Diades::Graph::ConstNodeMap< DdAutStateId > &encoding) |
bool | fsmFromDescriptor (const DdAutFileDescriptor &descriptor, DdAutFsm &fsm, DdAutStateManager &sManager, DdAutEventManager &eManager) |
bool | faToDescriptor (const DdAutFA &fa, DdAutFileDescriptor &descriptor, const DdAutStateManager &sManager, const DdAutEventManager &eManager, Diades::Graph::ConstNodeMap< DdAutStateId > &encoding) |
bool | faFromDescriptor (const DdAutFileDescriptor &descriptor, DdAutFA &fa, DdAutStateManager &sManager, DdAutEventManager &eManager) |
template<typename DdAutFsmType > | |
bool | rulesToDescriptor (const SynchronisationRules< DdAutFsmType > &rules, DdSyncDescriptor &desc) |
template<typename DdAutFsmType > | |
bool | descriptorToRules (const DdSyncDescriptor &desc, ParametrizedSynchronisation< DdAutFsmType > &rules, std::string &errorMsg) |
template<typename Fsm > | |
bool | isDeterministic (const Fsm &machine) |
template<typename Fsm , typename StateCreator > | |
void | determine (const Fsm &machine, Fsm &deterministicMachine, StateCreator &creator) |
template<typename _SPId , typename _ISId , typename _NSPId = NullValue<_SPId>, typename _NISId = NullValue< _ISId>> | |
bool | isNotChoiceState (const FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId > &fsa, typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State state, const LocStateMap &levels) |
return true if the state is definitely considered as a no-choice state More... | |
template<typename _SPId , typename _ISId , typename _NSPId = NullValue<_SPId>, typename _NISId = NullValue< _ISId>> | |
void | setLevelStateAndPropagate (const FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId > &fsa, std::list< typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State > &states, int currentLevel, LocStateMap &levels, typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State state, std::unordered_set< typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State > &tagged, std::unordered_set< typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State > &visited) |
set the level of the current state and insert its untagged predecessors in the list 'states' update the tagged and visited data structure if the state is not an initial state More... | |
template<typename _SPId , typename _ISId , typename _NSPId = NullValue<_SPId>, typename _NISId = NullValue< _ISId>> | |
bool | setLevel (const FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId > &fsa, std::list< typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State > &states, int currentLevel, LocStateMap &levels) |
template<typename _SPId , typename _ISId , typename _NSPId = NullValue<_SPId>, typename _NISId = NullValue< _ISId>> | |
bool | levelOfChoice (const FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId > &fsa, LocStateMap &result) |
template<typename Fsm > | |
void | extractEffectiveChoiceTransitions (Fsm &traces, const ExplLocStateMap &levelOfChoice, unordered_set< typename Fsm::Transition > &solutions) |
Extraction from the traces of A || Pbar || L, the set of effective choice transitions. More... | |
std::unordered_set< DdAutFA::Transition > | getSafeAlternatives (const DdAutFA &traces, DdAutFA::State state, const ExplLocStateMap &levelOfChoiceInTraces, const Diades::Graph::NodeMap< DdAutFA::State > &mapping, const DdAutFA &fsa, const LocStateMap &levelOfChoiceInFsa, const DdAutStateManager &sManager, const DdAutEventManager &eManager) |
template<typename StateIterator > | |
bool | explainFromStates (StateIterator begin, StateIterator end, const DdAutFA &fsa, const DdAutStateManager &sManager, const DdAutEventManager &eManager, const Observations &observations, Observables &observables, DdAutFA &explanations, DdAutFA &traces, DdAutStateManager &sManagerExplanation, const Matcher &matcher, const LocStateMap &levelOfChoice, SafeAlt< DdAutFA > &safeAlternatives) |
Matcher | initialiseMatcher (const DdAutEventManager &eManager, const std::vector< std::string > &observations) |
bool | explain (const DdAutFA &fsa, const DdAutStateManager &sManager, const DdAutEventManager &eManager, const std::vector< std::string > &observations, Observables &observables, DdAutFA &explanations, DdAutFA &fullExplanations, DdAutStateManager &sManagerExplanation, std::unordered_map< DdAutFA::State, unordered_set< DdAutFA::Transition > > &safeAlternatives) |
ostream & | toDotHeader (ostream &os) |
template<typename StateMachine > | |
ostream & | toDotHeader (const StateMachine &fsm, ostream &os) |
template<typename StateMachine > | |
ostream & | toDotInitialStates (const StateMachine &fsm, ostream &os) |
template<typename StateMachine , typename PrintStateProperty > | |
ostream & | toDotStates (const StateMachine &fsm, const PrintStateProperty &statePrinter, ostream &os) |
template<typename S , typename I , typename NS , typename NI , typename PrintStateProperty > | |
ostream & | toDotStates (const FiniteAutomaton< S, I, NS, NI > &fsm, const PrintStateProperty &statePrinter, ostream &os) |
template<typename StateMachine > | |
ostream & | toDotStates (const StateMachine &fsm, ostream &os) |
template<typename S , typename I , typename NS , typename NI > | |
ostream & | toDotStates (const FiniteAutomaton< S, I, NS, NI > &fa, ostream &os) |
ostream & | toDotEnding (ostream &os) |
template<typename StateMachine , typename PrintEventInfo > | |
ostream & | toDotTransitions (const StateMachine &fsm, const PrintEventInfo &eventPrinter, ostream &os) |
template<typename StateProperty , typename EventInfo , typename PrintEventInfo > | |
ostream & | toDotTransitions (const FaultyEventStateMachine< StateProperty, EventInfo > &fsm, const PrintEventInfo &eventPrinter, ostream &os) |
template<typename StateMachine > | |
ostream & | toDotTransitions (const StateMachine &fsm, ostream &os) |
template<typename StateProperty , typename EventInfo > | |
ostream & | toDotTransitions (const FaultyEventStateMachine< StateProperty, EventInfo > &fsm, ostream &os) |
template<typename StateMachine , typename PrintStateProperty , typename PrintEventInfo > | |
ostream & | toDot (ostream &os, const StateMachine &fsm, const PrintStateProperty &statePrinter, const PrintEventInfo &eventPrinter) |
template<typename StateMachine > | |
ostream & | toDot (ostream &os, const StateMachine &fsm) |
template<typename StateMachine > | |
bool | toDot (const std::string &filename, const StateMachine &fsm) |
template<> | |
ostream & | toDot (ostream &os, const DdSyncDescriptor &descriptor) |
template<typename StateProperty , typename FaultProperty > | |
ostream & | operator<< (ostream &os, const LocalCandidate< StateProperty, FaultProperty > &candidate) |
template<typename Fsm > | |
bool | splitPartition (const Fsm &machine, const std::shared_ptr< BeliefState< Fsm >> bigQ0, const std::shared_ptr< BeliefState< Fsm >> bigQ1, typename Fsm::EventPropertyId littleA, std::shared_ptr< BeliefState< Fsm >> bigQ0prime, std::shared_ptr< BeliefState< Fsm >> bigQ0MinusbigQ0prime) |
template<typename Fsm > | |
void | nerodePartition (const Fsm &machine, vector< std::shared_ptr< BeliefState< Fsm >>> &partition) |
template<typename Fsm , typename StateCreator > | |
void | minimizeDeterministicMachine (const Fsm &machine, Fsm &minimalMachine, StateCreator &creator) |
template<typename Fsm , typename StateCreator > | |
void | minimize (const Fsm &machine, Fsm &minimalMachine, StateCreator &creator) |
template<typename Fsm , typename IsGoal > | |
bool | project (const Fsm &machine, Fsm &abstractMachine, IsGoal isGoal, BsMap< Fsm > &bsMap, CstStMap< typename Fsm::State > &stMap) |
template<typename Fsm , typename IsGoal > | |
bool | project (const Fsm &machine, Fsm &abstractMachine, IsGoal isGoal) |
template<typename Fsm , typename EventPropertyIdIterator > | |
bool | project (const Fsm &machine, Fsm &abstractMachine, EventPropertyIdIterator begin, EventPropertyIdIterator end, BsMap< Fsm > &bsMap, CstStMap< typename Fsm::State > &stMap) |
template<typename Fsm , typename EventPropertyIdIterator > | |
bool | project (const Fsm &machine, Fsm &abstractMachine, EventPropertyIdIterator begin, EventPropertyIdIterator end) |
template<typename Fsm , typename IsGoal , typename StateProperty , typename StateLabelProjection > | |
bool | project (const Fsm &fsm, Fsm &projectedFsm, const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &stateManager, StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &projectionStateManager, const StateLabelProjection &projection, IsGoal isGoal, BsMap< Fsm > &bsMap, CstStMap< typename Fsm::State > &stMap) |
template<typename Fsm , typename IsGoal , typename StateProperty , typename StateLabelProjection > | |
bool | project (const Fsm &fsm, Fsm &projectedFsm, const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &stateManager, StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &projectionStateManager, const StateLabelProjection &projection, IsGoal isGoal) |
template<typename Fsm , typename EventPropertyIdIterator , typename StateProperty , typename StateLabelProjection > | |
bool | project (const Fsm &fsm, Fsm &projectedFsm, const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &stateManager, StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &projectionStateManager, const StateLabelProjection &projection, EventPropertyIdIterator begin, EventPropertyIdIterator end, BsMap< Fsm > &bsMap, CstStMap< typename Fsm::State > &stMap) |
template<typename Fsm , typename EventPropertyIdIterator , typename StateProperty , typename StateLabelProjection > | |
bool | project (const Fsm &fsm, Fsm &projectedFsm, const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &stateManager, StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &projectionStateManager, const StateLabelProjection &projection, EventPropertyIdIterator begin, EventPropertyIdIterator end) |
template<typename Fsm , typename EventPropertyIdIterator > | |
bool | abstractEvents (const Fsm &machine, Fsm &abstractMachine, EventPropertyIdIterator begin, EventPropertyIdIterator end, BsMap< Fsm > &bsMap, CstStMap< typename Fsm::State > &stMap) |
template<typename Fsm , typename EventPropertyIdIterator > | |
bool | abstractEvents (const Fsm &machine, Fsm &abstractMachine, EventPropertyIdIterator begin, EventPropertyIdIterator end) |
template<typename Fsm , typename EventPropertyIdIterator , typename StateProperty , typename StateLabelProjection > | |
bool | abstractEvents (const Fsm &fsm, Fsm &projectedFsm, const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &stateManager, StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &projectionStateManager, const StateLabelProjection &projection, EventPropertyIdIterator begin, EventPropertyIdIterator end, BsMap< Fsm > &bsMap, CstStMap< typename Fsm::State > &stMap) |
template<typename Fsm , typename EventPropertyIdIterator , typename StateProperty , typename StateLabelProjection > | |
bool | abstractEvents (const Fsm &fsm, Fsm &projectedFsm, const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &stateManager, StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > &projectionStateManager, const StateLabelProjection &projection, EventPropertyIdIterator begin, EventPropertyIdIterator end) |
template<typename StatePropertyId , typename EventPropertyId , typename InputIterator , typename NullStateProperty , typename NullEventProperty > | |
void | deleteTransition (StateMachine< StatePropertyId, EventPropertyId, NullStateProperty, NullEventProperty > &m, InputIterator first, InputIterator last) |
template<typename StatePropertyId , typename EventPropertyId , typename InputIterator , typename NullStateProperty , typename NullEventProperty > | |
void | deleteState (StateMachine< StatePropertyId, EventPropertyId, NullStateProperty, NullEventProperty > &m, InputIterator first, InputIterator last) |
template<typename StatePropertyId , typename EventPropertyId , typename InputIterator , typename Predicate , typename NullStatePropertyId = NullValue<StatePropertyId>, typename NullEventPropertyId > | |
void | deleteState (StateMachine< StatePropertyId, EventPropertyId, NullStatePropertyId, NullEventPropertyId > &m, InputIterator first, InputIterator last, Predicate pred) |
template<typename StatePropertyId , typename EventPropertyId , typename InputIterator , typename IsNullStatePropertyId , typename IsNullEventProperty > | |
void | deleteTransition (StateMachine< StatePropertyId, EventPropertyId, IsNullStatePropertyId, IsNullEventProperty > &m, InputIterator first, InputIterator last) |
template<typename StatePropertyId , typename EventPropertyId , typename InputIterator , typename IsNullStateProperty , typename IsNullEventProperty > | |
void | deleteState (StateMachine< StatePropertyId, EventPropertyId, IsNullStateProperty, IsNullEventProperty > &m, InputIterator first, InputIterator last) |
template<typename StatePropertyId , typename EventPropertyId , typename InputIterator , typename Predicate , typename IsNullStateProperty , typename IsNullEventProperty > | |
void | deleteState (StateMachine< StatePropertyId, EventPropertyId, IsNullStateProperty, IsNullEventProperty > &m, InputIterator first, InputIterator last, Predicate pred) |
template<typename StatePropertyId , typename EventPropertyId , typename InputIterator , typename Predicate , typename IsNullStateProperty , typename IsNullEventProperty , typename StatePropertyIdInsertIterator > | |
void | deleteState (StateMachine< StatePropertyId, EventPropertyId, IsNullStateProperty, IsNullEventProperty > &m, InputIterator first, InputIterator last, Predicate pred, StatePropertyIdInsertIterator insertIt) |
template<typename Fsm , typename StateCreator > | |
bool | synchronize (const std::vector< typename Ptr< Fsm >::ConstP > &components, const SynchronisationRules< Fsm > &rules, Fsm &synchronisation, StateCreator &creator) |
std::string | listSingleItem (const std::string &item) |
std::string | startListCaretItem (const std::string &item) |
std::string | endListCaretItem () |
std::string | startTree (const std::string &treeId) |
std::string | endTree () |
std::string | startNestedTree () |
std::string | endNestedTree () |
std::ostream & | toTreeViewHtmlStart (std::ostream &os) |
std::ostream & | toTreeViewHtmlEnd (std::ostream &os) |
template<typename Fsm , typename BeliefStateIterator , typename StateIdInsertIterator > | |
void | trimmingTraces (Fsm &machine, BeliefStateIterator bfBegin, BeliefStateIterator bfEnd, StateIdInsertIterator insertIt) |
Trim the traces of the Fsm that does not reach the given BeliefState. More... | |
template<typename Fsm , typename BeliefStateIterator , typename StateIdInsertIterator > | |
void | trimmingUnreachableStates (Fsm &machine, BeliefStateIterator bfBegin, BeliefStateIterator bfEnd, StateIdInsertIterator insertIt) |
Trim the states that cannot be reached from the given BeliefState. More... | |
template<typename Fsm , typename StateIdInsertIterator > | |
void | trimmingUnreachableStates (Fsm &machine, StateIdInsertIterator insertIt) |
Trim the states that cannot be reached from the initial states. More... | |
template<typename Fsm , typename BeliefStateIterator , typename StateIdInsertIterator > | |
bool | trimmingDeadlockStates (Fsm &machine, BeliefStateIterator bfBegin, BeliefStateIterator bfEnd, StateIdInsertIterator insertIt) |
Trim the states are the source of a deadlock within a range of states. More... | |
template<typename Fsm , typename StateIdInsertIterator > | |
bool | trimmingDeadlockStates (Fsm &machine, StateIdInsertIterator insertIt) |
Trim the states are the source of a deadlock. More... | |
template<typename Fsm , typename BeliefStateIterator , typename StateIdInsertIterator , typename DisableInsertIterator > | |
bool | controlledTrimmingDeadlockState (Fsm &machine, ControlPattern< Fsm > &pattern, BeliefStateIterator bfBegin, BeliefStateIterator bfEnd, StateIdInsertIterator insertIt, DisableInsertIterator disableIt) |
remove deadlock states of the machine by exploiting the events that are disabled in the current ControlPattern. More... | |
std::streampos | nextNoWhiteSpaceCharacter (std::istream &stream, bool &ok) |
return the stream position just before the first character that is a white space (not such that std::isspace is true) More... | |
bool | pruneCommentsBlock (std::istream &stream, bool &ok) |
analyze the stream and look for the end of a comment block More... | |
bool | pruneComments (std::istream &stream, bool &ok) |
read the stream and ignore the next c-style/cpp style comments More... | |
bool | checkSystemIdentifier (std::string &tsName, std::string::size_type &semiColonIndex) |
check that tsName is the name of a transition_system More... | |
std::istream & | tsFileTransitionLabel (std::istream &stream, std::unordered_map< std::string, std::string > &events, std::string &fullEventLabel, bool &ok) |
Read the transition label in a ts-format file. More... | |
void | tsExtractTargetState (const std::string &rawTargetState, std::string &targetState, std::string::size_type &semiColonIndex) |
extract the target state for the raw target state More... | |
std::istream & | tsFileHeader (std::istream &stream, std::string &tsName, bool &ok) |
parse the Ts-format file header More... | |
std::istream & | tsFileTransitions (std::istream &stream, ManagedTsFsms &fsms, bool &ok, TsConversionMode mode) |
Read the transitions of a Ts-format stream. More... | |
std::istream & | tsFileStates (std::istream &stream, ManagedTsFsms &fsms, bool &ok) |
bool | fromTsFile (std::istream &stream, ManagedTsFsms &fsms, TsConversionMode mode) |
Load a Ts file as a DdAutFsm. More... | |
std::string | tsPrettyEvent (const std::string &tsEvent) |
template<typename TransInserter > | |
void | insertTransitions (TransInserter &inserter) |
template<typename TransInserterIterator > | |
void | insertRangeOfTransitions (TransInserterIterator begin, TransInserterIterator end) |
using Diades::Automata::Experimental::AutEventId = typedef std::string |
Definition at line 39 of file AutFile.hh.
AutFsmTransitionInserter This is the TransitionInserter associated with an Diades::Automata::Experimental::AutFsm |
and mainly used in insertAutFsms
It incrementally generates AutFsm::StatePropertyId's on demand (must be initialised with 0)
and mainly used in insertAutFsms. It inserts copies of State with new StateIds
and mainly used in insertAutFsms. It inserts copies of State with new StateIds. Event are inserted via an AutFsmEventInserter
Definition at line 45 of file AutFile.hh.
using Diades::Automata::Experimental::AutFsmEventInserter = typedef EventInserter<AutFsm> |
Definition at line 232 of file AutFile.hh.
using Diades::Automata::Experimental::AutFsmStateIdGenerator = typedef StateIdGenerator<AutFsm, Diades::Utils::IncrementGenerator<AutFsm::StatePropertyId> > |
Definition at line 239 of file AutFile.hh.
using Diades::Automata::Experimental::AutFsmStateInserter = typedef StateInserter<AutFsmStateIdGenerator, StateCopy<AutFsm> > |
Definition at line 245 of file AutFile.hh.
using Diades::Automata::Experimental::AutFsmTransitionInserter = typedef TransitionInserter<AutFsmStateInserter,AutFsmEventInserter> |
Definition at line 254 of file AutFile.hh.
using Diades::Automata::Experimental::AutStateId = typedef StatePropertyIdAsSizeT |
Definition at line 34 of file AutFile.hh.
using Diades::Automata::Experimental::BsMap = typedef StMap<BsPtr<Fsm> > |
Definition at line 482 of file BeliefState.hh.
using Diades::Automata::Experimental::BsPtr = typedef typename BeliefState<Fsm>::SharedPtr |
Definition at line 466 of file BeliefState.hh.
using Diades::Automata::Experimental::CstBsMap = typedef CstStMap<BsPtr<Fsm> > |
Definition at line 474 of file BeliefState.hh.
using Diades::Automata::Experimental::CstStMap = typedef Diades::Graph::ConstNodeMap<Type> |
Definition at line 1857 of file StateMachine.hh.
using Diades::Automata::Experimental::CstTrMap = typedef Diades::Graph::ConstEdgeMap<Type> |
Definition at line 1873 of file StateMachine.hh.
using Diades::Automata::Experimental::DdAutAmpersand = typedef Diades::Utils::StringBinaryCombination<char, '&', std::char_traits<char>, std::allocator<char> > |
Definition at line 169 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutBraces = typedef Diades::Utils::StringDelimiter<char, '{', '}', std::char_traits<char>, std::allocator<char> > |
Definition at line 176 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutComma = typedef Diades::Utils::StringBinaryCombination<char, ',', std::char_traits<char>, std::allocator<char> > |
Definition at line 163 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutConjunction = typedef Diades::Utils::Conjunction<DdAutStateLabel, DdAutComma, DdAutParentheses> |
Definition at line 195 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutDisjunction = typedef Diades::Utils::Disjunction<DdAutStateLabel, DdAutComma, DdAutBraces> |
Definition at line 189 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutEventId = typedef size_t |
Definition at line 37 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutEventLabel = typedef std::string |
Definition at line 58 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutEventManager = typedef EventManager<DdAutEventLabel, DdAutEventId> |
Definition at line 68 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutEventPrinter = typedef EventManagerPrettyPrinter<DdAutEventLabel, DdAutEventId> |
Definition at line 156 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutFA = typedef FiniteAutomaton<DdAutStateId, DdAutEventId> |
Definition at line 47 of file DdAutFile.hh.
DdAutEventPrinter EventManagerPrettyPrinter associated with a Diades::Automata::Experimental::DdAutFsm |
Definition at line 42 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutParentheses = typedef Diades::Utils::StringDelimiter<char, '(', ')', std::char_traits<char>, std::allocator<char> > |
Definition at line 182 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutProjection = typedef DiGraphComponentStartingWith<DdAutStateLabel, char, '|', DdAutComma, DdAutBraces> |
Definition at line 201 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutStateId = typedef AutStateId |
Definition at line 32 of file DdAutFile.hh.
Definition at line 53 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutStateManager = typedef StatePropertyManager<DdAutStateLabel, DdAutStateId> |
Definition at line 63 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutStatePrinter = typedef StateInfoManagerPrettyPrinter<DdAutStateLabel, DdAutStateId> |
Definition at line 151 of file DdAutFile.hh.
using Diades::Automata::Experimental::DdAutSynchronisation = typedef Diades::Utils::Conjunction<DdAutEventLabel, DdAutAmpersand, Diades::Utils::NoDelimiter<char, std::char_traits<char>, std::allocator<char> >> |
Definition at line 208 of file DdAutFile.hh.
using Diades::Automata::Experimental::ExplLocStateMap = typedef Diades::Graph::NodeMap<int> |
Definition at line 32 of file Explanation.hh.
using Diades::Automata::Experimental::LocStateMap = typedef Diades::Graph::ConstNodeMap<int> |
Definition at line 30 of file Explanation.hh.
using Diades::Automata::Experimental::ManagedTsFsm = typedef std::tuple<TsFsmPtr,TsStMgrPtr,TsEvtMgrPtr> |
using Diades::Automata::Experimental::ManagedTsFsms = typedef std::vector<ManagedTsFsm> |
using Diades::Automata::Experimental::Matcher = typedef std::unordered_map<Observation,Observables> |
Definition at line 239 of file Explanation.hh.
using Diades::Automata::Experimental::Observables = typedef std::set<DdAutFA::EventPropertyId> |
Definition at line 238 of file Explanation.hh.
using Diades::Automata::Experimental::Observation = typedef std::string |
Definition at line 236 of file Explanation.hh.
using Diades::Automata::Experimental::Observations = typedef std::vector<Observation> |
Definition at line 237 of file Explanation.hh.
using Diades::Automata::Experimental::SafeAlt = typedef std::unordered_map<typename Fsm::State, std::unordered_set<typename Fsm::Transition> > |
Definition at line 377 of file Explanation.hh.
using Diades::Automata::Experimental::StatePropertyAsStringLabel = typedef std::string |
Definition at line 37 of file StatePropertyManager.hh.
using Diades::Automata::Experimental::StatePropertyAsUnsigned = typedef unsigned |
Definition at line 45 of file StatePropertyManager.hh.
using Diades::Automata::Experimental::StatePropertyIdAsSizeT = typedef size_t |
Definition at line 43 of file StateMachine.hh.
using Diades::Automata::Experimental::StMap = typedef Diades::Graph::NodeMap<Type> |
Definition at line 1865 of file StateMachine.hh.
using Diades::Automata::Experimental::TrMap = typedef Diades::Graph::EdgeMap<Type> |
Definition at line 1881 of file StateMachine.hh.
using Diades::Automata::Experimental::TsEvtMgr = typedef DdAutEventManager |
using Diades::Automata::Experimental::TsEvtMgrPtr = typedef std::shared_ptr<TsEvtMgr> |
using Diades::Automata::Experimental::TsFsm = typedef DdAutFsm |
using Diades::Automata::Experimental::TsFsmPtr = typedef std::shared_ptr<TsFsm> |
using Diades::Automata::Experimental::TsStMgr = typedef DdAutStateManager |
using Diades::Automata::Experimental::TsStMgrPtr = typedef std::shared_ptr<TsStMgr> |
bool Diades::Automata::Experimental::abstract | ( | const Fsm & | machine, |
Fsm & | abstractedMachine, | ||
BeliefStateIterator | bfBegin, | ||
BeliefStateIterator | bfEnd, | ||
std::vector< typename Fsm::State > & | abstractedStates, | ||
StateCreation & | creator | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
bfBegin | the start iterator of a BeliefState<Property,EventInfo> range |
bfEnd | the end iterator of a BeliefState<Property,EventInfo> range |
abstractedStates | the created states of abstractMachine in the order of the BeliefState range. |
[bfBegin,bfEnd) represents a set of belief states bs1, bs2, ... bsn. Each bsi is a set of State from the initial StateMachine 'machine'. The abstracted machine will contain n states. State si will represent the states of bsi. A transition t of event e between state si and sj exists in the abstracted machine iff there exists a transition t of event e between a state from bsi and a state from bsj in the original machine. The state si of the abtracted machine is initial as soon as one of the state of bsi is initial. Definition at line 45 of file Abstract.hh.
bool Diades::Automata::Experimental::abstract | ( | const Fsm & | machine, |
Fsm & | abstractedMachine, | ||
BeliefStateIterator | bfBegin, | ||
BeliefStateIterator | bfEnd, | ||
StateCreation & | creator | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
bfBegin | the start iterator of a BeliefState<Property,EventInfo> range |
bfEnd | the end iterator of a BeliefState<Property,EventInfo> range |
abstractedStates | the created states of abstractMachine in the order of the BeliefState range. |
[bfBegin,bfEnd) represents a set of belief states bs1, bs2, ... bsn. Each bsi is a set of State from the initial StateMachine 'machine'. The abstracted machine will contain n states. State si will represent the states of bsi. A transition t of event e between state si and sj exists in the abstracted machine iff there exists a transition t of event e between a state from bsi and a state from bsj in the original machine. The state si of the abtracted machine is initial as soon as one of the state of bsi is initial.machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
bfBegin | the start iterator of a BeliefState<Property,EventInfo> range |
bfEnd | the end iterator of a BeliefState<Property,EventInfo> range |
[bfBegin,bfEnd) represents a set of belief states bs1, bs2, ... bsn. Each bsi is a set of State from the initial StateMachine 'machine'. The abstracted machine will contain n states. State si will represent the states of bsi. A transition t of event e between state si and sj exists in the abstracted machine iff there exists a transition t of event e between a state from bsi and a state from bsj in the original machine. The state si of the abtracted machine is initial as soon as one of the state of bsi is initial. Definition at line 190 of file Abstract.hh.
bool Diades::Automata::Experimental::abstractEvents | ( | const Fsm & | machine, |
Fsm & | abstractMachine, | ||
EventPropertyIdIterator | begin, | ||
EventPropertyIdIterator | end, | ||
BsMap< Fsm > & | bsMap, | ||
CstStMap< typename Fsm::State > & | stMap | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
begin | the start iterator of a range of EventInfoId to abstract |
end | the end iterator of a range of EventInfoId to abstract |
bsMap | resulting mapping that associates a State from abstractMachine to the set of abstracted states in the initial machine |
stMap | resulting mapping that associates a State of the initial machine to the state in the abstractMachine. Only initial states or states from the initial machine that are targets of a projected transition have an association. Any other states of the initial StateMachine are associated with an invalid state (as they may actually belong to several belief states of the abstracted machine). |
Definition at line 720 of file Project.hh.
References Diades::Automata::Experimental::Projection::projectRange().
Referenced by abstractEvents().
bool Diades::Automata::Experimental::abstractEvents | ( | const Fsm & | machine, |
Fsm & | abstractMachine, | ||
EventPropertyIdIterator | begin, | ||
EventPropertyIdIterator | end | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
begin | the start iterator of a range of EventInfoId to abstract |
end | the end iterator of a range of EventInfoId to abstract |
Definition at line 757 of file Project.hh.
References abstractEvents().
bool Diades::Automata::Experimental::abstractEvents | ( | const Fsm & | fsm, |
Fsm & | projectedFsm, | ||
const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | stateManager, | ||
StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | projectionStateManager, | ||
const StateLabelProjection & | projection, | ||
EventPropertyIdIterator | begin, | ||
EventPropertyIdIterator | end, | ||
BsMap< Fsm > & | bsMap, | ||
CstStMap< typename Fsm::State > & | stMap | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
begin | the start iterator of a range of EventInfoId to project |
end | the end iterator of a range of EventInfoId to project |
bsMap | resulting mapping that associates a State from abstractMachine to the set of abstracted states in the initial machine |
stMap | resulting mapping that associates a State of the initial machine to the state in the abstractMachine. Only initial states or states from the initial machine that are targets of a projected transition have an association. Any other states of the initial StateMachine are associated with an invalid state (as they may actually belong to several belief states of the abstracted machine). |
Definition at line 791 of file Project.hh.
References Diades::Automata::Experimental::Projection::projectRange().
bool Diades::Automata::Experimental::abstractEvents | ( | const Fsm & | fsm, |
Fsm & | projectedFsm, | ||
const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | stateManager, | ||
StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | projectionStateManager, | ||
const StateLabelProjection & | projection, | ||
EventPropertyIdIterator | begin, | ||
EventPropertyIdIterator | end | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
begin | the start iterator of a range of EventInfoId to project |
end | the end iterator of a range of EventInfoId to project |
Definition at line 838 of file Project.hh.
References abstractEvents().
void Diades::Automata::Experimental::autFileStateEncoding | ( | const Fsm & | fsm, |
Diades::Graph::ConstNodeMap< AutStateId > & | encoding | ||
) |
autFileStateEncoding computes a compatible state encoding to store the fsm into an aut file. States in aut file must start from 0 continously to n-1 where n is the number of states
fsm | the fsm to reencode |
encoding | the resulting encoding |
Definition at line 79 of file AutFile.hh.
References Diades::Graph::ConstNodeMap< T >::init().
Referenced by autFileStateReencoding().
void Diades::Automata::Experimental::autFileStateReencoding | ( | Fsm & | fsm | ) |
autFileStateReencoding reencodes the states of the fsm to be ready for storage into an aut file. States in aut file must start from 0 continuously to n-1 where n is the number of states
fsm | the fsm to reencode |
Definition at line 109 of file AutFile.hh.
References autFileStateEncoding(), fromAutFile(), and toAutFile().
Referenced by insertAutFsms().
bool Diades::Automata::Experimental::autFsmNeedEncoding | ( | const Fsm & | fsm | ) |
fsm | an AutFsm or anything like an AutFsm with AutStateId as StateProperty |
Definition at line 55 of file AutFile.hh.
bool Diades::Automata::Experimental::checkSystemIdentifier | ( | std::string & | tsName, |
std::string::size_type & | semiColonIndex | ||
) |
check that tsName is the name of a transition_system
tsName is a piece of text without any space but it can be a text like 'identifier;' The idea here is to detect such a format. If ';' is present then it is removed from tsName (i.e. tsName then becomes 'identifier') and secondColonIndex returns the index where the ';' was. If ';' is not found then semiColonIndex remains unchanged (so please assign it to std::string::npos to make it as non informative).
tsName | the text to analyze as a identifier of a transition_system. It is updated by removing ';' if such a ';' is found. |
semiColonIndex | the index of the ';' if it is found in 'tsName' (unchanged otherwise) |
void Diades::Automata::Experimental::complete | ( | Fsm & | machine | ) |
machine | The original StateMachine |
Definition at line 58 of file Complete.hh.
Referenced by completeAut(), and completeDdaut().
bool Diades::Automata::Experimental::controlledTrimmingDeadlockState | ( | Fsm & | machine, |
ControlPattern< Fsm > & | pattern, | ||
BeliefStateIterator | bfBegin, | ||
BeliefStateIterator | bfEnd, | ||
StateIdInsertIterator | insertIt, | ||
DisableInsertIterator | disableIt | ||
) |
remove deadlock states of the machine by exploiting the events that are disabled in the current ControlPattern.
A ControlPattern is a mapping that associates with each event type of the Fsm whether the event type is enabled or not (i.e. disabled). This function removes the deadlock states within the range of states in bfBegin/bfEnd by looking for states in the machine with an output event that can be disabled according to the pattern and, if it is triggered, will cause the trigger of enabled events (events that cannot be disabled according to the pattern) and lead to a deadlock state from the given range. It must be noticed that by pruning states, it might create new deadlock states that must be removed. After this function returns, the machine may still have some deadlocks but these deadlocks were not in the range bfBegin/bfEnd. If the range bfBegin/bfEnd is the full range of states in the machine, the function ensures that there is no more deadlock states in the returned machine. In case, there is no solution to the problem the resulting machine becomes invalid (with no more initial states).
[in] | machine | The Fsm that is updated |
[in] | pattern | The ControlPattern in use |
[in] | bfBegin | the start iterator on a range of states to visit |
[in] | bfEnd | the end iterator on a range of states to visit |
[out] | insertIt | an insert iterator in charge of keeping the StatePropertyId of the states that are removed. |
[out] | disableIt | an insert iterator in charge of keeping the pair <StatePropertyId,Event> of disabled events that remove the deadlocks. |
Definition at line 258 of file Trimming.hh.
References Diades::Automata::Experimental::ControlPattern< Fsm >::enabled().
Referenced by trimDdAutStates2().
|
inline |
|
inline |
|
inline |
Definition at line 1809 of file StateMachine.hh.
|
inline |
Definition at line 1821 of file StateMachine.hh.
|
inline |
Definition at line 1836 of file StateMachine.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::deleteState(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getStatePropertyId().
|
inline |
|
inline |
STL-like algorithm
Definition at line 1797 of file StateMachine.hh.
bool Diades::Automata::Experimental::descriptorToRules | ( | const DdSyncDescriptor & | desc, |
ParametrizedSynchronisation< DdAutFsmType > & | rules, | ||
std::string & | errorMsg | ||
) |
desc | the descriptor |
rules | the initialised set of synchronisation rules |
errorMsg | updated with potential errors in no success |
Definition at line 456 of file DdSyncDescriptor.hh.
References Diades::Automata::Experimental::DdSyncDescriptor::begin(), Diades::Automata::Experimental::ParametrizedSynchronisation< StateMachine >::clear(), Diades::Automata::Experimental::ParametrizedSynchronisation< StateMachine >::clearRules(), Diades::Automata::Experimental::ParametrizedSynchronisation< StateMachine >::close(), Diades::Automata::Experimental::DdSyncDescriptor::end(), Diades::Automata::Experimental::SynchronisationRules< StateMachine >::endOfComponents(), Diades::Automata::Experimental::SynchronisationRules< StateMachine >::findComponent(), Diades::Utils::Ptr< T >::get(), and Diades::Automata::Experimental::ParametrizedSynchronisation< StateMachine >::synchronise().
Referenced by synchroniseDdAut().
void Diades::Automata::Experimental::determine | ( | const Fsm & | machine, |
Fsm & | deterministicMachine, | ||
StateCreator & | creator | ||
) |
machine | The original StateMachine |
deterministicMachine | The deterministic version of the original StateMachine |
creator | Definition of the way the states of the deterministic machine will be created from the original machine (should be a derived class from BeliefStateBasedStateCreator) |
Definition at line 65 of file Determine.hh.
References require, and states.
Referenced by determineAut(), determineDdaut(), minimizeAut(), and minimizeDdaut().
std::string Diades::Automata::Experimental::endListCaretItem | ( | ) |
Referenced by writeTreeView(), and writeTreeViewTransition().
std::string Diades::Automata::Experimental::endNestedTree | ( | ) |
Referenced by writeTreeView(), and writeTreeViewTransition().
std::string Diades::Automata::Experimental::endTree | ( | ) |
Referenced by writeTreeView().
bool Diades::Automata::Experimental::explain | ( | const DdAutFA & | fsa, |
const DdAutStateManager & | sManager, | ||
const DdAutEventManager & | eManager, | ||
const std::vector< std::string > & | observations, | ||
Observables & | observables, | ||
DdAutFA & | explanations, | ||
DdAutFA & | fullExplanations, | ||
DdAutStateManager & | sManagerExplanation, | ||
std::unordered_map< DdAutFA::State, unordered_set< DdAutFA::Transition > > & | safeAlternatives | ||
) |
Definition at line 555 of file Explanation.hh.
References explainFromStates(), initialiseMatcher(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::initialStateBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::initialStateEnd(), levelOfChoice(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::name(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::setName().
Referenced by explainLog().
bool Diades::Automata::Experimental::explainFromStates | ( | StateIterator | begin, |
StateIterator | end, | ||
const DdAutFA & | fsa, | ||
const DdAutStateManager & | sManager, | ||
const DdAutEventManager & | eManager, | ||
const Observations & | observations, | ||
Observables & | observables, | ||
DdAutFA & | explanations, | ||
DdAutFA & | traces, | ||
DdAutStateManager & | sManagerExplanation, | ||
const Matcher & | matcher, | ||
const LocStateMap & | levelOfChoice, | ||
SafeAlt< DdAutFA > & | safeAlternatives | ||
) |
Definition at line 382 of file Explanation.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::behaviour(), extractEffectiveChoiceTransitions(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getEvent(), getSafeAlternatives(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getState(), Diades::Automata::Experimental::StatePropertyManager< _StateProperty, _StatePropertyId, NullStProperty, NullStPropertyId, Hash >::getStateProperty(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getStatePropertyId(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::inputEventTransitionBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::inputEventTransitionEnd(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::isInitial(), levelOfChoice(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::newTransition(), project(), Diades::Automata::Experimental::FiniteAutomaton< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::setAcceptingState(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::setInitial(), and Diades::Automata::Experimental::StatePropertyManager< _StateProperty, _StatePropertyId, NullStProperty, NullStPropertyId, Hash >::statePropertyId().
Referenced by explain().
void Diades::Automata::Experimental::extractEffectiveChoiceTransitions | ( | Fsm & | traces, |
const ExplLocStateMap & | levelOfChoice, | ||
unordered_set< typename Fsm::Transition > & | solutions | ||
) |
Extraction from the traces of A || Pbar || L, the set of effective choice transitions.
traces | any path from the initial state to an acceptor states is a trace from A || Pbar || L |
levelOfChoice | the level of choices on any state in traces |
solutions | the returned set of effective choice transitions |
Definition at line 253 of file Explanation.hh.
Referenced by explainFromStates().
bool Diades::Automata::Experimental::faFromDdAutFile | ( | std::istream & | stream, |
const ManagedDdAutFA & | mFa | ||
) |
import a FiniteAutomaton from a ddaut format file stream
stream | the stream that contains the ddaut description |
sManager | the manager that records the state information |
eManager | the manager that records the event information |
not
a complete The
ddaut format is an extension of the aut formatabout
the aut file format: The first line of an AUT file has the following syntax: des (<initial-state>, <number-of-transitions>, <number-of-states>) The "des" keywords stands for "descriptor". The <number-of-states> must be greater or equal to 1, because there is always at least one state, the initial state. State numbers range between 0 and <number-of-states> - 1. The <initial-state> is always equal to 0. The remainder of the AUT file consists of one line per transition, in an arbitrary order. Each remaining line has the following syntax: (<from-state>, <label>, <to-state>) where <from-state> and <to-state> are state numbers and where <label> can take two possible forms: <unquoted-label> consists of a character string starting with a letter, and followed by zero, one, or many letters, digits, or underscore characters. <quoted-label> consists of a character string starting with a double quote and ending with a double quote. Between these two double quotes, there can be zero, one or many printable characters; the meaning of "printable" is given by the POSIX isprint() function with locale "C" (namely, ASCII characters with decimal codes in the range from 32 to 126, bounds included). No other assumption should be made about the characters present between these two double quotes. In particular, the double quote character itself may be present, and may not necessarily be "escaped" in some way (e.g., preceded by a backslash, as in C).
About
the ddaut extensions: the idea is to start from the aut format and add new fields of information: for now state, event, initial, acceptor None of this field is mandatory. There is no order. They may be several occurrence of the same field. Be as flexible as possible. None of the information in the fields has to be complete.
About
state: it is a couple consisting of one integer (the id of the state) and one <label>, one couple per line. If the state is present several times, the last occurrence prevails
Referenced by insertDdAuts(), and synchroniseDdAut().
bool Diades::Automata::Experimental::faFromDescriptor | ( | const DdAutFileDescriptor & | descriptor, |
DdAutFA & | fa, | ||
DdAutStateManager & | sManager, | ||
DdAutEventManager & | eManager | ||
) |
descriptor | |
fsm | the state machine to fill |
sManager | the state manager to fill |
eManager | the event manager to fill |
Referenced by completeDdaut(), determineDdaut(), explainFsm(), exportDdAutToDot(), Diades::CmdInterface::loadFiniteStateAutomaton(), minimizeDdaut(), projectDdaut(), tagDdAutStates2(), and trimDdAutStates2().
bool Diades::Automata::Experimental::faToDdAutFile | ( | ostream & | stream, |
const ConstManagedDdAutFA & | mFa | ||
) |
FA To DdAutFile
stream | the updated output stream |
fa | the Finite Automaton to export |
sManager | the manager that records the state information |
eManager | the manager that records the event information |
enforce | (encoding of the states in aut file format if needed) |
The
export is not a success the finite automaton is not valid or if there is some writing issues with stream
Referenced by tagDdAutStates2(), trimDdAutStates2(), and Diades::CmdInterface::writeFiniteAutomaton().
bool Diades::Automata::Experimental::faToDescriptor | ( | const DdAutFA & | fa, |
DdAutFileDescriptor & | descriptor, | ||
const DdAutStateManager & | sManager, | ||
const DdAutEventManager & | eManager, | ||
Diades::Graph::ConstNodeMap< DdAutStateId > & | encoding | ||
) |
fsm | a FiniteAutomaton |
descriptor | a ddaut fsm descriptor |
sManager | the state manager of the FA |
eManager | the event manager of the FA |
bool Diades::Automata::Experimental::fromAutFile | ( | std::istream & | stream, |
AutFsm & | fsm | ||
) |
import a Component from an aut format file stream
stream | the stream that contains the aut description |
not
a complet parser about
the aut file format: The first line of an AUT file has the following syntax: des (<initial-state>, <number-of-transitions>, <number-of-states>) The "des" keywords stands for "descriptor". The <number-of-states> must be greater or equal to 1, because there is always at least one state, the initial state. State numbers range between 0 and <number-of-states> - 1. The <initial-state> is always equal to 0. The remainder of the AUT file consists of one line per transition, in an arbitrary order. Each remaining line has the following syntax: (<from-state>, <label>, <to-state>) where <from-state> and <to-state> are state numbers and where <label> can take two possible forms: <unquoted-label> consists of a character string starting with a letter, and followed by zero, one, or many letters, digits, or underscore characters. <quoted-label> consists of a character string starting with a double quote and ending with a double quote. Between these two double quotes, there can be zero, one or many printable characters; the meaning of "printable" is given by the POSIX isprint() function with locale "C" (namely, ASCII characters with decimal codes in the range from 32 to 126, bounds included). No other assumption should be made about the characters present between these two double quotes. In particular, the double quote character itself may be present, and may not necessarily be "escaped" in some way (e.g., preceded by a backslash, as in C). Referenced by autFileStateReencoding(), completeAut(), determineAut(), exportAutToDot(), insertAuts(), minimizeAut(), projectAut(), and runAut().
bool Diades::Automata::Experimental::fromTsFile | ( | std::istream & | stream, |
ManagedTsFsms & | fsms, | ||
TsConversionMode | mode | ||
) |
Load a Ts file as a DdAutFsm.
This is the first function that handles ts-format that results from arc (altarica tool)
stream | a stream that contains a ts-format transition system |
fsms | the vector of managed fsms extracted from the ts file (first the global fsm followed by its component projection) |
mode | normal (as in ts), full (events contain the target state), update (events contain state changes) |
Referenced by exportTsToDdAut2().
bool Diades::Automata::Experimental::fsmFromDdAutFile | ( | std::istream & | stream, |
const ManagedDdAutFsm & | mFsm | ||
) |
import a StateMachine from a ddaut format file stream
stream | the stream that contains the ddaut description |
sManager | the manager that records the state information |
eManager | the manager that records the event information |
not
a complete The
ddaut format is an extension of the aut formatabout
the aut file format: The first line of an AUT file has the following syntax: des (<initial-state>, <number-of-transitions>, <number-of-states>) The "des" keywords stands for "descriptor". The <number-of-states> must be greater or equal to 1, because there is always at least one state, the initial state. State numbers range between 0 and <number-of-states> - 1. The <initial-state> is always equal to 0. The remainder of the AUT file consists of one line per transition, in an arbitrary order. Each remaining line has the following syntax: (<from-state>, <label>, <to-state>) where <from-state> and <to-state> are state numbers and where <label> can take two possible forms: <unquoted-label> consists of a character string starting with a letter, and followed by zero, one, or many letters, digits, or underscore characters. <quoted-label> consists of a character string starting with a double quote and ending with a double quote. Between these two double quotes, there can be zero, one or many printable characters; the meaning of "printable" is given by the POSIX isprint() function with locale "C" (namely, ASCII characters with decimal codes in the range from 32 to 126, bounds included). No other assumption should be made about the characters present between these two double quotes. In particular, the double quote character itself may be present, and may not necessarily be "escaped" in some way (e.g., preceded by a backslash, as in C).
About
the ddaut extensions: the idea is to start from the aut format and add new fields of information: for now state, event, initial, acceptor None of this field is mandatory. There is no order. They may be several occurrence of the same field. Be as flexible as possible. None of the information in the fields has to be complete.
About
state: it is a couple consisting of one integer (the id of the state) and one <label>, one couple per line. If the state is present several times, the last occurrence prevails
bool Diades::Automata::Experimental::fsmFromDescriptor | ( | const DdAutFileDescriptor & | descriptor, |
DdAutFsm & | fsm, | ||
DdAutStateManager & | sManager, | ||
DdAutEventManager & | eManager | ||
) |
descriptor | |
fsm | the state machine to fill |
sManager | the state manager to fill |
eManager | the event manager to fill |
Referenced by completeDdaut(), determineDdaut(), Diades::CmdInterface::loadFiniteStateMachine(), minimizeDdaut(), projectDdaut(), and runDdaut().
bool Diades::Automata::Experimental::fsmToAutFile | ( | ostream & | stream, |
const DdAutFsm & | fsm, | ||
const DdAutEventManager & | eManager, | ||
bool | enforce = false |
||
) |
Fsm To AutFile
stream | the updated output stream |
fsm | the Fsm to export |
eManager | the manager that records the event information |
enforce | (encoding of the states in aut file format if needed) |
The
export is not a success the fsm is empty or if there is more than one initial state in the Fsm. If the encoding is not forced but is incompatible then failure. This function actually converts a Fsm in ddaut file to aut file, so the state labels are simply ignored the event are the event label in the eManager.
Referenced by Diades::CmdInterface::writeFiniteAutomaton(), and Diades::CmdInterface::writeFiniteStateMachine().
bool Diades::Automata::Experimental::fsmToDdAutFile | ( | ostream & | stream, |
const ConstManagedDdAutFsm & | mFsm | ||
) |
Fsm To DdAutFile
stream | the updated output stream |
fsm | the Fsm to export |
sManager | the manager that records the state information |
eManager | the manager that records the event information |
enforce | (encoding of the states in aut file format if needed) |
The
export is not a success the fsm is empty or if there is some writing issues with stream
Referenced by exportTsToDdAut2(), writeDdAutComponents(), and Diades::CmdInterface::writeFiniteStateMachine().
bool Diades::Automata::Experimental::fsmToDescriptor | ( | const DdAutFsm & | fsm, |
DdAutFileDescriptor & | descriptor, | ||
const DdAutStateManager & | sManager, | ||
const DdAutEventManager & | eManager, | ||
Diades::Graph::ConstNodeMap< DdAutStateId > & | encoding | ||
) |
fsm | a DdAutFsm |
descriptor | a ddaut fsm descriptor |
sManager | the state manager of the fsm |
eManager | the event manager of the fsm |
bool Diades::Automata::Experimental::generateSynchronisedDdAutEventLabels | ( | const SynchronisationRules< DdAutFsmType > & | synchro, |
const std::vector< DdAutEventManager > & | eventManagers, | ||
DdAutEventManager & | syncEventManager | ||
) |
Generation of a label to represent each synchronisation events involved in the rules synchro
synchro | synchronisation rules |
eventManagers | the event managers of the DdAut Fsm involved in the synchronisation |
syncEventManager | the manager that is associated with the resulting synchronised fsm |
Definition at line 432 of file DdAutFile.hh.
References Diades::Automata::Experimental::SynchronisationRules< StateMachine >::beginOfSynchronisedEvents(), Diades::Automata::Experimental::SynchronisationRules< StateMachine >::endOfSynchronisedEvents(), insertDdAutFA(), and Diades::Automata::Experimental::EventManager< _Event, _EventId, NullEvent, NullEventId, Hash >::setEvent().
Referenced by synchroniseDdAut().
std::unordered_set<DdAutFA::Transition> Diades::Automata::Experimental::getSafeAlternatives | ( | const DdAutFA & | traces, |
DdAutFA::State | state, | ||
const ExplLocStateMap & | levelOfChoiceInTraces, | ||
const Diades::Graph::NodeMap< DdAutFA::State > & | mapping, | ||
const DdAutFA & | fsa, | ||
const LocStateMap & | levelOfChoiceInFsa, | ||
const DdAutStateManager & | sManager, | ||
const DdAutEventManager & | eManager | ||
) |
Definition at line 344 of file Explanation.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::outputTransitionBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::outputTransitionEnd().
Referenced by explainFromStates().
Matcher Diades::Automata::Experimental::initialiseMatcher | ( | const DdAutEventManager & | eManager, |
const std::vector< std::string > & | observations | ||
) |
Definition at line 525 of file Explanation.hh.
References Diades::Utils::InfoManager< _Info, _InfoId, _NullInfo, _NullInfoId, _Hash >::begin(), Diades::Utils::InfoManager< _Info, _InfoId, _NullInfo, _NullInfoId, _Hash >::end(), and Diades::Automata::Experimental::EventManager< _Event, _EventId, NullEvent, NullEventId, Hash >::getEvent().
Referenced by explain().
bool Diades::Automata::Experimental::insertAutFsms | ( | AutFsmRange | range, |
AutFsm & | output | ||
) |
AutFsm insertion
a | range of AutFsm |
output | the AutFsm where all the AutFsm of the range have been inserted |
This
is used by the program dd-insert, it ensures it is a compatible AutFsm as it merges the initial states. Be aware that the state encoding might not be Definition at line 270 of file AutFile.hh.
References autFileStateReencoding(), deleteState(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getEvent(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::initialStateBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::initialStateEnd(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::inputTransitionBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::inputTransitionEnd(), insertRangeOfTransitions(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::isInitial(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::newTransition(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::numberOfInitialStates(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::outputTransitionBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::outputTransitionEnd().
Referenced by insertAuts().
void Diades::Automata::Experimental::insertDdAutFA | ( | const DdAutFA & | sourceFsm, |
const DdAutStateManager & | sourceStateManager, | ||
const DdAutEventManager & | sourceEventManager, | ||
DdAutFA & | targetFsm, | ||
DdAutStateManager & | targetStateManager, | ||
DdAutEventManager & | targetEventManager | ||
) |
Insertion of a sourceFsm into a targetFsm
sourceFsm | the Fsm to insert |
sourceStateManager | the state manager associated with the source fsm |
sourceEventManager | the event manager associated with the source fsm |
targetFsm | the Fsm where the sourceFsm is inserted |
targetStateManager | the target state manager associated with the target fsm |
targetEventManager | the target event manager associated with the target fsm |
Referenced by generateSynchronisedDdAutEventLabels(), and insertFiniteAutomata().
bool Diades::Automata::Experimental::insertFiniteAutomata | ( | DdAutFARange | faRange, |
RangeDdAutSM | smRange, | ||
RangeDdAutEM | evRange, | ||
DdAutFA & | result, | ||
DdAutStateManager & | targetStateManager, | ||
DdAutEventManager & | targetEventManager | ||
) |
AutFsm insertion
a | range of AutFsm |
output | the AutFsm where all the AutFsm of the range have been inserted |
This
is used by the program dd-insert, it ensures it is a compatible AutFsm as it merges the initial states. Be aware that the state encoding might not be Definition at line 493 of file DdAutFile.hh.
References insertDdAutFA().
Referenced by insertDdAuts().
void Diades::Automata::Experimental::insertRangeOfTransitions | ( | TransInserterIterator | begin, |
TransInserterIterator | end | ||
) |
Raw Insertion of a range of Finite State Machines into a single FiniteStateMachine
fsms | range of Finite State Machines to insert |
eventInserters | range of EventInserters associated to the range of Fsms The EventInserter of a given position in the range is associated with the Fsm of the same position in the fsm range. Each EventInserter is built with its source Fsm in the corresponding Fsm range and with its target being the Fsm result. |
stateInserters | range of StateInserters associated to the range of Fsms The StateInserter of a given position in the range is associated with the Fsm of the same position in the fsm range. |
result | the Fsm that will contain the result of the insertion of the range of fsms. |
Definition at line 71 of file Union.hh.
References insertTransitions().
Referenced by insertAutFsms().
void Diades::Automata::Experimental::insertTransitions | ( | TransInserter & | inserter | ) |
Main procedure for the insertion of a StateMachine into another one
inserter | a TransitionInserter, any Transition from inserter.source() are inserted into inserter.target() |
Definition at line 36 of file Union.hh.
Referenced by insertRangeOfTransitions().
bool Diades::Automata::Experimental::isComplete | ( | const Fsm & | machine | ) |
machine | a StateMachine |
Definition at line 36 of file Complete.hh.
Referenced by nerodePartition().
bool Diades::Automata::Experimental::isDeterministic | ( | const Fsm & | machine | ) |
machine | a StateMachine |
Definition at line 35 of file Determine.hh.
Referenced by minimize(), minimizeAut(), and minimizeDdaut().
bool Diades::Automata::Experimental::isNotChoiceState | ( | const FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId > & | fsa, |
typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State | state, | ||
const LocStateMap & | levels | ||
) |
return true if the state is definitely considered as a no-choice state
a state is considered as a no-choice state iff every successor of the state has the same (initialized) level of choice (such successor must exist)
fsa | the FiniteAutomaton where the state is |
state | the state to investigate |
levels | the current assigned levels (-1 if not assigned) |
Definition at line 47 of file Explanation.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::getStatePropertyId(), LP, Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::outputTransitionBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::outputTransitionEnd().
Referenced by setLevel().
bool Diades::Automata::Experimental::levelOfChoice | ( | const FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId > & | fsa, |
LocStateMap & | result | ||
) |
Definition at line 209 of file Explanation.hh.
References LP, setLevel(), and states.
Referenced by explain(), and explainFromStates().
std::string Diades::Automata::Experimental::listSingleItem | ( | const std::string & | item | ) |
Referenced by writeTreeView(), writeTreeViewSafeAlternative(), and writeTreeViewTransition().
void Diades::Automata::Experimental::minimize | ( | const Fsm & | machine, |
Fsm & | minimalMachine, | ||
StateCreator & | creator | ||
) |
machine | The original StateMachine |
minimalMachine | The minimal version of the original StateMachine |
machine | The original StateMachine |
minimalMachine | The minimal version of the original StateMachine |
machine | The original StateMachine |
minimalMachine | The minimal version of the original StateMachine |
minimalStateManager | StateInfoManger of the resulting machine |
disjunction | Definition of the way the minimal machine will hold the disjunction states from the original machine. |
Definition at line 336 of file Minimize.hh.
References isDeterministic(), and minimizeDeterministicMachine().
Referenced by minimizeAut(), and minimizeDdaut().
void Diades::Automata::Experimental::minimizeDeterministicMachine | ( | const Fsm & | machine, |
Fsm & | minimalMachine, | ||
StateCreator & | creator | ||
) |
machine | The original deterministic StateMachine |
minimalMachine | The minimal version of the original StateMachine |
minimalStateManager | StateInfoManger of the resulting machine |
disjunction | Definition of the way the minimal machine will hold the disjunction states from the original machine. |
Definition at line 225 of file Minimize.hh.
References nerodePartition().
Referenced by minimize().
void Diades::Automata::Experimental::nerodePartition | ( | const Fsm & | machine, |
vector< std::shared_ptr< BeliefState< Fsm >>> & | partition | ||
) |
Nerode partition (for minimization)
partition | will contain the nerode partition of the StateMachine (required for the minimization of the StateMachine) The Nerode partition is the partition of states such that for any Q0 Q1 there is no pair of state q0 and q'0 from Q0 such that q0 - a -> q1 is a transition of 'machine' and q1 is in Q1 while q'0 - a -> q'1 is a transition of 'machine' and q'1 is NOT in Q1 Be aware that to compute the partition, it is sometimes necessary to introduce a sink state. It is implicitely represented as an empty belief state that is pushed the first in the given partition (usually as partition is called as an empty vector which means that this empty belief state, if it exists, is at index 0). For performance issues, this empty belief state is not removed. |
Definition at line 114 of file Minimize.hh.
References isComplete(), and splitPartition().
Referenced by minimizeDeterministicMachine().
std::streampos Diades::Automata::Experimental::nextNoWhiteSpaceCharacter | ( | std::istream & | stream, |
bool & | ok | ||
) |
return the stream position just before the first character that is a white space (not such that std::isspace is true)
reads the stream till it founds a character c such that std::isspace(c) is false.
stream | the analyzed stream |
ok | the updated state of the stream (not good if no such a character has not been found) |
ostream& Diades::Automata::Experimental::operator<< | ( | ostream & | os, |
const LocalCandidate< StateProperty, FaultProperty > & | candidate | ||
) |
operator << of a LocalCandidate<StateProperty,FaultProperty>
os | the output stream |
candidate | a LocalCandidate<StateProperty,FaultProperty> |
Definition at line 134 of file LocalCandidate.hh.
bool Diades::Automata::Experimental::project | ( | const Fsm & | machine, |
Fsm & | abstractMachine, | ||
IsGoal | isGoal, | ||
BsMap< Fsm > & | bsMap, | ||
CstStMap< typename Fsm::State > & | stMap | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
isGoal | transition Predicate |
bsMap | resulting mapping that associates a State from abstractMachine to the set of abstracted states in the initial machine |
stMap | resulting mapping that associates a State of the initial machine to the state in the abstractMachine. Only initial states or states from the initial machine that are targets of a projected transition have an association. Any other states of the initial StateMachine are associated with an invalid state (as they may actually belong to several belief states of the abstracted machine). |
Definition at line 426 of file Project.hh.
References Diades::Automata::Experimental::Projection::projectRange().
Referenced by explainFromStates(), and project().
bool Diades::Automata::Experimental::project | ( | const Fsm & | machine, |
Fsm & | abstractMachine, | ||
IsGoal | isGoal | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
isGoal | transition Predicate |
Definition at line 458 of file Project.hh.
References project().
bool Diades::Automata::Experimental::project | ( | const Fsm & | machine, |
Fsm & | abstractMachine, | ||
EventPropertyIdIterator | begin, | ||
EventPropertyIdIterator | end, | ||
BsMap< Fsm > & | bsMap, | ||
CstStMap< typename Fsm::State > & | stMap | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
begin | the start iterator of a range of EventInfoId to project |
end | the end iterator of a range of EventInfoId to project |
bsMap | resulting mapping that associates a State from abstractMachine to the set of abstracted states in the initial machine |
stMap | resulting mapping that associates a State of the initial machine to the state in the abstractMachine. Only initial states or states from the initial machine that are targets of a projected transition have an association. Any other states of the initial StateMachine are associated with an invalid state (as they may actually belong to several belief states of the abstracted machine). |
Definition at line 492 of file Project.hh.
References Diades::Automata::Experimental::Projection::projectRange().
bool Diades::Automata::Experimental::project | ( | const Fsm & | machine, |
Fsm & | abstractMachine, | ||
EventPropertyIdIterator | begin, | ||
EventPropertyIdIterator | end | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
begin | the start iterator of a range of EventInfoId to project |
end | the end iterator of a range of EventInfoId to project |
Definition at line 532 of file Project.hh.
References project().
bool Diades::Automata::Experimental::project | ( | const Fsm & | fsm, |
Fsm & | projectedFsm, | ||
const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | stateManager, | ||
StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | projectionStateManager, | ||
const StateLabelProjection & | projection, | ||
IsGoal | isGoal, | ||
BsMap< Fsm > & | bsMap, | ||
CstStMap< typename Fsm::State > & | stMap | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
isGoal | transition Predicate |
bsMap | resulting mapping that associates a State from abstractMachine to the set of abstracted states in the initial machine |
stMap | resulting mapping that associates a State of the initial machine to the state in the abstractMachine. Only initial states or states from the initial machine that are targets of a projected transition have an association. Any other states of the initial StateMachine are associated with an invalid state (as they may actually belong to several belief states of the abstracted machine). |
Definition at line 567 of file Project.hh.
References Diades::Automata::Experimental::Projection::projectRange().
bool Diades::Automata::Experimental::project | ( | const Fsm & | fsm, |
Fsm & | projectedFsm, | ||
const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | stateManager, | ||
StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | projectionStateManager, | ||
const StateLabelProjection & | projection, | ||
IsGoal | isGoal | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
isGoal | transition Predicate |
Definition at line 601 of file Project.hh.
References project().
bool Diades::Automata::Experimental::project | ( | const Fsm & | fsm, |
Fsm & | projectedFsm, | ||
const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | stateManager, | ||
StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | projectionStateManager, | ||
const StateLabelProjection & | projection, | ||
EventPropertyIdIterator | begin, | ||
EventPropertyIdIterator | end, | ||
BsMap< Fsm > & | bsMap, | ||
CstStMap< typename Fsm::State > & | stMap | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
begin | the start iterator of a range of EventInfoId to project |
end | the end iterator of a range of EventInfoId to project |
bsMap | resulting mapping that associates a State from abstractMachine to the set of abstracted states in the initial machine |
stMap | resulting mapping that associates a State of the initial machine to the state in the abstractMachine. Only initial states or states from the initial machine that are targets of a projected transition have an association. Any other states of the initial StateMachine are associated with an invalid state (as they may actually belong to several belief states of the abstracted machine). |
Definition at line 643 of file Project.hh.
References Diades::Automata::Experimental::Projection::projectRange().
bool Diades::Automata::Experimental::project | ( | const Fsm & | fsm, |
Fsm & | projectedFsm, | ||
const StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | stateManager, | ||
StatePropertyManager< StateProperty, typename Fsm::StatePropertyId > & | projectionStateManager, | ||
const StateLabelProjection & | projection, | ||
EventPropertyIdIterator | begin, | ||
EventPropertyIdIterator | end | ||
) |
machine | a StateMachine |
abstractMachine | the resulting abstracted StateMachine |
begin | the start iterator of a range of EventInfoId to project |
end | the end iterator of a range of EventInfoId to project |
Definition at line 685 of file Project.hh.
References project().
bool Diades::Automata::Experimental::pruneComments | ( | std::istream & | stream, |
bool & | ok | ||
) |
read the stream and ignore the next c-style/cpp style comments
The input stream may start with a set of c-style/cpp style comments pruneComments will read them and ignore them. pruneComments will set the current cursor so that the next character to read is the first character that does not belong to any c-style/cpp style comments.
stream | the input stream to analyze |
ok | status of the stream (good or not good) |
bool Diades::Automata::Experimental::pruneCommentsBlock | ( | std::istream & | stream, |
bool & | ok | ||
) |
analyze the stream and look for the end of a comment block
here we suppose that the stream is in a c-style comment block and we simply look for the end of the comment block. The stream is updated so that the next character to read is the one after the comment block
stream | the stream to analyze |
ok | is true if the stream is good |
bool Diades::Automata::Experimental::rulesToDescriptor | ( | const SynchronisationRules< DdAutFsmType > & | rules, |
DdSyncDescriptor & | desc | ||
) |
rules | a set of synchronisation rules |
desc | the initialised descriptor |
Definition at line 426 of file DdSyncDescriptor.hh.
References Diades::Automata::Experimental::SynchronisationRules< StateMachine >::beginOfSynchronisedEvents(), Diades::Automata::Experimental::SynchronisationRules< StateMachine >::endOfSynchronisedEvents(), Diades::Automata::Experimental::DdSyncDescriptor::Synchronisation::insertSynchronisation(), and Diades::Automata::Experimental::DdSyncDescriptor::insertSynchronisation().
bool Diades::Automata::Experimental::setLevel | ( | const FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId > & | fsa, |
std::list< typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State > & | states, | ||
int | currentLevel, | ||
LocStateMap & | levels | ||
) |
Definition at line 132 of file Explanation.hh.
References isNotChoiceState(), LP, setLevelStateAndPropagate(), and states.
Referenced by levelOfChoice().
void Diades::Automata::Experimental::setLevelStateAndPropagate | ( | const FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId > & | fsa, |
std::list< typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State > & | states, | ||
int | currentLevel, | ||
LocStateMap & | levels, | ||
typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State | state, | ||
std::unordered_set< typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State > & | tagged, | ||
std::unordered_set< typename FiniteAutomaton< _SPId, _ISId, _NSPId, _NISId >::State > & | visited | ||
) |
set the level of the current state and insert its untagged predecessors in the list 'states' update the tagged and visited data structure if the state is not an initial state
this function is intermediate and is only used in setLevel only the current state is tagged any of its predecessors is then considered as visited
fsa | the FiniteAutomaton where the state is |
states | any non-visited predecessors of the current state will be inserted at the end of 'states' |
currentLevel | the level to assign to the current state |
levels | the level mapping that stores the level for each state |
state | the current state to tag |
tagged | the current set of tagged states that is updated with the current state |
visited | the current set of visited states that is updated with the inserted predecessors |
Definition at line 96 of file Explanation.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::getStatePropertyId(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::inputTransitionBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::inputTransitionEnd(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::isInitial(), LP, and states.
Referenced by setLevel().
bool Diades::Automata::Experimental::splitPartition | ( | const Fsm & | machine, |
const std::shared_ptr< BeliefState< Fsm >> | bigQ0, | ||
const std::shared_ptr< BeliefState< Fsm >> | bigQ1, | ||
typename Fsm::EventPropertyId | littleA, | ||
std::shared_ptr< BeliefState< Fsm >> | bigQ0prime, | ||
std::shared_ptr< BeliefState< Fsm >> | bigQ0MinusbigQ0prime | ||
) |
Split two partition elements according to the splittable property (minimization)
bigQO | a BeliefState |
bigQ1 | a BeliefState |
littleA | an Event |
bigQ0prime | a BeliefState result of the split |
bigQ0MinusbigQ0prime | a BeliefState result of the split |
Does the split as follows. 1) If the states of Q0 always have an output transition labelled with a that goes to a state of Q1 then Q0 is not splittable and bigQ0prime bigQ0MinusbigQ0prime are empty belief states, returns false 2) If the states of Q0 always have an output transition labelled with a that goes to a state NOT in Q1 then Q0 is not splittable and bigQ0prime bigQ0MinusbigQ0prime are empty belief states 3) Otherwise it is splittable and bigQ0prime contains the states of Q0 that satify case 1 and bigQ0MinusbigQ0prime are the one that satisfies case 2
Note that bigQ1 may be equal to an empty belief state means that Q1 = {sink_state}. The sink_state is not explicitly represented in the StateMachine
Definition at line 50 of file Minimize.hh.
Referenced by nerodePartition().
std::string Diades::Automata::Experimental::startListCaretItem | ( | const std::string & | item | ) |
Referenced by writeTreeView(), and writeTreeViewTransition().
std::string Diades::Automata::Experimental::startNestedTree | ( | ) |
Referenced by writeTreeView(), and writeTreeViewTransition().
std::string Diades::Automata::Experimental::startTree | ( | const std::string & | treeId | ) |
Referenced by writeTreeView().
bool Diades::Automata::Experimental::synchronize | ( | const std::vector< typename Ptr< Fsm >::ConstP > & | components, |
const SynchronisationRules< Fsm > & | rules, | ||
Fsm & | synchronisation, | ||
StateCreator & | creator | ||
) |
machine | The original StateMachine |
minimalMachine | The minimal version of the original StateMachine |
minimalStateManager | StateInfoManger of the resulting machine |
disjunction | Definition of the way the minimal machine will hold the disjunction states from the original machine. |
Definition at line 36 of file Synchronize.hh.
Referenced by Diades::Petri::Net::isPostponable(), and synchroniseDdAut().
bool Diades::Automata::Experimental::toAutFile | ( | ostream & | stream, |
const AutFsm & | fsm, | ||
bool | enforce = false |
||
) |
To AutFile
stream | the updated output stream |
fsm | the Fsm to export |
enforce | (encoding of the states in aut file format if needed) |
The
export is not a success if there is more than one initial state The initial state holds the information 0 If the information hold by the states is not from 0 to numberOfStates()-1 it is not a success. If enforce is set to true and the state encoding is not compatible then create a new compatible state encoding
Referenced by autFileStateReencoding(), and Diades::CmdInterface::writeAut().
ostream& Diades::Automata::Experimental::toDot | ( | ostream & | os, |
const StateMachine & | fsm, | ||
const PrintStateProperty & | statePrinter, | ||
const PrintEventInfo & | eventPrinter | ||
) |
Export in the output stream os a 'dot format' description of a StateMachine
os | the output stream |
fsm | the StateMachine |
statePrinter | a Printer for StateProperty of type PrintStateProperty |
eventPrinter | a Printer for EventInfo of type PrintEventInfo |
Definition at line 267 of file Io.hh.
References toDotEnding(), toDotHeader(), toDotInitialStates(), toDotStates(), and toDotTransitions().
Referenced by exportAutToDot(), exportDdAutToDot(), exportDdSyncToDot(), main(), toDot(), and Diades::Automata::Experimental::LocalCandidateMachine::toDotPretty().
ostream& Diades::Automata::Experimental::toDot | ( | ostream & | os, |
const StateMachine & | fsm | ||
) |
Export in the output stream as a 'dot format' description of a StateMachine without the StateProperty/EventInfo data
os | the output stream |
fsm | the StateMachine<StateProperty,EventInfo> |
Definition at line 290 of file Io.hh.
References toDotEnding(), toDotHeader(), toDotInitialStates(), toDotStates(), and toDotTransitions().
bool Diades::Automata::Experimental::toDot | ( | const std::string & | filename, |
const StateMachine & | fsm | ||
) |
Export in the 'dot format' description of a StateMachine without the StateProperty/EventInfo data
filename | the output filename |
fsm | the StateMachine<StateProperty,EventInfo> |
Definition at line 310 of file Io.hh.
References toDot().
|
inline |
os | the output stream |
descriptor | a synchronisation rule descriptor |
Definition at line 337 of file Io.hh.
References Diades::Automata::Experimental::DdSyncDescriptor::toDot().
|
inline |
|
inline |
export in the output stream the header of a dot file
os | the output stream |
Definition at line 31 of file Io.hh.
Referenced by toDot(), and toDotHeader().
ostream& Diades::Automata::Experimental::toDotHeader | ( | const StateMachine & | fsm, |
ostream & | os | ||
) |
export in the output stream the header of a dot file for a StateMachine
os | the output stream |
Definition at line 49 of file Io.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::name(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::numberOfStates(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::numberOfTransitions(), and toDotHeader().
ostream& Diades::Automata::Experimental::toDotInitialStates | ( | const StateMachine & | fsm, |
ostream & | os | ||
) |
export in the output stream the initial states of a StateMachine
os | the output stream |
Definition at line 65 of file Io.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::initialStateBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::initialStateEnd().
Referenced by toDot().
ostream& Diades::Automata::Experimental::toDotStates | ( | const StateMachine & | fsm, |
const PrintStateProperty & | statePrinter, | ||
ostream & | os | ||
) |
Definition at line 83 of file Io.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getStatePropertyId(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::stateBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::stateEnd().
Referenced by toDot().
ostream& Diades::Automata::Experimental::toDotStates | ( | const FiniteAutomaton< S, I, NS, NI > & | fsm, |
const PrintStateProperty & | statePrinter, | ||
ostream & | os | ||
) |
Definition at line 96 of file Io.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::getStatePropertyId(), Diades::Automata::Experimental::FiniteAutomaton< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::isAcceptingState(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::stateBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::stateEnd().
ostream& Diades::Automata::Experimental::toDotStates | ( | const StateMachine & | fsm, |
ostream & | os | ||
) |
Definition at line 120 of file Io.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getStatePropertyId(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::stateBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::stateEnd().
ostream& Diades::Automata::Experimental::toDotStates | ( | const FiniteAutomaton< S, I, NS, NI > & | fa, |
ostream & | os | ||
) |
Definition at line 136 of file Io.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::getStatePropertyId(), Diades::Automata::Experimental::FiniteAutomaton< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::isAcceptingState(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::stateBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::stateEnd().
ostream& Diades::Automata::Experimental::toDotTransitions | ( | const StateMachine & | fsm, |
const PrintEventInfo & | eventPrinter, | ||
ostream & | os | ||
) |
Definition at line 170 of file Io.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getEvent(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::transitionBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::transitionEnd().
Referenced by toDot().
ostream& Diades::Automata::Experimental::toDotTransitions | ( | const FaultyEventStateMachine< StateProperty, EventInfo > & | fsm, |
const PrintEventInfo & | eventPrinter, | ||
ostream & | os | ||
) |
Definition at line 187 of file Io.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getEvent(), Diades::Automata::Experimental::FaultyEventStateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::isFaulty(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::transitionBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::transitionEnd().
ostream& Diades::Automata::Experimental::toDotTransitions | ( | const StateMachine & | fsm, |
ostream & | os | ||
) |
Definition at line 213 of file Io.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getEvent(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::transitionBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::transitionEnd().
ostream& Diades::Automata::Experimental::toDotTransitions | ( | const FaultyEventStateMachine< StateProperty, EventInfo > & | fsm, |
ostream & | os | ||
) |
Definition at line 231 of file Io.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getEvent(), Diades::Automata::Experimental::FaultyEventStateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::isFaulty(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::transitionBegin(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::transitionEnd().
std::ostream& Diades::Automata::Experimental::toTreeViewHtmlEnd | ( | std::ostream & | os | ) |
Referenced by writeTreeView().
std::ostream& Diades::Automata::Experimental::toTreeViewHtmlStart | ( | std::ostream & | os | ) |
Referenced by writeTreeView().
void Diades::Automata::Experimental::transformToCandidateStateMachine | ( | const Component & | component, |
Lcm::EvManager & | manager, | ||
Lcm::EvSetManager & | setManager, | ||
Lcm::LocalStateInfoManager & | locStateInfoManager, | ||
Lcm::CandidateManager & | candidateManager, | ||
Lcm::Fsm & | result | ||
) |
Convert a Component to a StateMachine where each state holds a diagnosis information
component | the Component to convert |
manager | the EventManager that will contain the events of the Component (the events are added into the EventManager) |
setManager | the LocalEventSetManager in charge in computing the EventSets of the LocalCandidate and ONLY (initialised within the function) |
locSTateInfoManager | state info manager in charge of computing the information associated with a State of a Component to inject into a Candidate |
candidateManager | state info manager in charge of storing the information associated with a State of a Lcm |
result | the StateMachine resulting from the transformation |
Referenced by runGlobalDiagnosisProblem().
bool Diades::Automata::Experimental::trimmingDeadlockStates | ( | Fsm & | machine, |
BeliefStateIterator | bfBegin, | ||
BeliefStateIterator | bfEnd, | ||
StateIdInsertIterator | insertIt | ||
) |
Trim the states are the source of a deadlock within a range of states.
This function removes every state that only leads to deadlock within a range of states (and consequently their predecessors) The StatePropertyId that are deleted are stored via an insertIterator. Be aware that this function can make the machine empty.
machine | The Fms that is updated |
bfBegin | the iterator on the first state of the BeliefState |
bfEnd | the past-the-end iterator of the BeliefState |
insertIt | an insert iterator in charge of keeping the StatePropertyId of the states that are removed. |
Definition at line 164 of file Trimming.hh.
Referenced by trimmingDeadlockStates().
bool Diades::Automata::Experimental::trimmingDeadlockStates | ( | Fsm & | machine, |
StateIdInsertIterator | insertIt | ||
) |
Trim the states are the source of a deadlock.
This function removes every state that only leads to deadlock. The StatePropertyId that are deleted are stored via an insertIterator. Be aware that this function can make the machine empty.
machine | The Fsm that is updated |
insertIt | an insert iterator in charge of keeping the StatePropertyId of the states that are removed. |
Definition at line 224 of file Trimming.hh.
References trimmingDeadlockStates().
void Diades::Automata::Experimental::trimmingTraces | ( | Fsm & | machine, |
BeliefStateIterator | bfBegin, | ||
BeliefStateIterator | bfEnd, | ||
StateIdInsertIterator | insertIt | ||
) |
Trim the traces of the Fsm that does not reach the given BeliefState.
This function considers that the given Fsm only contains states that are reachable from at least one initial state. It removes every state that does not belong to a trace that finally reaches a state of the belief State.
machine | The Fms that is updated |
bfBegin | the iterator on the first state of the BeliefState |
bfEnd | the past-the-end iterator of the BeliefState |
insertIt | an insert iterator in charge of keeping the StatePropertyId of the states that are removed. |
Definition at line 44 of file Trimming.hh.
References deleteState().
void Diades::Automata::Experimental::trimmingUnreachableStates | ( | Fsm & | machine, |
BeliefStateIterator | bfBegin, | ||
BeliefStateIterator | bfEnd, | ||
StateIdInsertIterator | insertIt | ||
) |
Trim the states that cannot be reached from the given BeliefState.
This function removes every state that cannot be reached by at least one state of the given Belief State. The StatePropertyId that are deleted are stored via an insertIterator
machine | The Fms that is updated |
bfBegin | the iterator on the first state of the BeliefState |
bfEnd | the past-the-end iterator of the BeliefState |
insertIt | an insert iterator in charge of keeping the StatePropertyId of the states that are removed. |
Definition at line 93 of file Trimming.hh.
References deleteState().
Referenced by trimmingUnreachableStates().
void Diades::Automata::Experimental::trimmingUnreachableStates | ( | Fsm & | machine, |
StateIdInsertIterator | insertIt | ||
) |
Trim the states that cannot be reached from the initial states.
This function removes every state that cannot be reached from at least one initial state. The StatePropertyId that are deleted are stored via an insertIterator
machine | The Fms that is updated |
insertIt | an insert iterator in charge of keeping the StatePropertyId of the states that are removed. |
Definition at line 140 of file Trimming.hh.
References trimmingUnreachableStates().
void Diades::Automata::Experimental::tsExtractTargetState | ( | const std::string & | rawTargetState, |
std::string & | targetState, | ||
std::string::size_type & | semiColonIndex | ||
) |
extract the target state for the raw target state
raw target state may be something like the_state; or the_state simply get the_state and set the position index of ';' if found
rawTargetState | the raw Target State something like the_state; or the_state |
targetState | the extracted state (i.e the_state) |
semiColonIndex | the position index of ';' if found |
std::istream& Diades::Automata::Experimental::tsFileHeader | ( | std::istream & | stream, |
std::string & | tsName, | ||
bool & | ok | ||
) |
parse the Ts-format file header
parse something like ' <comments> transition_system name;'
stream | input stream to be parsed |
tsName | the assigned name of the transition system found in the stream |
ok | the current status of the stream (if not ok, it means the stream has the wrong format) |
std::istream& Diades::Automata::Experimental::tsFileStates | ( | std::istream & | stream, |
ManagedTsFsms & | fsms, | ||
bool & | ok | ||
) |
std::istream& Diades::Automata::Experimental::tsFileTransitionLabel | ( | std::istream & | stream, |
std::unordered_map< std::string, std::string > & | events, | ||
std::string & | fullEventLabel, | ||
bool & | ok | ||
) |
Read the transition label in a ts-format file.
In a Ts-format file a transition label is as follows 'label->' or '<evt, comp1.v1=val1, ..., compn.vn=valn>->' We extract the label and stores as label or <evt,comp1.v1=val1,...,compn.vn=valn> (i.e. skiped whitespaces)
stream | the analyzed input stream (expecting something like 'label->' or '<evt, comp1.v1=val1, ..., compn.vn=valn>->') |
eventLabel | the extracted label (i.e. label or <evt,comp1.v1=val1,...,compn.vn=valn>) |
ok | true if the extraction is successful |
std::istream& Diades::Automata::Experimental::tsFileTransitions | ( | std::istream & | stream, |
ManagedTsFsms & | fsms, | ||
bool & | ok, | ||
TsConversionMode | mode | ||
) |
Read the transitions of a Ts-format stream.
The format is as follows: state1 |- '<event1>'-> state2; |- '<event2>'-> state3; state4 |- '<event3>'-> state5; ...
stream | the input stream to read |
fsm | the Fsm where the transitions are inserted |
sManager | the state manager where the state identifiers are inserted |
eManager | the event manager where the event are inserted |
ok | the status of the stream |
std::string Diades::Automata::Experimental::tsPrettyEvent | ( | const std::string & | tsEvent | ) |
Referenced by exportTsToDdAut2().