28 #include <xercesc/dom/DOM.hpp>
41 void writeTo(std::ostream &stream);
45 virtual void print(std::ostream &stream,
const std::string padding =
"") = 0;
51 std::vector<VNode *> v;
54 for (
unsigned i = 0; i < v.size(); i++)
72 return static_cast<VBranch *
> (ptr);
94 if (ptr) ptr->v.push_back(p.ptr);
99 if (ptr) ptr->v.push_back(c.ptr);
105 VLine(
const std::string &name) : name(name) { }
107 virtual void print(std::ostream &stream,
const std::string padding =
"") {
108 stream <<
" " << name;
115 virtual void print(std::ostream &stream,
const std::string padding =
"") {
116 v[0]->print(stream, padding);
117 stream << padding <<
" <=";
118 v[1]->print(stream, padding +
" ");
123 virtual void print(std::ostream &stream,
const std::string padding =
"") {
124 stream << std::endl << padding <<
"( '1' ";
125 for (
unsigned i = 0; i < v.size(); i++) {
126 stream << std::endl << padding <<
" and";
127 v[i]->print(stream, padding +
" ");
129 stream << padding <<
")" << std::endl;
134 virtual void print(std::ostream &stream,
const std::string padding =
"") {
135 stream << std::endl << padding <<
"( '0' ";
136 for (
unsigned i = 0; i < v.size(); i++) {
137 stream << std::endl << padding <<
" or";
138 v[i]->print(stream, padding +
" ");
140 stream << std::endl << padding <<
")" << std::endl;
145 virtual void print(std::ostream &stream,
const std::string padding =
"") {
147 v[0]->print(stream, padding +
" ");
153 virtual void print(std::ostream &stream,
const std::string padding =
"") {
154 v[0]->print(stream, padding);
159 #define VLINE VPointer()/new VLine
160 #define VASSIGN VContainer()/new VAssign
161 #define VOR VContainer()/new VOr
162 #define VAND VContainer()/new VAnd
163 #define VNOT VContainer()/new VNot
164 #define VNOP VContainer()/new VNop
173 void writeIncludes(std::ostream &stream);
176 void writeFiFo(std::ostream &stream);
178 void writeEventController(std::ostream &stream);
180 void writeConditionSolver(std::ostream &stream);
182 void writeMicroStepper(std::ostream &stream);
184 void writeTestbench(std::ostream &stream);
186 void writeTopLevel(std::ostream &stream);
189 void writeSignalsAndComponents(std::ostream &stream);
191 void writeSystemSignalMapping(std::ostream &stream);
193 void writeModuleInstantiation(std::ostream &stream);
196 void writeOptimalTransitionSetSelection(std::ostream &stream);
198 void writeExitSet(std::ostream &stream);
200 void writeEntrySet(std::ostream &stream);
202 void writeCompleteEntrySet(std::ostream &stream);
204 void writeActiveStateNplusOne(std::ostream &stream);
207 void writeStateHandler(std::ostream &stream);
209 void writeResetHandler(std::ostream &stream);
211 void writeSpontaneousHandler(std::ostream &stream);
213 void writeInternalEventHandler(std::ostream &stream);
215 void writeErrorHandler(std::ostream &stream);
219 std::list<TrieNode *> _eventNames;
220 size_t _eventBitSize = 0;
221 std::map<std::string, std::string> _eventsOnBus;
222 std::list<XERCESC_NS::DOMElement *> _execContent;
225 std::string getLineForExecContent(
const XERCESC_NS::DOMNode *elem);
227 bool isSupportedExecContent(XERCESC_NS::DOMElement *execContentElement);
Definition: ChartToVHDL.h:104
Definition: ChartToVHDL.h:44
Definition: Breakpoint.cpp:26
Definition: ChartToVHDL.h:114
Definition: ChartToVHDL.h:133
Central class to interpret and process SCXML documents.
Definition: Interpreter.h:79
Definition: ChartToVHDL.h:81
Definition: ChartToVHDL.h:122
Definition: ChartToVHDL.h:34
Definition: ChartToVHDL.h:64
Definition: ChartToVHDL.h:152
Definition: ChartToC.h:33
Definition: ChartToVHDL.h:50
Definition: ChartToVHDL.h:144