Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

Type Class Reference

#include <type.h>

Inheritance diagram for Type:

Inheritance graph
[legend]
Collaboration diagram for Type:

Collaboration graph
[legend]
List of all members.

Public Types

enum  types {
  INTEGER, BOOLEAN, RANGE, ADDRESS,
  CLIENTADDRESS, SERVERADDRESS, ARRAY, BEHAVIOR,
  TIMEOUT, MESSAGE, STRING, PROCESS
}

Public Member Functions

 Type (SrcPosition *position, types typeCode_)
virtual ~Type ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
types getTypeCode () const
virtual Astclone () const

Protected Attributes

types typeCode

Member Enumeration Documentation

enum Type::types
 

Enumeration values:
INTEGER 
BOOLEAN 
RANGE 
ADDRESS 
CLIENTADDRESS 
SERVERADDRESS 
ARRAY 
BEHAVIOR 
TIMEOUT 
MESSAGE 
STRING 
PROCESS 

Definition at line 8 of file type.h.

Referenced by getTypeCode().


Constructor & Destructor Documentation

Type::Type SrcPosition position,
types  typeCode_
[inline]
 

Definition at line 12 of file type.h.

References typeCode.

Referenced by clone().

00013                                 : Ast(position), typeCode(typeCode_) {}

virtual Type::~Type  )  [inline, virtual]
 

Definition at line 15 of file type.h.

00015                                 {
00016                 }


Member Function Documentation

virtual Ast& Type::clone  )  const [inline, virtual]
 

Implements Ast.

Reimplemented in ArrayType, and RangeType.

Definition at line 37 of file type.h.

References Type().

Referenced by SimpleDeclaration::clone(), SimpleDeclaration::operator=(), and ArrayType::operator=().

00037                                            {
00038                         return *(new Type(new SrcPosition(*this->position), this->typeCode));
00039                 }

types Type::getTypeCode  )  const [inline]
 

Definition at line 33 of file type.h.

References typeCode, and types.

Referenced by TypeCheckerVisitor::visitActStatement(), TypeCheckerVisitor::visitAssignStatement(), TypeCheckerVisitor::visitBehaviorStatement(), TypeCheckerVisitor::visitBinaryExpression(), TypeCheckerVisitor::visitFieldType(), TypeCheckerVisitor::visitGuardExpression(), TypeCheckerVisitor::visitGuardTimeout(), TypeCheckerVisitor::visitMultipleArrayReference(), TypeCheckerVisitor::visitReceiveStatement(), TypeCheckerVisitor::visitSendStatement(), TypeCheckerVisitor::visitSimpleArrayReference(), TypeCheckerVisitor::visitSimpleDeclaration(), TypeCheckerVisitor::visitSimpleFieldDeclaration(), TypeCheckerVisitor::visitSimpleGuardedStatement(), TypeCheckerVisitor::visitStartStatement(), and TypeCheckerVisitor::visitUnaryExpression().

00033                                           {
00034                         return this->typeCode;
00035                 }

virtual Ast& Type::operator= const Ast ast  )  [inline, virtual]
 

Reimplemented from Ast.

Reimplemented in ArrayType, and RangeType.

Definition at line 18 of file type.h.

References Ast::operator=(), and typeCode.

Referenced by RangeType::operator=(), and ArrayType::operator=().

00018                                                          {
00019                         const Type& type = dynamic_cast<const Type&>(ast);
00020                         Ast::operator=(ast);
00021                         this->typeCode = type.typeCode;
00022                         
00023                         return (*this);
00024                 }

virtual bool Type::operator== const Ast ast  )  const [inline, virtual]
 

Reimplemented from Ast.

Reimplemented in ArrayType, and RangeType.

Definition at line 25 of file type.h.

References Ast::operator==(), and typeCode.

Referenced by RangeType::operator==(), and ArrayType::operator==().

00025                                                                 {
00026                         const Type& type = dynamic_cast<const Type&>(ast);
00027                         return (this->typeCode == type.typeCode) && Ast::operator==(ast);
00028                 }

virtual VisitorReturn* Type::visit Visitor visitor  )  [inline, virtual]
 

Implements Ast.

Reimplemented in ArrayType, and RangeType.

Definition at line 29 of file type.h.

References Visitor::visitType().

Referenced by TypeCheckerVisitor::visitSimpleDeclaration().

00029                                                                {
00030                         return visitor.visitType(this);
00031                 }


Member Data Documentation

types Type::typeCode [protected]
 

Definition at line 42 of file type.h.

Referenced by ArrayType::ArrayType(), getTypeCode(), operator=(), operator==(), RangeType::RangeType(), and Type().


The documentation for this class was generated from the following file:
Generated on Mon Dec 1 17:39:35 2003 for Protomake by doxygen1.3