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

defarray.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: defarray_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_defarray_h
00011 #define sw_cbl_codetree_defarray_h
00012 
00013 #include 
00014 
00015 #include 
00016 
00017 namespace cbl {
00018 namespace codetree {
00019 namespace def {
00020 
00021 class TRangeDef;
00022 
00023 // TArrayDef
00024 class TArrayDef : public TCompositeDef<> {
00025 public:
00026     enum TStyle {
00027         asStatic, asDynamic, asOpen
00028     };
00029 
00030 private:
00031     typedef TCompositeDef<> base_class;
00032 
00033     typedef std::deque TRangeList;
00034 
00035     unsigned FSize;
00036     TRangeList FDim;
00037     TStyle FStyle;
00038 
00039     void calcSize();
00040 
00041 protected:
00042     // constructors
00043     TArrayDef(symbols::TModuleSym *AOwner, TDef *ABaseDef);
00044     
00045     friend class symbols::TModuleSym;
00046 
00047 public:
00048     TArrayDef(const TArrayDef&);
00049 
00050     // size
00051     virtual unsigned size() const;
00052 
00053     // style
00054     TStyle style() const;
00055     void style(TStyle);
00056 
00057     // dimensions
00058     void add(TRangeDef *ADim);
00059     const TRangeList& dimensions() const;
00060 
00061     // visitor pattern
00062     virtual void accept(TDefVisitor&);
00063 
00064     // object cloning
00065     virtual TArrayDef *clone() const;
00066 };
00067 
00068 } // namespace def
00069 } // namespace codetree
00070 } // namespace cbl
00071 
00072 #endif

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