Polaris: LogicalConstExpr.h Source File

LogicalConstExpr.h

Go to the documentation of this file.
00001 ///
00002 #ifndef _LOGICAL_CONST_EXPR_H
00003 #define _LOGICAL_CONST_EXPR_H
00004 ///
00005 /// \class LogicalConstExpr 
00006 /// \brief An expression representing a logical constant.
00007 /// \defgroup Polaris
00008 /// \ingroup Polaris
00009 ///  Expression
00010 /// \see Expression/LogicalConstExpr.h
00011 /// \see Expression/LogicalConstExpr.h
00012 /// \see Expression/Expression.cc
00013 ///
00014 /// \endcode
00015 /// \section DESCRIPTION DESCRIPTION
00016 /// A LogicalConstExpr is a logical constant expression.  Its single
00017 /// field, which is a string, is accessed through the methods
00018 /// data(), str_data(), and data_ref().  See StringExpr.h for more
00019 /// information about these methods.
00020 ///
00021 #ifdef POLARIS_GNU_PRAGMAS
00022 #pragma interface
00023 #endif
00024 ///
00025 #ifndef _STRING_EXPR_H
00026 #include "StringExpr.h"
00027 #endif
00028 ///
00029 class LogicalConstExpr : public StringExpr {
00030     friend class          ExprTable;
00031 
00032  public:
00033     inline LogicalConstExpr(const char *data_string);
00034     inline LogicalConstExpr(const LogicalConstExpr & e);
00035     virtual ~LogicalConstExpr();
00036 
00037     virtual LogicalConstExpr & operator = (const LogicalConstExpr &);
00038 
00039     virtual Expression *clone() const;
00040     virtual int     structures_OK() const;
00041     virtual void    convert(BinRep & exprSet, Symtab & symtab);
00042     ///< See Expression.h.
00043  
00044     virtual int     exchange_expr( VDL & vdl );
00045     ///< Create a node in the "expression" member and return the index.
00046 
00047  protected:
00048     inline LogicalConstExpr();
00049 };
00050 
00051 
00052 ///< inline implementations
00053 
00054 inline
00055 LogicalConstExpr::LogicalConstExpr() 
00056 : StringExpr(LOGICAL_CONSTANT_OP, make_type(LOGICAL_TYPE)) 
00057 {
00058     ///< nothing to do
00059 }
00060 
00061 inline
00062 LogicalConstExpr::LogicalConstExpr(const char *data_string)
00063 : StringExpr(LOGICAL_CONSTANT_OP, make_type(LOGICAL_TYPE), data_string)
00064 {
00065     ///< nothing to do
00066 }
00067 
00068 inline
00069 LogicalConstExpr::LogicalConstExpr(const LogicalConstExpr & e)
00070 : StringExpr(e) 
00071 {
00072     ///< nothing to do
00073 }
00074 
00075 #endif
 © 1995-2005 University of Illinois, Urbana-Champaign. All rights reserved.  Fri Mar 25 23:05:58 2005