23 #ifndef UTAP_INTERMEDIATE_HH 24 #define UTAP_INTERMEDIATE_HH 175 std::string
toString(
bool global =
false)
const;
176 std::string getConstants()
const;
177 std::string getTypeDefinitions()
const;
178 std::string getVariables(
bool global)
const;
179 std::string getFunctions()
const;
230 bool isInPrechart()
const;
248 void setMessage(std::deque<message_t>& messages,
int nr);
249 void setCondition(std::deque<condition_t>& conditions,
int nr);
250 void setUpdate(std::deque<update_t>& updates,
int nr);
270 simregions.push_back(s);
285 bool isInPrechart(
const simregion_t& fSimregion)
const;
286 bool isInPrechart()
const;
288 bool equals(
const cut_t& y)
const;
291 std::string s=
"CUT(";
292 for (
unsigned int i = 0; i < simregions.size(); ++i)
293 s += simregions[i].
toString() +
" ";
294 s = s.substr(0, s.size()-1);
339 std::string writeMapping()
const ;
340 std::string writeParameters()
const ;
341 std::string writeArguments()
const ;
349 std::vector<simregion_t> getSimregions(
const std::vector<simregion_t>& simregions);
351 const std::vector<expression_t> &arguments);
365 dynamicEvals.push_back (t);
366 return dynamicEvals.size()-1;
379 const std::string& actname);
399 condition_t &addCondition(std::vector<symbol_t> anchors,
int loc,
400 bool pch,
bool isHot);
409 const std::vector<simregion_t> getSimregions();
418 bool getUpdate(
const std::vector<instanceLine_t*>& instances,
int y,
update_t*& simUpdate);
428 typedef std::pair<char,expression_t>
entry;
482 std::list<template_t> &getTemplates();
483 std::vector<template_t*> &getDynamicTemplates ();
484 template_t* getDynamicTemplate(
const std::string& name);
487 std::list<instance_t> &getProcesses();
490 queries_t &getQueries();
493 uint32_t position, uint32_t offset, uint32_t line,
const std::string& path);
500 void addProgressMeasure(
504 const bool isTA =
true,
505 const std::string& type =
"",
506 const std::string& mode =
"");
511 const std::vector<expression_t> &arguments);
515 const std::vector<expression_t> &arguments);
532 void addQuery(
const query_t &query);
539 void addChanPriority(
char separator,
expression_t chan);
540 const std::list<chan_priority_t>& getChanPriorities()
const;
541 std::list<chan_priority_t>& getMutableChanPriorities();
544 void setProcPriority(
const char* name,
int priority);
547 int getProcPriority(
const char* name)
const;
550 bool hasPriorityDeclaration()
const;
553 bool hasStrictInvariants()
const;
556 void recordStrictInvariant();
559 bool hasStopWatch()
const;
562 void recordStopWatch();
565 bool hasStrictLowerBoundOnControllableEdges()
const;
568 void recordStrictLowerBoundOnControllableEdges();
616 type_t type,
const std::string&);
621 void addError(
position_t,
const std::string& msg,
const std::string& ctx=
"");
622 void addWarning(
position_t,
const std::string& msg,
const std::string& ctx=
"");
623 bool hasErrors()
const;
624 bool hasWarnings()
const;
625 const std::vector<error_t> &getErrors()
const;
626 const std::vector<error_t> &getWarnings()
const;
628 void clearWarnings();
629 bool isModified()
const;
630 void setModified(
bool mod);
633 std::vector<error_t> errors;
634 std::vector<error_t> warnings;
symbol_t uid
The symbol of the variables.
std::list< instance_t > instances
std::string name
The name.
std::vector< expression_t > dynamicEvals
Partial instance of a template.
bool hasUrgentTransition() const
struct template_t * templ
std::string toString() const
std::vector< expression_t > & getDynamicEval()
bool hasGuardOnRecvBroadcast
branchpoint_t * dstb
Pointer to destination branchpoint.
std::list< variable_t > variables
Variables.
static bool isInvariant(expression_t expr)
std::list< variable_t > variables
Local variables.
instanceLine_t * anchor
Pointer to anchor instance line.
symbol_t uid
The symbol of the location.
std::list< ganttmap_t > mapping
virtual void visitProgressMeasure(progress_t &)
expression_t label
The label.
std::deque< condition_t > conditions
Conditions.
std::set< symbol_t > restricted
Restricted variables.
bool hasStrictLowControlledGuards
std::deque< state_t > states
Locations.
virtual void visitInstanceLine(instanceLine_t &)
std::set< symbol_t > changes
Variables changed by this function.
bool control
Controllable (true/false)
virtual void visitSystemAfter(TimedAutomataSystem *)
std::list< template_t > dynamicTemplates
Information about a location.
expression_t label
The label.
expression_t guard
The guard.
int addDynamicEval(expression_t t)
std::list< template_t > templates
sync_use_t
Synchronization usage options: I/O (with ? or !) or CSP (plain)
std::vector< simregion_t > simregions
sync_use_t getSyncUsed() const
expression_t sync
The synchronisation.
void setSyncUsed(sync_use_t s)
std::list< expression_t > outputs
std::list< function_t > functions
Functions.
int32_t locNr
Location number in template.
std::list< entry > tail_t
frame_t parameters
The parameters.
int32_t instanceNr
InstanceLine number in template.
virtual void visitUpdate(update_t &)
std::vector< template_t * > dynamicTemplatesVec
state_t * src
Pointer to source location.
Information about an edge.
expression_t exponentialRate
expression_t beforeUpdate
int nr
Placement in input file.
A container for information about lines and positions in the input file.
static vector< string > variables
std::deque< message_t > messages
Messages.
std::vector< expression_t > param
Information about an update.
virtual void visitFunction(function_t &)
branchpoint_t * srcb
Pointer to source branchpoint.
virtual void visitVariable(variable_t &)
expression_t assign
The assignment.
state_t * dst
Pointer to destination location.
expression_t head
First expression in priority declaration.
virtual bool visitTemplateBefore(template_t &)
std::set< symbol_t > depends
Variables the function depends on.
Information about an instance line.
virtual void visitMessage(message_t &)
virtual void visitInstance(instance_t &)
int getLoc() const
May be empty.
virtual void visitSystemBefore(TimedAutomataSystem *)
expression_t label
The label.
std::deque< edge_t > edges
Edges.
expression_t invariant
The invariant.
std::list< gantt_t > ganttChart
Base type for variables, clocks, etc.
std::list< int32_t > selectValues
The select values, if any.
Channel priority information.
update_t * update
May be empty.
std::vector< instanceLine_t * > anchors
Pointer to anchor instance lines.
frame_t templateset
Template set decls.
virtual void visitGanttChart(gantt_t &)
Information about a branchpoint.
void setUrgentTransition()
void clockGuardRecvBroadcast()
virtual void visitEdge(edge_t &)
std::list< iodecl_t > iodecl
virtual void visitProcess(instance_t &)
expression_t expr
The initialiser.
std::map< symbol_t, expression_t > mapping
The arguments.
virtual void visitTemplateAfter(template_t &)
std::map< std::string, int > procPriority
symbol_t uid
The symbol of the function.
frame_t select
Frame for non-deterministic select.
Information about a message.
std::string toString() const
BlockStatement * body
Pointer to the block.
Gantt map bool expr -> int expr that can be expanded.
A reference to an expression.
instanceLine_t * dst
Pointer to destination instance line.
Information about a function.
tail_t tail
Pairs: separator and channel expressions.
std::deque< update_t > updates
Updates.
virtual void visitIODecl(iodecl_t &)
gantt_t(const std::string &s)
condition_t * condition
May be empty.
std::list< instance_t > processes
frame_t parameters
The select parameters.
std::list< progress_t > progress
Progress measures.
symbol_t init
The initial location.
instanceLine_t * src
Pointer to source instance line.
bool hasDynamicTemplates() const
std::pair< char, expression_t > entry
bool hasClockGuardRecvBroadcast() const
std::list< instance_t > lscInstances
std::deque< instanceLine_t > instances
Instance Lines.
virtual void visitState(state_t &)
std::deque< branchpoint_t > branchpoints
Branchpoints.
std::vector< query_t > queries_t
expression_t costRate
Rate expression.
Information about a condition.
virtual void visitTypeDef(symbol_t)
virtual void visitCondition(condition_t &)
std::list< chan_priority_t > chanPriorities