22 #ifndef UTAP_BUILDER_HH 23 #define UTAP_BUILDER_HH 28 #include <boost/format.hpp> 44 std::runtime_error(format.str()) {}
90 PREFIX_URGENT_BROADCAST = 6,
91 PREFIX_SYSTEM_META = 8,
102 virtual void addPosition(
103 uint32_t position, uint32_t offset, uint32_t line,
104 const std::string& path) = 0;
111 virtual void setPosition(uint32_t a, uint32_t b) = 0;
114 virtual void handleError(
const std::string&) = 0;
117 virtual void handleWarning(
const std::string&) = 0;
119 void handleWarning(
const char *msg, ...);
121 void handleError(
const char *msg, ...);
128 virtual bool isType(
const char*) = 0;
131 virtual void typeDuplicate() = 0;
134 virtual void typePop() = 0;
139 virtual void typeBool(
PREFIX) = 0;
144 virtual void typeInt(
PREFIX) = 0;
149 virtual void typeDouble(
PREFIX) = 0;
156 virtual void typeBoundedInt(
PREFIX) = 0;
161 virtual void typeChannel(
PREFIX) = 0;
166 virtual void typeClock(
PREFIX) = 0;
171 virtual void typeVoid() = 0;
177 virtual void typeArrayOfSize(
size_t) = 0;
183 virtual void typeArrayOfType(
size_t) = 0;
189 virtual void typeScalar(
PREFIX) = 0;
195 virtual void typeName(
PREFIX,
const char* name) = 0;
202 virtual void typeStruct(
PREFIX, uint32_t fields) = 0;
210 virtual void structField(
const char* name) = 0;
216 virtual void declTypeDef(
const char* name) = 0;
221 virtual void declVar(
const char* name,
bool init) = 0;
223 virtual void declInitialiserList(uint32_t num) = 0;
224 virtual void declFieldInit(
const char* name) = 0;
230 virtual void declProgress(
bool hasGuard) = 0;
235 virtual void ganttDeclStart(
const char* name) = 0;
236 virtual void ganttDeclSelect(
const char *
id) = 0;
237 virtual void ganttDeclEnd() = 0;
238 virtual void ganttEntryStart() = 0;
239 virtual void ganttEntrySelect(
const char *
id) = 0;
240 virtual void ganttEntryEnd() = 0;
245 virtual void declParameter(
const char* name,
bool ref) = 0;
246 virtual void declFuncBegin(
const char* name) = 0;
247 virtual void declFuncEnd() = 0;
252 virtual void procBegin(
const char* name,
const bool isTA =
true,
253 const std::string type =
"",
const std::string mode =
"") = 0;
254 virtual void procEnd() = 0;
255 virtual void procState(
const char* name,
bool hasInvariant,
bool hasER) = 0;
256 virtual void procStateCommit(
const char* name) = 0;
257 virtual void procStateUrgent(
const char* name) = 0;
258 virtual void procStateInit(
const char* name) = 0;
259 virtual void procEdgeBegin(
const char* from,
const char* to,
const bool control,
const char* actname =
"") = 0;
260 virtual void procEdgeEnd(
const char* from,
const char* to) = 0;
261 virtual void procSelect(
const char *
id) = 0;
262 virtual void procGuard() = 0;
264 virtual void procUpdate() = 0;
265 virtual void procProb() = 0;
266 virtual void procBranchpoint(
const char* name) = 0;
270 virtual void procInstanceLine()= 0;
271 virtual void instanceName(
const char* name,
bool templ=
true)= 0;
272 virtual void instanceNameBegin(
const char *name)= 0;
273 virtual void instanceNameEnd(
const char *name,
size_t arguments)= 0;
274 virtual void procMessage(
const char* from,
const char* to,
const int loc,
const bool pch)= 0;
276 virtual void procCondition(
const std::vector<char*> anchors,
const int loc,
277 const bool pch,
const bool hot)= 0;
278 virtual void procCondition()= 0;
279 virtual void procLscUpdate(
const char* anchor,
const int loc,
const bool pch)= 0;
280 virtual void procLscUpdate()= 0;
281 virtual void hasPrechart(
const bool pch)= 0;
286 virtual void blockBegin() = 0;
287 virtual void blockEnd() = 0;
288 virtual void emptyStatement() = 0;
289 virtual void forBegin() = 0;
290 virtual void forEnd() = 0;
291 virtual void iterationBegin(
const char *name) = 0;
292 virtual void iterationEnd(
const char *name) = 0;
293 virtual void whileBegin() = 0;
294 virtual void whileEnd() = 0;
295 virtual void doWhileBegin() = 0;
296 virtual void doWhileEnd() = 0;
297 virtual void ifBegin() = 0;
298 virtual void ifCondition() = 0;
299 virtual void ifThen() = 0;
300 virtual void ifEnd(
bool elsePart) = 0;
301 virtual void breakStatement() = 0;
302 virtual void continueStatement() = 0;
303 virtual void switchBegin() = 0;
304 virtual void switchEnd() = 0;
305 virtual void caseBegin() = 0;
306 virtual void caseEnd() = 0;
307 virtual void defaultBegin() = 0;
308 virtual void defaultEnd() = 0;
309 virtual void exprStatement() = 0;
310 virtual void returnStatement(
bool) = 0;
311 virtual void assertStatement() = 0;
316 virtual void exprFalse() = 0;
317 virtual void exprTrue() = 0;
318 virtual void exprDouble(
double) = 0;
319 virtual void exprId(
const char * varName) = 0;
320 virtual void exprNat(int32_t) = 0;
321 virtual void exprCallBegin() = 0;
322 virtual void exprCallEnd(uint32_t n) = 0;
323 virtual void exprArray() = 0;
324 virtual void exprPostIncrement() = 0;
325 virtual void exprPreIncrement() = 0;
326 virtual void exprPostDecrement() = 0;
327 virtual void exprPreDecrement() = 0;
332 virtual void exprScenario(
const char* name) = 0;
333 virtual void exprTernary(
Constants::kind_t ternaryop,
bool firstMissing =
false) = 0;
334 virtual void exprInlineIf() = 0;
335 virtual void exprComma() = 0;
336 virtual void exprDot(
const char *) = 0;
337 virtual void exprDeadlock() = 0;
338 virtual void exprForAllBegin(
const char *name) = 0;
339 virtual void exprForAllEnd(
const char *name) = 0;
340 virtual void exprExistsBegin(
const char *name) = 0;
341 virtual void exprExistsEnd(
const char *name) = 0;
342 virtual void exprSumBegin(
const char *name) = 0;
343 virtual void exprSumEnd(
const char *name) = 0;
347 virtual void declIO(
const char*,
int,
int) = 0;
350 virtual void exprSMCControl() = 0;
353 double probBound) = 0;
357 virtual void exprProbaExpected(
const char* aggregatingOp) = 0;
363 virtual void exprMitlFormula ( ) = 0;
364 virtual void exprMitlUntil (
int,
int) = 0;
365 virtual void exprMitlRelease (
int,
int) = 0;
366 virtual void exprMitlDisj () = 0;
367 virtual void exprMitlConj () = 0;
368 virtual void exprMitlNext () = 0;
369 virtual void exprMitlAtom () = 0;
370 virtual void exprMitlDiamond (
int,
int) = 0;
371 virtual void exprMitlBox (
int,
int) = 0;
373 virtual void exprSimulate(
int,
bool=
false,
int = 0) = 0;
378 virtual void instantiationBegin(
379 const char*
id,
size_t parameters,
const char* templ) = 0;
380 virtual void instantiationEnd(
381 const char*
id,
size_t parameters,
const char* templ,
size_t arguments) = 0;
382 virtual void process(
const char*) = 0;
383 virtual void processListEnd() = 0;
384 virtual void done() = 0;
386 virtual void handleExpect(
const char* text) = 0;
391 virtual void property() = 0;
392 virtual void scenario(
const char*) = 0;
393 virtual void parse(
const char*) = 0;
398 virtual void beforeUpdate() = 0;
399 virtual void afterUpdate() = 0;
404 virtual void beginChanPriority() = 0;
405 virtual void addChanPriority(
char separator) = 0;
406 virtual void defaultChanPriority() = 0;
407 virtual void incProcPriority() = 0;
408 virtual void procPriority(
const char*) = 0;
410 virtual void declDynamicTemplate(
const std::string&) = 0;
411 virtual void exprSpawn(
int ) = 0;
412 virtual void exprExit() = 0;
413 virtual void exprNumOf() = 0;
414 virtual void exprForAllDynamicBegin(
const char* ,
const char*)=0;
415 virtual void exprForAllDynamicEnd(
const char* name)=0;
416 virtual void exprExistsDynamicBegin(
const char*,
const char* )=0;
417 virtual void exprExistsDynamicEnd(
const char* name)=0;
418 virtual void exprSumDynamicBegin(
const char*,
const char* )=0;
419 virtual void exprSumDynamicEnd(
const char* name)=0;
420 virtual void exprForeachDynamicBegin(
const char*,
const char* )=0;
421 virtual void exprForeachDynamicEnd(
const char* name)=0;
422 virtual void exprMITLForAllDynamicBegin(
const char*,
const char* )=0;
423 virtual void exprMITLForAllDynamicEnd(
const char* name)=0;
424 virtual void exprMITLExistsDynamicBegin(
const char*,
const char*)=0;
425 virtual void exprMITLExistsDynamicEnd(
const char* name)=0;
426 virtual void exprDynamicProcessExpr(
const char*) = 0;
429 virtual void queryBegin()=0;
430 virtual void queryFormula(
const char* formula,
const char* location)=0;
431 virtual void queryComment(
const char*
comment)=0;
432 virtual void queryEnd()=0;
457 const std::string& xpath);
487 const std::string& xpath=
"");
int32_t parseProperty(const char *str, UTAP::ParserBuilder *aParserBuilder, const std::string &xpath="")
Parse properties from a buffer.
int32_t parseXMLBuffer(const char *buffer, UTAP::ParserBuilder *, bool newxta)
Parse a buffer in the XML format, reporting the system to the given implementation of the the ParserB...
The ParserBuilder interface is used by the parser to output the parsed system.
xta_part_t
Type for specifying which XTA part to parse (syntax switch)
int32_t parseXTA(FILE *, UTAP::ParserBuilder *, bool newxta)
Parse a file in the XTA format, reporting the system to the given implementation of the the ParserBui...
TypeException(const boost::format &format)
int32_t parseXMLFile(const char *filename, UTAP::ParserBuilder *, bool newxta)
Parse the file with the given name assuming it is in the XML format, reporting the system to the give...
Exception indicating a type error.
TypeException(const std::string &msg)
std::vector< std::string > lscTemplateNames