Polaris: OmegaExpr.h Source File

OmegaExpr.h

Go to the documentation of this file.
00001 ///
00002 #ifndef _OMEGA_EXPR_H
00003 #define _OMEGA_EXPR_H
00004 ///
00005 /// \class OmegaExpr 
00006 /// \brief An expression representing OMEGA.
00007 /// \defgroup Polaris
00008 /// \ingroup Polaris
00009 ///  C++ VDL
00010 /// \see Expression.h
00011 /// \see Expression.cc
00012 ///
00013 /// \endcode
00014 /// \section Description Description
00015 /// A OmegaExpr is an expression for holding OMEGA.  The value OMEGA is
00016 /// not part of the Fortran language.  Instead, it is a data structure
00017 /// value that originated from the Delta compiler, which was
00018 /// implemented in SETL.  OmegaExprs are typically used to represent
00019 /// undefined values.
00020 ///
00021 #ifdef POLARIS_GNU_PRAGMAS
00022 #pragma interface
00023 #endif
00024 ///
00025 #ifndef _EXPRESSION_H
00026 #include "Expression.h"
00027 #endif
00028 ///
00029 class OmegaExpr : public Expression {
00030  public:
00031     inline OmegaExpr();
00032     inline OmegaExpr(const OmegaExpr & e);
00033     virtual ~OmegaExpr();
00034 
00035     virtual Expression *clone() const;
00036     virtual OmegaExpr & operator = (const OmegaExpr &);
00037     virtual void    print_debug(ostream & o, Boolean debug) const;
00038     virtual int     structures_OK() const;
00039     virtual void    convert(BinRep & exprSet, Symtab & symtab);
00040     ///< See Expression.h.
00041  
00042     virtual int     exchange_expr( VDL & vdl );
00043     ///< Create a node in the "expression" member and return the index.
00044 };
00045 
00046 
00047 ///< inline implementations
00048 
00049 inline
00050 OmegaExpr::OmegaExpr()
00051 : Expression(OMEGA_OP, make_type(VOID_TYPE)) 
00052 {
00053     ///< nothing to do
00054 }
00055 
00056 inline
00057 OmegaExpr::OmegaExpr(const OmegaExpr & e)
00058 : Expression(e) 
00059 {
00060     ///< nothing to do
00061 }
00062 
00063 #endif
 © 1995-2005 University of Illinois, Urbana-Champaign. All rights reserved.  Fri Mar 25 23:05:59 2005