20 #ifndef CHARTTOPROMELA_H_RP48RFDJ
21 #define CHARTTOPROMELA_H_RP48RFDJ
39 void writeTo(std::ostream& stream);
43 _prefix =
"U" + _md5.substr(0, 8) +
"_";
46 void writeTransitions(std::ostream& stream);
47 void writeStates(std::ostream& stream);
49 void writeCommonTypeDefs(std::ostream& stream);
50 void writeCommonVariables(std::ostream& stream);
51 void writeTypeDefs(std::ostream& stream);
52 void writeVariables(std::ostream& stream);
56 void writeMacros(std::ostream& stream);
57 void writeFSM(std::ostream& stream);
58 void writeFSMDequeueEvent(std::ostream& stream);
62 void writeFSMSelectTransitions(std::ostream& stream);
63 void writeFSMRememberHistory(std::ostream& stream);
64 void writeFSMEstablishEntrySet(std::ostream& stream);
65 void writeFSMExitStates(std::ostream& stream);
66 void writeFSMTakeTransitions(std::ostream& stream);
67 void writeFSMEnterStates(std::ostream& stream);
68 void writeFSMTerminateMachine(std::ostream& stream);
70 void writeExecContent(std::ostream& stream,
const XERCESC_NS::DOMNode* node,
size_t indent = 0);
71 void writeRaiseDoneDate(std::ostream& stream,
const XERCESC_NS::DOMElement* donedata,
size_t indent = 0);
73 void writeStrings(std::ostream& stream);
75 void writeCancelEvents(std::ostream& stream,
size_t indent = 0);
76 void writeScheduleMachines(std::ostream& stream,
size_t indent = 0);
77 void writeDetermineShortestDelay(std::ostream& stream,
size_t indent = 0);
78 void writeRescheduleProcess(std::ostream& stream,
size_t indent = 0);
79 void writeInsertWithDelay(std::ostream& stream,
size_t indent = 0);
80 void writeAdvanceTime(std::ostream& stream,
size_t indent = 0);
81 void writeRemovePendingEventsFromInvoker(std::ostream& stream,
size_t indent = 0);
85 void writeBitClearMacro(std::ostream& stream);
86 void writeBitHasAndMacro(std::ostream& stream);
87 void writeBitHasAnyMacro(std::ostream& stream);
88 void writeBitOrMacro(std::ostream& stream);
89 void writeBitCopyMacro(std::ostream& stream);
90 void writeBitAndMacro(std::ostream& stream);
91 void writeBitAndNotMacro(std::ostream& stream);
93 void printBitArray(std::ostream& stream,
94 const std::string& array,
102 std::string _invokerid;
104 size_t _internalQueueLength = 7;
105 size_t _externalQueueLength = 7;
106 bool _allowEventInterleaving =
false;
108 std::map<std::string, XERCESC_NS::DOMElement* > _machinesPerId;
109 std::map<std::string, XERCESC_NS::DOMElement* >* _machinesAllPerId = NULL;
110 std::map<XERCESC_NS::DOMElement*, ChartToPromela*> _machinesNested;
111 std::map<XERCESC_NS::DOMElement*, ChartToPromela*>* _machinesAll = NULL;
113 std::set<std::string> _dataModelVars;
114 std::list<std::string> _varInitializers;
116 std::string beautifyIndentation(
const std::string& code,
size_t indent = 0);
117 void writeIfBlock(std::ostream& stream, std::list<XERCESC_NS::DOMElement*>& condChain,
size_t indent = 0);
119 std::string dataToAssignments(
const std::string& prefix,
const Data& data);
120 std::string sanitizeCode(
const std::string& code);
121 std::string declForRange(
const std::string& identifier,
long minValue,
long maxValue,
bool nativeOnly =
false);
Definition: Breakpoint.cpp:26
Definition: PromelaCodeAnalyzer.h:33
Central class to interpret and process SCXML documents.
Definition: Interpreter.h:79
Definition: ChartToC.h:33
Definition: ChartToPromela.h:34