Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

UTAP::TypeChecker Class Reference

A visitor which type checks the system it visits. More...

#include <typechecker.h>

Inheritance diagram for UTAP::TypeChecker:

UTAP::SystemVisitor UTAP::AbstractStatementVisitor UTAP::StatementVisitor List of all members.

Public Member Functions

 TypeChecker (TimedAutomataSystem *system)
virtual ~TypeChecker ()
virtual void visitSystemAfter (TimedAutomataSystem *)
virtual void visitVariable (variable_t &)
virtual void visitState (state_t &)
virtual void visitEdge (edge_t &)
virtual void visitInstance (instance_t &)
virtual void visitProperty (expression_t)
virtual void visitFunction (function_t &)
virtual void visitProgressMeasure (progress_t &)
virtual void visitProcess (instance_t &)
virtual int32_t visitEmptyStatement (EmptyStatement *stat)
virtual int32_t visitExprStatement (ExprStatement *stat)
virtual int32_t visitForStatement (ForStatement *stat)
virtual int32_t visitIterationStatement (IterationStatement *stat)
virtual int32_t visitWhileStatement (WhileStatement *stat)
virtual int32_t visitDoWhileStatement (DoWhileStatement *stat)
virtual int32_t visitBlockStatement (BlockStatement *stat)
virtual int32_t visitIfStatement (IfStatement *stat)
virtual int32_t visitReturnStatement (ReturnStatement *stat)
bool checkExpression (expression_t)
 Type check an expression.

Detailed Description

A visitor which type checks the system it visits.

The type checker can only visit the system given in the constructor. The type checker must not be constructed before the system has been parsed.


Constructor & Destructor Documentation

TypeChecker::TypeChecker TimedAutomataSystem system  ) 
 

virtual UTAP::TypeChecker::~TypeChecker  )  [inline, virtual]
 


Member Function Documentation

bool TypeChecker::checkExpression expression_t  expr  ) 
 

Type check an expression.

This function performs basic type checking of the given expression and assigns a type to every subexpression of the expression. It checks that only left-hand side values are updated, checks that functions are called with the correct arguments, checks that operators are used with the correct operands and checks that operands to assignment operators are assignment compatible. Errors are reported by calling handleError(). This function does not check/compute the range of integer expressions and thus does not produce out-of-range errors or warnings. Returns true if no type errors were found, false otherwise.

int32_t TypeChecker::visitBlockStatement BlockStatement stat  )  [virtual]
 

Reimplemented from UTAP::AbstractStatementVisitor.

int32_t TypeChecker::visitDoWhileStatement DoWhileStatement stat  )  [virtual]
 

Reimplemented from UTAP::AbstractStatementVisitor.

void TypeChecker::visitEdge edge_t  )  [virtual]
 

Reimplemented from UTAP::SystemVisitor.

int32_t TypeChecker::visitEmptyStatement EmptyStatement stat  )  [virtual]
 

Reimplemented from UTAP::AbstractStatementVisitor.

int32_t TypeChecker::visitExprStatement ExprStatement stat  )  [virtual]
 

Reimplemented from UTAP::AbstractStatementVisitor.

int32_t TypeChecker::visitForStatement ForStatement stat  )  [virtual]
 

Reimplemented from UTAP::AbstractStatementVisitor.

void TypeChecker::visitFunction function_t  )  [virtual]
 

Reimplemented from UTAP::SystemVisitor.

int32_t TypeChecker::visitIfStatement IfStatement stat  )  [virtual]
 

Reimplemented from UTAP::AbstractStatementVisitor.

void TypeChecker::visitInstance instance_t  )  [virtual]
 

Reimplemented from UTAP::SystemVisitor.

int32_t TypeChecker::visitIterationStatement IterationStatement stat  )  [virtual]
 

Reimplemented from UTAP::AbstractStatementVisitor.

void TypeChecker::visitProcess instance_t  )  [virtual]
 

Reimplemented from UTAP::SystemVisitor.

void TypeChecker::visitProgressMeasure progress_t  )  [virtual]
 

Reimplemented from UTAP::SystemVisitor.

void TypeChecker::visitProperty expression_t   )  [virtual]
 

int32_t TypeChecker::visitReturnStatement ReturnStatement stat  )  [virtual]
 

Reimplemented from UTAP::AbstractStatementVisitor.

void TypeChecker::visitState state_t  )  [virtual]
 

Reimplemented from UTAP::SystemVisitor.

void TypeChecker::visitSystemAfter TimedAutomataSystem  )  [virtual]
 

Reimplemented from UTAP::SystemVisitor.

void TypeChecker::visitVariable variable_t  )  [virtual]
 

Reimplemented from UTAP::SystemVisitor.

int32_t TypeChecker::visitWhileStatement WhileStatement stat  )  [virtual]
 

Reimplemented from UTAP::AbstractStatementVisitor.


The documentation for this class was generated from the following files:
Generated on Sat Apr 29 21:02:14 2006 for libutap by  doxygen 1.4.2