Polaris: StringExpr Class Reference

StringExpr Class Reference

An abstract expression with a string argument. More...

#include <StringExpr.h>

Inheritance diagram for StringExpr:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 StringExpr (OP_TYPE op, const Type &ty, const char *data_string)
 StringExpr (const StringExpr &e)
virtual ~StringExpr ()
 StringExpr code:.
StringExproperator= (const StringExpr &)
virtual const char * data_ref () const
virtual void data (const char *)
 Access the string contained within myself.
virtual const Stringstr_data () const
virtual Stringstr_data ()
 Like data_ref(), except that a String object is returned.
virtual Expressionclone () const =0
 Return a copy of myself.
virtual int structures_OK () const =0
 Return 1 if my structures are in a valid state.
virtual void print_debug (ostream &o, Boolean debug) const
 debug indicates whether it should contain extra fields
virtual const ExprSignatureupdate_signature ()
virtual int node_compare (const Expression &ex) const
 See Expression.h.
virtual int exchange_expr (VDL &vdl)
 Create a node in the "expression" member and return the index.

Protected Member Functions

 StringExpr (OP_TYPE op, const Type &ty)
virtual Boolean _args_are_equal (Expression &, Boolean consider_side_effects)

Protected Attributes

String _data

Friends

class ExprTable

Detailed Description

An abstract expression with a string argument.

Polaris Expression

See also:
Expression/StringExpr.h

Expression/StringExpr.h

Expression/Expression.cc

Description

A StringExpr is an expression whose data is represented as a string. StringExpr was designed to be subclassed from, and cannot be instantiated. If one wishes to create a string expression, use StringConstExpr rather than StringExpr.

Definition at line 29 of file StringExpr.h.


Constructor & Destructor Documentation

StringExpr::StringExpr OP_TYPE  op,
const Type ty,
const char *  data_string
[inline]
 

Definition at line 79 of file StringExpr.h.

References _data.

StringExpr::StringExpr const StringExpr e  )  [inline]
 

Definition at line 86 of file StringExpr.h.

References _data, and e.

StringExpr::~StringExpr  )  [virtual]
 

StringExpr code:.

... nothing to do

Definition at line 6672 of file Expression.cc.

StringExpr::StringExpr OP_TYPE  op,
const Type ty
[inline, protected]
 

< nothing to do

Definition at line 72 of file StringExpr.h.


Member Function Documentation

StringExpr & StringExpr::operator= const StringExpr  ) 
 

Definition at line 6678 of file Expression.cc.

References _data, Expression::data_ref(), and e.

Referenced by StringConstExpr::operator=(), StmtLabelExpr::operator=(), RealConstExpr::operator=(), KeyExpr::operator=(), LogicalConstExpr::operator=(), and HollerithConstExpr::operator=().

const char * StringExpr::data_ref  )  const [virtual]
 

Reimplemented from Expression.

Definition at line 6699 of file Expression.cc.

References _data.

Referenced by node_compare(), and update_signature().

void StringExpr::data const char *   )  [virtual]
 

Access the string contained within myself.

Reimplemented from Expression.

Definition at line 6705 of file Expression.cc.

References _data.

const String & StringExpr::str_data  )  const [virtual]
 

Reimplemented from Expression.

Definition at line 6687 of file Expression.cc.

References _data.

String & StringExpr::str_data  )  [virtual]
 

Like data_ref(), except that a String object is returned.

Reimplemented from Expression.

Definition at line 6693 of file Expression.cc.

References _data.

virtual Expression* StringExpr::clone  )  const [pure virtual]
 

Return a copy of myself.

Implements Expression.

Implemented in HollerithConstExpr, KeyExpr, LogicalConstExpr, RealConstExpr, StmtLabelExpr, and StringConstExpr.

virtual int StringExpr::structures_OK  )  const [pure virtual]
 

Return 1 if my structures are in a valid state.

Implements Expression.

Implemented in HollerithConstExpr, KeyExpr, LogicalConstExpr, RealConstExpr, StmtLabelExpr, and StringConstExpr.

virtual void StringExpr::print_debug ostream &  o,
Boolean  debug
const [virtual]
 

debug indicates whether it should contain extra fields

Implements Expression.

Reimplemented in StmtLabelExpr.

const ExprSignature & StringExpr::update_signature  )  [virtual]
 

... _signature_live().merge( (int) type().data_type() ); ... _signature_live().merge( type().size() );

Reimplemented from Expression.

Definition at line 7266 of file Expression.cc.

References Expression::_signature_live(), ExprSignature::clear(), data_ref(), ExprSignature::merge(), Expression::op(), and Expression::signature().

int StringExpr::node_compare const Expression ex  )  const [virtual]
 

See Expression.h.

Reimplemented from Expression.

Definition at line 7342 of file Expression.cc.

References data_ref().

int StringExpr::exchange_expr VDL vdl  )  [virtual]
 

Create a node in the "expression" member and return the index.

Reimplemented from Expression.

Reimplemented in HollerithConstExpr, KeyExpr, LogicalConstExpr, RealConstExpr, StmtLabelExpr, and StringConstExpr.

Definition at line 6717 of file Expression.cc.

References Expression::exchange_expr(), BinRep::find_ref(), Set< T >::ins(), List< T >::ins_last(), and BinRep::to_tuple().

virtual Boolean StringExpr::_args_are_equal Expression ,
Boolean  consider_side_effects
[protected, virtual]
 

Reimplemented from Expression.


Friends And Related Function Documentation

friend class ExprTable [friend]
 

Reimplemented in KeyExpr, LogicalConstExpr, RealConstExpr, and StringConstExpr.

Definition at line 30 of file StringExpr.h.


Member Data Documentation

String StringExpr::_data [protected]
 

Definition at line 60 of file StringExpr.h.

Referenced by data(), data_ref(), operator=(), str_data(), and StringExpr().


The documentation for this class was generated from the following files:
 © 1995-2005 University of Illinois, Urbana-Champaign. All rights reserved.  Fri Mar 25 23:08:25 2005