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 visitAssertStatement (AssertStatement *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::visitAssertStatement ( AssertStatement stat  )  [virtual]

Reimplemented from UTAP::AbstractStatementVisitor.

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 Thu Feb 22 14:46:53 2007 for libutap by  doxygen 1.4.7