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

exprvisitor.h

Go to the documentation of this file.
00001 
00002 //
00003 //  Borland C++ 5.5, GNU C++ 3.0
00004 //  Compiler Backend Library
00005 //  exprvisitor.h
00006 //
00007 //  Copyright (c) 2000, 2002 SurakWare Corp.
00008 //
00010 #ifndef sw_cbl_codetree_exprvisitor_h
00011 #define sw_cbl_codetree_exprvisitor_h
00012 
00013 #include 
00014 #include 
00015 
00016 namespace cbl {
00017 namespace codetree {
00018 
00019 namespace def {
00020     class TEnumDef;
00021     class TPointerDef;
00022     class TRangeDef;
00023     class TArrayDef;
00024     class TFloatDef;
00025 }
00026 
00027 namespace symbols {
00028     class TSymbol;
00029     class TMethodSym;
00030     class TTypeSym;
00031     class TDataSym;
00032     class TModuleSym;
00033 }
00034 
00035 namespace expr {
00036 
00037 class TCondExpr;
00038 class TNewExpr;
00039 class TOperatorExpr;
00040 class TQualExpr;
00041 class TIsExpr;
00042 class TAsExpr;
00043 class TMethodCallExpr;
00044 class TPMDerefExpr;
00045 
00046 class TBoolExpr;
00047 class TCharExpr;
00048 class TWideCharExpr;
00049 class TEnumExpr;
00050 class TStringExpr;
00051 class TPointerExpr;
00052 class TInt32Expr;
00053 class TInt64Expr;
00054 class TUInt32Expr;
00055 class TUInt64Expr;
00056 class TFloat64Expr;
00057 class TFloat80Expr;
00058 class TTypeidExpr;
00059 class TNameExpr;
00060 class TArrayExpr;
00061 
00062 template<class T> class TSymbolExprBase;
00063 typedef TSymbolExprBase TSymbolExpr;
00064 typedef TSymbolExprBase TMethodSymExpr;
00065 typedef TSymbolExprBase TTypeSymExpr;
00066 typedef TSymbolExprBase TDataSymExpr;
00067 typedef TSymbolExprBase TModuleSymExpr;
00068 
00069 // TExprVisitor
00070 class TExprVisitor : public swl::IInterface {
00071 public:
00072     // visit methods
00073     virtual void visit(TCondExpr *) = 0;
00074     virtual void visit(TNewExpr *) = 0;
00075     virtual void visit(TOperatorExpr *) = 0;
00076     virtual void visit(TSymbolExpr *) = 0;
00077     virtual void visit(TMethodSymExpr *) = 0;
00078     virtual void visit(TTypeSymExpr *) = 0;
00079     virtual void visit(TDataSymExpr *) = 0;
00080     virtual void visit(TModuleSymExpr *) = 0;
00081     virtual void visit(TQualExpr *) = 0;
00082     virtual void visit(TIsExpr *) = 0;
00083     virtual void visit(TAsExpr *) = 0;
00084     virtual void visit(TPMDerefExpr *) = 0;
00085     virtual void visit(TMethodCallExpr *) = 0;
00086 
00087     virtual void visit(TBoolExpr *) = 0;
00088     virtual void visit(TCharExpr *) = 0;
00089     virtual void visit(TWideCharExpr *) = 0;
00090     virtual void visit(TEnumExpr *) = 0;
00091     virtual void visit(TStringExpr *) = 0;
00092     virtual void visit(TPointerExpr *) = 0;
00093     virtual void visit(TInt32Expr *) = 0;
00094     virtual void visit(TInt64Expr *) = 0;
00095     virtual void visit(TUInt32Expr *) = 0;
00096     virtual void visit(TUInt64Expr *) = 0;
00097     virtual void visit(TFloat64Expr *) = 0;
00098     virtual void visit(TFloat80Expr *) = 0;
00099     virtual void visit(TTypeidExpr *) = 0;
00100     virtual void visit(TNameExpr *) = 0;
00101     virtual void visit(TArrayExpr *) = 0;
00102 };
00103 
00104 } // namespace expr
00105 } // namespace codetree
00106 } // namespace cbl
00107 
00108 #endif

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