Polaris: ARDAssertion.h Source File

ARDAssertion.h

Go to the documentation of this file.
00001 ///
00002 ///
00003 #ifndef _ARD_ASSERTION_H
00004 #define _ARD_ASSERTION_H
00005 ///
00006 /// \class ARDAssertion 
00007 /// \brief a base class for compiler assertions, using lists of Access Region Descriptors (ARDs)
00008 /// \defgroup C
00009 /// \ingroup C++ CVDL
00010 ///  Polaris
00011 /// \see Directive/Assertion.h
00012 /// \see Directive/ARDAssertion.h
00013 ///
00014 /// \endcode
00015 /// \section Description Description
00016 /// The ARDAssertion class is meant to provide the base for a 
00017 /// generic compiler assertion class based on Lists of expressions.  
00018 /// Derived classes will implement specific instances of the different 
00019 /// flavors of compiler assertions.
00020 ///
00021 /// \endcode
00022 /// \section Bugs Bugs
00023 /// No known bugs.
00024 ///
00025 #ifdef POLARIS_GNU_PRAGMAS
00026 #pragma interface
00027 #endif
00028 ///
00029 #include "../Boolean.h"
00030 #include "../AbstractAccess.h"
00031 #include "../Listable.h"
00032 #include "../Collection/List.h"
00033 #include "../Collection/RefList.h"
00034 ///
00035 #include "Assertion.h"
00036 ///
00037 class ARDAssertion : public Assertion {
00038  protected:  
00039     List<AbstractAccess>     _descr_list;
00040 
00041  public:
00042     ARDAssertion();
00043     ///< Construct a ARDAssertion.
00044 
00045     ARDAssertion(const ARDAssertion & a);
00046     ///< Construct a ARDAssertion with a copy of another 
00047     ///< ARDAssertion's current value.
00048 
00049     const List<AbstractAccess> & descr_list_guarded() const;
00050     List<AbstractAccess> & descr_list_guarded();
00051     ///< return the list of AbstractAccess associated with this assertion.
00052 
00053     Boolean descr_list_valid() const;
00054     ///< check to see if the descr_list() exists.
00055 
00056     virtual Assertion *clone() const;
00057     ///< clone any ARDAssertion
00058     
00059     virtual void relink_aptrs( ProgramUnit &p );
00060     ///< fix up the pointers in the Assertion after a copy.
00061 
00062     virtual ARDAssertion & operator = (const ARDAssertion &a);
00063     ///< assignment operator.
00064 
00065     virtual ~ARDAssertion();
00066     ///< destructor
00067 };
00068 
00069 #endif
 © 1995-2005 University of Illinois, Urbana-Champaign. All rights reserved.  Fri Mar 25 23:05:37 2005