00001 #ifndef UnitExpr_H
00002 #define UnitExpr_H
00003
00004 #include <stdio.h>
00005 #include <citrus/UnitInfo.H>
00006
00009 class UnitExpr {
00010 protected:
00011 UnitExpr* m_lf ;
00012 UnitExpr* m_rt ;
00013
00014
00015
00016 void p_copy( const UnitExpr& src ) ;
00017 public:
00018 UnitInfo* m_i ;
00019
00020 UnitExpr( const UnitExpr& ue ) ;
00021 UnitExpr( UnitUnitInfo* u, UnitExpr* lf=0, UnitExpr* rt=0 ) ;
00022 UnitExpr( UnitOperInfo* o, UnitExpr* lf=0, UnitExpr* rt=0 ) ;
00023 ~UnitExpr() ;
00024
00025 UnitExpr& operator = ( const UnitExpr& ue ) ;
00026
00027 UnitExpr* left() { return m_lf ; } ;
00028 UnitExpr* right() { return m_rt ; } ;
00029
00030 void print( FILE* f=stdout) const ;
00031 } ;
00032
00033 #endif // UnitExpr_H
00034