| Polaris: ArrayDims.h Source File | ||
|
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members
ArrayDims.hGo to the documentation of this file.00001 /// 00002 /// 00003 /// ArrayDims.h 00004 /// 00005 #ifndef ARRAY_DIMS_H 00006 #define ARRAY_DIMS_H 00007 /// 00008 /// \class ArrayDims 00009 /// \brief a list of ArrayBounds 00010 /// \defgroup Polaris 00011 /// \ingroup Polaris 00012 /// C++ VDL 00013 /// \see ArrayDims.h 00014 /// \see ArrayDims.h 00015 /// \see ArrayDims.cc 00016 /// 00017 /// \endcode 00018 /// \section Description Description 00019 /// ArrayDims is a list of ArrayBounds with a few other functions. 00020 /// It has the ability to initialize itself from a binstr. 00021 /// 00022 /// \endcode 00023 /// \section Implementation Implementation Notes 00024 /// For an explanation of _first_pass, etc., see the Implementation 00025 /// Notes section of Symbol/Symbol.h. 00026 /// 00027 #ifdef POLARIS_GNU_PRAGMAS 00028 #pragma interface 00029 #endif 00030 /// 00031 #include "ClassNames.h" 00032 #include "ArrayBounds.h" 00033 #include "BinRep.h" 00034 #include "Collection/List.h" 00035 /// 00036 class ExprTable; 00037 00038 class ArrayDims : public List<ArrayBounds>{ 00039 friend ostream & operator << (ostream & o, const ArrayDims & dims); 00040 00041 public: 00042 ArrayDims(); 00043 ~ArrayDims() { 00044 #ifdef CLASS_INSTANCE_REGISTRY 00045 unregister_instance(ARRAY_DIMS, this); 00046 #endif 00047 }; ///< Nothing to do 00048 ArrayDims(const BinRep & binstr, ExprTable & exprs); 00049 ArrayDims(const ArrayDims & dims); 00050 00051 ArrayDims & operator = (const ArrayDims & dims); 00052 00053 void convert(const BinRep & binstr, ExprTable & exprs); 00054 00055 void print_all_colons(ostream & o) const; ///< e.g. (:,:,:) 00056 void print_last_star (ostream & o) const; ///< e.g. (100,100,*) 00057 00058 virtual void print(ostream & o) const; 00059 ///< print onto stream 00060 00061 virtual ArrayDims *clone() const; 00062 virtual Listable *listable_clone() const; 00063 00064 int structures_OK() const; 00065 ///< Check the structure of the data for errors or inconsistency 00066 ///< Return 0 and print error message if problems found, otherwise 00067 ///< return 1 without message. 00068 }; 00069 00070 #endif |
||
|