22 #ifndef UTAP_INTERMEDIATE_HH
23 #define UTAP_INTERMEDIATE_HH
174 std::string
toString(
bool global =
false)
const;
250 void setMessage(std::deque<message_t>& messages,
int nr);
251 void setCondition(std::deque<condition_t>& conditions,
int nr);
252 void setUpdate(std::deque<update_t>& updates,
int nr);
272 simregions.push_back(s);
293 std::string s=
"CUT(";
294 for (
unsigned int i = 0; i < simregions.size(); ++i)
295 s += simregions[i].
toString() +
" ";
296 s = s.substr(0, s.size()-1);
351 std::vector<simregion_t>
getSimregions(
const std::vector<simregion_t>& simregions);
353 const std::vector<expression_t> &
arguments);
367 dynamicEvals.push_back (t);
368 return dynamicEvals.size()-1;
401 bool pch,
bool isHot);
419 bool getUpdate(
const std::vector<instanceLine_t*>& instances,
int y,
update_t*& simUpdate);
429 typedef std::pair<char,expression_t>
entry;
494 uint32_t position, uint32_t offset, uint32_t line, std::string path);
505 const std::string type =
"",
const std::string mode =
"");
510 const std::vector<expression_t> &arguments);
514 const std::vector<expression_t> &arguments);
615 type_t type, std::string);
624 const std::vector<error_t> &
getErrors()
const;
632 std::vector<error_t> errors;
633 std::vector<error_t> warnings;
int getLoc() const
May be empty.
Definition: system.cpp:727
void addProgressMeasure(declarations_t *, expression_t guard, expression_t measure)
Definition: system.cpp:1191
frame_t parameters
Definition: system.h:140
expression_t measure
Definition: system.h:124
std::deque< edge_t > edges
Edges.
Definition: system.h:362
std::list< int32_t > selectValues
The select values, if any.
Definition: system.h:101
BlockStatement * body
Pointer to the block.
Definition: system.h:115
declarations_t global
Definition: system.h:607
symbol_t uid
The name.
Definition: system.h:333
int nr
Placement in input file.
Definition: system.h:216
void setCondition(std::deque< condition_t > &conditions, int nr)
Definition: system.cpp:771
const std::list< chan_priority_t > & getChanPriorities() const
Definition: system.cpp:1366
std::list< progress_t > progress
Progress measures.
Definition: system.h:167
expression_t mapping
Definition: system.h:141
virtual void visitVariable(variable_t &)
Definition: system.h:454
std::string comment
Definition: system.h:440
std::vector< expression_t > param
Definition: system.h:130
bool hasWarnings() const
Definition: system.cpp:1466
template_t & addTemplate(std::string, frame_t params, const bool isTA=true, const std::string type="", const std::string mode="")
Creates and returns a new template.
Definition: system.cpp:975
std::string instanceName
Definition: system.h:129
bool hasPriorityDeclaration() const
Returns true if system has some priority declaration.
Definition: system.cpp:1388
message_t()
Definition: system.h:195
int nr
Definition: system.h:226
bool hasErrors() const
Definition: system.cpp:1461
bool control
Controllable (true/false)
Definition: system.h:87
std::list< gantt_t > ganttChart
Definition: system.h:169
bool addFunction(type_t type, std::string, function_t *&)
Add function declaration.
Definition: system.cpp:134
std::string mode
Definition: system.h:387
std::list< chan_priority_t > & getMutableChanPriorities()
Definition: system.cpp:1371
const std::vector< error_t > & getWarnings() const
Definition: system.cpp:1456
std::vector< query_t > queries_t
Definition: system.h:443
A reference to a symbol.
Definition: symbols.h:107
template_t * getDynamicTemplate(const std::string name)
Definition: system.cpp:1029
Information about a branchpoint.
Definition: system.h:70
update_t()
Definition: system.h:221
virtual void visitProcess(instance_t &)
Definition: system.h:460
expression_t costRate
Rate expression.
Definition: system.h:60
frame_t frame
Definition: system.h:164
int getSyncUsed() const
Definition: system.h:572
bool isInPrechart
Definition: system.h:220
Information about a condition.
Definition: system.h:200
std::list< function_t > functions
Functions.
Definition: system.h:166
std::string getFunctions() const
Definition: system.cpp:227
bool hasStrictLowerBoundOnControllableEdges() const
Returns true if the system has guards on controllable edges with strict lower bounds.
Definition: system.cpp:1413
std::string getVariables(bool global) const
Definition: system.cpp:201
std::string toString() const
Definition: system.cpp:791
std::string toString() const
Definition: system.h:292
void addChanPriority(char separator, expression_t chan)
Definition: system.cpp:1359
void recordStrictInvariant()
Record that the system has some strict invariant.
Definition: system.cpp:1393
queries_t & getQueries()
Returns the queries enclosed in the model.
Definition: system.cpp:1130
branchpoint_t & addBranchpoint(std::string)
Add another branchpoint to template.
Definition: system.cpp:312
bool isTA
Definition: system.h:364
void setUpdate(std::deque< update_t > &updates, int nr)
Definition: system.cpp:781
std::deque< update_t > updates
Updates.
Definition: system.h:384
int location
Definition: system.h:203
frame_t select
Frame for non-deterministic select.
Definition: system.h:93
std::deque< message_t > messages
Messages.
Definition: system.h:383
std::vector< template_t * > dynamicTemplatesVec
Definition: system.h:595
int32_t locNr
Location number in template.
Definition: system.h:61
condition_t * condition
May be empty.
Definition: system.h:228
virtual void visitProgressMeasure(progress_t &)
Definition: system.h:464
expression_t head
First expression in priority declaration.
Definition: system.h:432
void setAfterUpdate(expression_t)
Definition: system.cpp:1341
void setBeforeUpdate(expression_t)
Definition: system.cpp:1331
Partial instance of a template.
Definition: system.h:331
void setSyncUsed(int s)
Definition: system.h:571
expression_t exponentialRate
Definition: system.h:59
std::list< instance_t > instances
Definition: system.h:598
void setProcPriority(const char *name, int priority)
Sets process priority for process name.
Definition: system.cpp:1376
bool hasStopWatch() const
Returns true if the system stops any clock.
Definition: system.cpp:1408
bool hasUrgentTrans
Definition: system.h:580
int getProcPriority(const char *name) const
Returns process priority for process name.
Definition: system.cpp:1382
gantt_t(const std::string &s)
Definition: system.h:150
std::list< template_t > dynamicTemplates
Definition: system.h:594
frame_t templateset
Template set decls.
Definition: system.h:359
std::set< symbol_t > depends
Variables the function depends on.
Definition: system.h:113
Information about a message.
Definition: system.h:187
std::deque< condition_t > conditions
Conditions.
Definition: system.h:385
variable_t * addVariableToFunction(function_t *, frame_t, type_t, std::string, expression_t initital)
Definition: system.cpp:1144
Definition: position.h:72
virtual void visitGanttChart(gantt_t &)
Definition: system.h:465
void add(simregion_t s)
Definition: system.h:271
std::deque< state_t > states
Locations.
Definition: system.h:360
expression_t label
The label.
Definition: system.h:219
TimedAutomataSystem()
Definition: system.cpp:921
int nr
Placement in input file.
Definition: system.h:202
int32_t bpNr
Definition: system.h:73
virtual void visitState(state_t &)
Definition: system.h:457
bool isInPrechart
Definition: system.h:206
int32_t instanceNr
InstanceLine number in template.
Definition: system.h:350
Gantt map bool expr -> int expr that can be expanded.
Definition: system.h:138
std::string location
Definition: system.h:617
symbol_t uid
The symbol of the variables.
Definition: system.h:44
std::pair< char, expression_t > entry
Definition: system.h:429
bool getUpdate(instanceLine_t *instance, int y, update_t *&simUpdate)
gets the update on the given instance at y location, returns false if there isn't any ...
Definition: system.cpp:627
void copyVariablesFromTo(template_t *from, template_t *to) const
Definition: system.cpp:1176
state_t & addLocation(std::string, expression_t inv, expression_t er)
Add another location to template.
Definition: system.cpp:291
int location
Definition: system.h:190
A reference to a frame.
Definition: symbols.h:183
std::string toString() const
Definition: system.cpp:59
virtual void visitSystemAfter(TimedAutomataSystem *)
Definition: system.h:453
std::vector< simregion_t > simregions
Definition: system.h:266
virtual void visitInstanceLine(instanceLine_t &)
Definition: system.h:466
std::string name
The name.
Definition: system.h:152
virtual ~TimedAutomataSystem()
Definition: system.cpp:950
std::list< ganttmap_t > mapping
Definition: system.h:154
expression_t guard
The guard.
Definition: system.h:94
void setModified(bool mod)
Definition: system.cpp:1486
instance_t & addLscInstance(std::string name, instance_t &instance, frame_t params, const std::vector< expression_t > &arguments)
Definition: system.cpp:1063
void clockGuardRecvBroadcast()
Definition: system.h:569
bool dynamic
Definition: system.h:389
size_t arguments
Definition: system.h:336
std::deque< branchpoint_t > branchpoints
Branchpoints.
Definition: system.h:361
Definition: statement.h:127
instance_t & addInstance(std::string name, instance_t &instance, frame_t params, const std::vector< expression_t > &arguments)
Definition: system.cpp:1039
virtual void visitMessage(message_t &)
Definition: system.h:467
bool hasDynamicTemplates() const
Definition: system.h:576
std::set< symbol_t > changes
Variables changed by this function.
Definition: system.h:112
update_t * update
May be empty.
Definition: system.h:229
std::list< expression_t > inputs
Definition: system.h:131
state_t * dst
Pointer to destination location.
Definition: system.h:91
std::vector< template_t * > & getDynamicTemplates()
Definition: system.cpp:1017
Channel priority information.
Definition: system.h:427
bool queriesEmpty()
Definition: system.cpp:1126
void erase(simregion_t s)
Definition: system.cpp:809
symbol_t init
The initial location.
Definition: system.h:358
std::list< variable_t > variables
Local variables.
Definition: system.h:114
int dynindex
Definition: system.h:390
int nr
Placement in input file.
Definition: system.h:86
std::string actname
Definition: system.h:88
expression_t afterUpdate
Definition: system.h:610
bool stopsClock
Definition: system.h:583
~function_t()
Definition: system.cpp:73
bool getCondition(instanceLine_t *instance, int y, condition_t *&simCondition)
gets the condition on the given instance, at y location, returns false if there isn't any ...
Definition: system.cpp:598
Information about a function.
Definition: system.h:109
symbol_t uid
The symbol of the function.
Definition: system.h:111
virtual bool visitTemplateBefore(template_t &)
Definition: system.h:455
const std::vector< error_t > & getErrors() const
Definition: system.cpp:1450
std::vector< expression_t > dynamicEvals
Definition: system.h:363
condition_t & addCondition(std::vector< symbol_t > anchors, int loc, bool pch, bool isHot)
Add condition to template.
Definition: system.cpp:402
virtual void visitIODecl(iodecl_t &)
Definition: system.h:463
Information about a location.
Definition: system.h:55
std::string type
Definition: system.h:386
bool modified
Definition: system.h:601
A reference to an expression.
Definition: expression.h:68
size_t unbound
Definition: system.h:337
std::list< expression_t > outputs
Definition: system.h:131
void addParameters(instance_t &inst, frame_t params, const std::vector< expression_t > &arguments)
Definition: system.cpp:662
void recordStopWatch()
Record that the system stops a clock.
Definition: system.cpp:1403
int nr
Definition: system.h:265
branchpoint_t * srcb
Pointer to source branchpoint.
Definition: system.h:90
expression_t label
The label.
Definition: system.h:193
Information about an edge.
Definition: system.h:84
std::string formula
Definition: system.h:439
bool isHot
Definition: system.h:207
std::deque< instanceLine_t > instances
Instance Lines.
Definition: system.h:382
virtual void visitTypeDef(symbol_t)
Definition: system.h:462
std::list< instance_t > lscInstances
Definition: system.h:600
cut_t(int number)
Definition: system.h:267
std::list< template_t > & getTemplates()
Returns the templates of the system.
Definition: system.cpp:955
std::vector< expression_t > & getDynamicEval()
Definition: system.h:371
bool isInPrechart() const
Definition: system.cpp:744
std::vector< simregion_t > getSimregions(const std::vector< simregion_t > &simregions)
return the simregions anchored to this instance, ordered by location number
Definition: system.cpp:681
bool isInPrechart
Definition: system.h:194
bool isModified() const
Definition: system.cpp:1481
bool hasPrechart
Definition: system.h:388
bool hasStrictInvariants() const
Returns true if system has some strict invariant.
Definition: system.cpp:1398
void accept(SystemVisitor &)
Definition: system.cpp:1241
expression_t expr
The initialiser.
Definition: system.h:45
expression_t getBeforeUpdate()
Definition: system.cpp:1336
std::list< instance_t > processes
Definition: system.h:604
int syncUsed
Definition: system.h:589
Base type for variables, clocks, etc.
Definition: system.h:42
virtual ~SystemVisitor()
Definition: system.h:451
std::string toString() const
Definition: system.cpp:66
instanceLine_t * anchor
Pointer to anchor instance line.
Definition: system.h:218
expression_t invariant
The invariant.
Definition: system.h:58
message_t & addMessage(symbol_t src, symbol_t dst, int loc, bool pch)
Add message to template.
Definition: system.cpp:378
expression_t guard
Definition: system.h:123
Definition: position.h:42
std::set< symbol_t > restricted
Restricted variables.
Definition: system.h:339
bool equals(const cut_t &y) const
Definition: system.cpp:868
bool isInvariant()
return true if the LSC is of invariant mode
Definition: system.cpp:894
void addProcess(instance_t &instance)
Definition: system.cpp:1100
expression_t label
The label.
Definition: system.h:205
std::string toString(bool global=false) const
The following methods are used to write the declarations in an XML file.
Definition: system.cpp:143
int location
Definition: system.h:217
symbol_t uid
The symbol of the location.
Definition: system.h:57
std::list< instance_t > & getProcesses()
Returns the processes of the system.
Definition: system.cpp:960
std::string location
Definition: system.h:441
bool isDefined
Definition: system.h:391
tail_t tail
Pairs: separator and channel expressions.
Definition: system.h:433
std::list< variable_t > variables
Variables.
Definition: system.h:165
bool hasClockGuardRecvBroadcast() const
Definition: system.h:570
void addGantt(declarations_t *, gantt_t &)
Definition: system.cpp:1117
virtual void visitSystemBefore(TimedAutomataSystem *)
Definition: system.h:452
virtual void visitCondition(condition_t &)
Definition: system.h:468
instanceLine_t * dst
Pointer to destination instance line.
Definition: system.h:192
virtual void visitUpdate(update_t &)
Definition: system.h:469
frame_t parameters
The parameters.
Definition: system.h:334
const Positions::line_t & findPosition(uint32_t position) const
Definition: system.cpp:1429
std::map< symbol_t, expression_t > mapping
The arguments.
Definition: system.h:335
bool operator()(const simregion_t &x, const simregion_t &y) const
Definition: system.h:257
bool hasUrgentTransition() const
Definition: system.h:575
function_t()
Definition: system.h:116
std::list< entry > tail_t
Definition: system.h:430
Information about an instance line.
Definition: system.h:348
int defaultChanPriority
Definition: system.h:586
bool hasStrictLowControlledGuards
Definition: system.h:584
bool hasPriorities
Definition: system.h:581
std::string getConstants() const
Definition: system.cpp:156
virtual void visitEdge(edge_t &)
Definition: system.h:458
std::map< std::string, int > procPriority
Definition: system.h:588
declarations_t & getGlobals()
Returns the global declarations of the system.
Definition: system.cpp:965
std::string obsTA
Definition: system.h:520
queries_t queries
Definition: system.h:611
A reference to a type.
Definition: type.h:92
bool contains(simregion_t s)
Definition: system.cpp:818
virtual void visitTemplateAfter(template_t &)
Definition: system.h:456
frame_t parameters
The select parameters.
Definition: system.h:153
void addPosition(uint32_t position, uint32_t offset, uint32_t line, std::string path)
Definition: system.cpp:1423
instanceLine_t * src
Pointer to source instance line.
Definition: system.h:191
condition_t()
Definition: system.h:208
void clearErrors()
Definition: system.cpp:1471
int nr
Placement in input file.
Definition: system.h:189
expression_t beforeUpdate
Definition: system.h:609
std::vector< instanceLine_t * > anchors
Pointer to anchor instance lines.
Definition: system.h:204
std::string writeParameters() const
Definition: system.cpp:254
edge_t & addEdge(symbol_t src, symbol_t dst, bool type, std::string actname)
Add edge to template.
Definition: system.cpp:329
expression_t assign
The assignment.
Definition: system.h:95
void removeProcess(instance_t &instance)
Definition: system.cpp:1087
message_t * message
Definition: system.h:227
update_t & addUpdate(symbol_t anchor, int loc, bool pch)
Add update to template.
Definition: system.cpp:391
void setMessage(std::deque< message_t > &messages, int nr)
Definition: system.cpp:761
instanceLine_t & addInstanceLine()
Add another instance line to template.
Definition: system.cpp:361
std::string toString() const
Definition: system.cpp:109
std::string toString() const
Definition: system.cpp:903
bool isInPrechart() const
Definition: system.cpp:855
state_t * src
Pointer to source location.
Definition: system.h:89
Gantt chart entry.
Definition: system.h:147
std::list< iodecl_t > iodecl
Definition: system.h:168
template_t & addDynamicTemplate(std::string, frame_t params)
Definition: system.cpp:998
expression_t sync
The synchronisation.
Definition: system.h:96
std::string toString() const
Definition: system.cpp:78
iodecl_t * addIODecl()
Definition: system.cpp:1491
void recordStrictLowerBoundOnControllableEdges()
Record that the system has guards on controllable edges with strict lower bounds. ...
Definition: system.cpp:1418
bool hasStrictInv
Definition: system.h:582
branchpoint_t * dstb
Pointer to destination branchpoint.
Definition: system.h:92
simregion_t()
Definition: system.h:234
bool hasGuardOnRecvBroadcast
Definition: system.h:585
void clearWarnings()
Definition: system.cpp:1476
variable_t * addVariable(declarations_t *, type_t type, std::string, expression_t initial)
symbol_t uid
Definition: system.h:72
virtual void visitInstance(instance_t &)
Definition: system.h:459
A container for information about lines and positions in the input file.
Definition: position.h:69
struct template_t * templ
Definition: system.h:338
expression_t getAfterUpdate()
Definition: system.cpp:1346
Information about an update.
Definition: system.h:214
std::list< template_t > templates
Definition: system.h:592
const std::vector< simregion_t > getSimregions()
returns the simregions of an LSC scenario.
Definition: system.cpp:464
void copyFunctionsFromTo(template_t *from, template_t *to) const
Definition: system.cpp:1186
std::list< chan_priority_t > chanPriorities
Definition: system.h:587
void beginChanPriority(expression_t chan)
Definition: system.cpp:1351
gantt_t(const char *s)
Definition: system.h:149
std::string getTypeDefinitions() const
Definition: system.cpp:181
static vector< string > variables
Definition: tracer.cpp:139
std::string writeArguments() const
Definition: system.cpp:269
void addQuery(const query_t &query)
Definition: system.cpp:1122
virtual void visitFunction(function_t &)
Definition: system.h:461
expression_t predicate
Definition: system.h:141
~simregion_t()
Definition: system.h:241
void setUrgentTransition()
Definition: system.h:574
void addError(position_t, std::string, std::string location="")
Definition: system.cpp:1434
int addDynamicEval(expression_t t)
Definition: system.h:366
std::list< expression_t > csp
Definition: system.h:131
std::string writeMapping() const
Definition: system.cpp:243
void addWarning(position_t, std::string)
Definition: system.cpp:1442