22 #ifndef UTAP_TYPECHECKER_HH
23 #define UTAP_TYPECHECKER_HH
44 std::set<symbol_t> variables;
63 bool refinementWarnings;
66 void handleError(T, std::string);
68 void handleWarning(T, std::string);
71 bool areAssignmentCompatible(
type_t lvalue,
type_t rvalue,
bool init =
false)
const;
72 bool areInlineIfCompatible(
type_t thenArg,
type_t elseArg)
const;
Definition: statement.h:180
bool checkExpression(expression_t)
Type check an expression.
Definition: typechecker.cpp:2120
Definition: statement.h:75
virtual void visitProperty(expression_t)
Definition: typechecker.cpp:1368
bool contains(symbol_t) const
Definition: typechecker.cpp:292
virtual void visitVariable(variable_t &)
Definition: typechecker.cpp:271
A reference to a symbol.
Definition: symbols.h:107
Definition: statement.h:243
virtual int32_t visitIfStatement(IfStatement *stat)
Definition: typechecker.cpp:1738
Information about a condition.
Definition: system.h:200
virtual void visitVariable(variable_t &)
Definition: typechecker.cpp:870
virtual void visitEdge(edge_t &)
Definition: typechecker.cpp:953
Statement class for the iterator loop-construction.
Definition: statement.h:91
virtual void visitProcess(instance_t &)
Definition: typechecker.cpp:845
Definition: statement.h:55
virtual int32_t visitIterationStatement(IterationStatement *stat)
Definition: typechecker.cpp:1658
virtual bool visitTemplateBefore(template_t &)
Definition: typechecker.cpp:3424
Partial instance of a template.
Definition: system.h:331
virtual void visitIODecl(iodecl_t &)
Definition: typechecker.cpp:720
virtual void visitFunction(function_t &)
Definition: typechecker.cpp:1574
virtual void visitInstance(instance_t &)
Definition: typechecker.cpp:1267
Information about a message.
Definition: system.h:187
Definition: statement.h:211
virtual void visitSystemAfter(TimedAutomataSystem *)
Definition: typechecker.cpp:629
virtual void visitUpdate(update_t &)
Definition: typechecker.cpp:1208
Definition: statement.h:105
virtual int32_t visitBlockStatement(BlockStatement *stat)
Definition: typechecker.cpp:1695
virtual void visitMessage(message_t &)
Definition: typechecker.cpp:1168
virtual int32_t visitWhileStatement(WhileStatement *stat)
Definition: typechecker.cpp:1677
Definition: statement.h:127
Definition: statement.h:35
Definition: statement.h:65
Information about a function.
Definition: system.h:109
virtual int32_t visitExprStatement(ExprStatement *stat)
Definition: typechecker.cpp:1629
virtual void visitTemplateAfter(template_t &)
Definition: typechecker.cpp:3418
virtual void visitCondition(condition_t &)
Definition: typechecker.cpp:1188
Information about a location.
Definition: system.h:55
bool checkSpawnParameterCompatible(type_t param, expression_t arg)
Definition: typechecker.cpp:3432
A reference to an expression.
Definition: expression.h:68
TypeChecker(TimedAutomataSystem *system, bool refinement=false)
Definition: typechecker.cpp:394
virtual void visitState(state_t &)
Definition: typechecker.cpp:896
virtual void visitInstance(instance_t &)
Definition: typechecker.cpp:279
virtual int32_t visitDoWhileStatement(DoWhileStatement *stat)
Definition: typechecker.cpp:1686
Information about an edge.
Definition: system.h:84
virtual void visitInstanceLine(instanceLine_t &)
Definition: typechecker.cpp:1164
Base type for variables, clocks, etc.
Definition: system.h:42
virtual int32_t visitReturnStatement(ReturnStatement *stat)
Definition: typechecker.cpp:1752
virtual int32_t visitForStatement(ForStatement *stat)
Definition: typechecker.cpp:1644
A visitor which type checks the system it visits.
Definition: typechecker.h:57
Definition: statement.h:46
virtual void visitGanttChart(gantt_t &)
Definition: typechecker.cpp:1234
Information about an instance line.
Definition: system.h:348
virtual ~TypeChecker()
Definition: typechecker.h:90
virtual void visitProgressMeasure(progress_t &)
Definition: typechecker.cpp:1216
Definition: statement.h:116
A reference to a type.
Definition: type.h:92
Visitor which collects all compile time computable symbols.
Definition: typechecker.h:41
virtual void visitHybridClock(expression_t)
Definition: typechecker.cpp:703
virtual int32_t visitEmptyStatement(EmptyStatement *stat)
Definition: typechecker.cpp:1624
static bool initialisable(type_t type)
Definition: statementbuilder.cpp:229
bool checkSpawnAndExit(expression_t)
virtual int32_t visitAssertStatement(AssertStatement *stat)
Definition: typechecker.cpp:1635
bool checkDynamicExpressions(Statement *stat)
Definition: typechecker.cpp:3437
Gantt chart entry.
Definition: system.h:147
Information about an update.
Definition: system.h:214