00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef CPORTDIR_HPP
00032 #define CPORTDIR_HPP
00033
00034 #include <stdio.h>
00035 #include "glue.h"
00036 #include "cnode.h"
00037 #include "cdecl.h"
00038
00039
00040 class CNode;
00041
00045 class CPortDir : public CDecl
00046 {
00047 private:
00048 CDecl* decl;
00049 Decl_t portType;
00050 public:
00058 CPortDir( CSymbol* symbol, Coord_t* aLoc,
00059 Decl_t type, CDataType* dataType );
00065 virtual CDecl* Clone( CObstack* heap );
00070 virtual void Dump( FILE* f );
00075 CDecl* GetDecl( void ) { return decl; }
00080 void SetDecl( CDecl* d ) { decl = d; }
00085 void SetPortType( Decl_t t ) { portType = t; }
00090 Decl_t GetPortType() { return portType; }
00091 protected:
00097 void Copy( CObstack* heap, CPortDir& d );
00098 private:
00099
00100
00101
00102 CPortDir( const CPortDir& );
00103 public:
00104 virtual void PreVisit1( int (*func)(CNode*,void*), void* data );
00105 virtual void PostVisit1( void (*func)(CNode*, void*), void* data );
00106 virtual void PostSubVisit1( CNode* (*func)(CNode*, void*), void* data );
00107 };
00108
00109 #endif // CPORT_HPP