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

ertti.h

Go to the documentation of this file.
00001 
00002 //
00003 //  Borland C++ 5.5, GNU C++ 3.0
00004 //  Compiler Backend Library
00005 //  $Id: ertti_8h-source.html,v 1.1 2002/07/18 14:58:45 cparpart Exp $
00006 //
00007 //  Copyright (c) 2000-2002 SurakWare Corp.
00008 //
00010 #ifndef sw_cbl_codetree_ertti_h
00011 #define sw_cbl_codetree_ertti_h
00012 
00013 #include 
00014 
00015 namespace cbl {
00016 namespace codetree {
00017 
00018 namespace def {
00019     class TDef;
00020 }
00021 
00022 namespace expr {
00023 
00024 class TRTTIExpr : public TExpression {
00025 private:
00026     TExpression *FObject;
00027     def::TDef *FRttiType;
00028 
00029 protected:
00030     TRTTIExpr(symbols::TModuleSym *AOwner, TExpression *AObject, def::TDef *ARttiType);
00031 
00032 public:
00033     // object access
00034     const TExpression *object() const;
00035 
00036     // rttiType 
00037     const def::TDef *rttiType() const;
00038 };
00039 
00040 // TIsExpr
00041 class TIsExpr : public TRTTIExpr {
00042 protected:
00043     TIsExpr(symbols::TModuleSym *AOwner, TExpression *AObject, def::TDef *ARttiType);
00044 
00045     friend class symbols::TModuleSym;
00046 
00047 public:
00048     // visitor pattern
00049     virtual void accept(TExprVisitor&);
00050 };
00051 
00052 // TAsExpr
00053 class TAsExpr : public TRTTIExpr {
00054 protected:
00055     TAsExpr(symbols::TModuleSym *AOwner, TExpression *AObject, def::TDef *ARttiType);
00056 
00057     friend class symbols::TModuleSym;
00058 
00059 public:
00060     // visitor pattern
00061     virtual void accept(TExprVisitor&);
00062 };
00063 
00064 } // namespace expr
00065 } // namespace codetree
00066 } // namespace cbl
00067 
00068 #endif

Generated on Sat Apr 6 19:07:25 2002 for Compiler Backend Library by doxygen1.2.14 written by , © 1997-2002