Polaris: HollerithConstExpr.h Source File

HollerithConstExpr.h

Go to the documentation of this file.
00001 ///
00002 #ifndef _HOLLERITH_CONST_EXPR_H
00003 #define _HOLLERITH_CONST_EXPR_H
00004 ///
00005 /// \class HollerithConstExpr 
00006 /// \brief An expression representing a Hollerith constant.
00007 /// \defgroup Polaris
00008 /// \ingroup Polaris
00009 ///  Expression
00010 /// \see Expression/HollerithConstExpr.h
00011 /// \see Expression/HollerithConstExpr.h
00012 /// \see Expression/Expression.cc
00013 ///
00014 /// \endcode
00015 /// \section Description Description
00016 /// An HollerithConstExpr is a Hollerith constant expression.
00017 /// That is, a string expression of the form '3Hfoo' or length of
00018 /// string, the letter H, then the string.
00019 ///
00020 #ifdef POLARIS_GNU_PRAGMAS
00021 #pragma interface
00022 #endif
00023 ///
00024 #ifndef _STRING_EXPR_H
00025 #include "StringExpr.h"
00026 #endif
00027 ///
00028 class HollerithConstExpr : public StringExpr {
00029  public:
00030     inline HollerithConstExpr(const char *holl_data);
00031     inline HollerithConstExpr(const HollerithConstExpr & e);
00032     virtual ~HollerithConstExpr();
00033 
00034     virtual HollerithConstExpr & operator = (const HollerithConstExpr &);
00035 
00036     virtual Expression *clone() const;
00037     virtual int     structures_OK() const;
00038     virtual void    convert(BinRep & exprSet, Symtab & symtab);
00039     ///< See Expression.h.
00040  
00041     virtual int     exchange_expr( VDL & vdl );
00042     ///< Create a node in the "expression" member and return the index.
00043 
00044  protected:
00045     inline HollerithConstExpr();
00046 };
00047 
00048 
00049 ///< inline implementations
00050 
00051 inline
00052 HollerithConstExpr::HollerithConstExpr() 
00053 : StringExpr(HOLLERITH_CONSTANT_OP, make_type(CHARACTER_TYPE)) 
00054 {
00055     ///< nothing to do
00056 }
00057 
00058 inline
00059 HollerithConstExpr::HollerithConstExpr(const char *holl_data)
00060 : StringExpr(HOLLERITH_CONSTANT_OP, make_type(CHARACTER_TYPE), holl_data) 
00061 {
00062     ///< nothing to do
00063 }
00064 
00065 inline
00066 HollerithConstExpr::HollerithConstExpr(const HollerithConstExpr & e)
00067 : StringExpr(e)
00068 {
00069     ///< nothing to do
00070 }
00071 
00072 #endif
 © 1995-2005 University of Illinois, Urbana-Champaign. All rights reserved.  Fri Mar 25 23:05:54 2005