Polaris: EqualExpr Class Reference

EqualExpr Class Reference

An expression representing an iterator. More...

#include <EqualExpr.h>

Inheritance diagram for EqualExpr:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 EqualExpr (const Type &etype, Expression *index_id_exp, Expression *iteration_space_exp)
 EqualExpr (const EqualExpr &e)
virtual ~EqualExpr ()
 Note: The following data fields are aliased: index_id = left iteration_space = right.
virtual EqualExproperator= (const EqualExpr &)
virtual const Expressionindex_id () const
virtual Expressionindex_id ()
virtual void index_id (Expression *)
 Return the index variable of the expression.
virtual const Expressioniteration_space () const
virtual Expressioniteration_space ()
virtual void iteration_space (Expression *)
 Return a comma separated list containing the lower and upper bounds of the iteration space and a possible stride.
virtual Expressionclone () const
 Return a copy of myself.
virtual int structures_OK () const
 Return 1 if my structures are in a valid state.
virtual void convert (BinRep &exprSet, Symtab &symtab)
 Read in the values of my fields and my subexpressions from the given BinRep object.
virtual void print_debug (ostream &o, Boolean debug) const
 See Expression.h.
virtual int exchange_expr (VDL &vdl)
 Create a node in the "expression" member and return the index.

Protected Member Functions

 EqualExpr (const Type &etype)

Friends

class ExprTable

Detailed Description

An expression representing an iterator.

Polaris Expression

See also:
Expression/EqualExpr.h

Expression/EqualExpr.h

Expression/Expression.cc

Description

An EqualExpr is the starting point expression in an I/O iterator. For example, in the statement "write *,(a(i), i=1,30)" the EqualExpr represents the "i=1,30" part. It has two arguments, the index (i) and the iteration space (1,30).

USE: index_id must be an IDExpr iteration_space must be a CommaExpr

Definition at line 33 of file EqualExpr.h.


Constructor & Destructor Documentation

EqualExpr::EqualExpr const Type etype,
Expression index_id_exp,
Expression iteration_space_exp
[inline]
 

Definition at line 81 of file EqualExpr.h.

References COMMA_OP, EQUAL_OP, and ID_OP.

Referenced by clone().

EqualExpr::EqualExpr const EqualExpr e  )  [inline]
 

< nothing to do

Definition at line 94 of file EqualExpr.h.

References e.

EqualExpr::~EqualExpr  )  [virtual]
 

Note: The following data fields are aliased: index_id = left iteration_space = right.

... nothing to do

Definition at line 4263 of file Expression.cc.

EqualExpr::EqualExpr const Type etype  )  [inline, protected]
 

< nothing to do

Definition at line 74 of file EqualExpr.h.

References EQUAL_OP.


Member Function Documentation

EqualExpr & EqualExpr::operator= const EqualExpr  )  [virtual]
 

Definition at line 4275 of file Expression.cc.

References e, and BinaryExpr::operator=().

const Expression & EqualExpr::index_id  )  const [virtual]
 

Reimplemented from Expression.

Definition at line 4291 of file Expression.cc.

References BinaryExpr::_left_guarded().

Expression & EqualExpr::index_id  )  [virtual]
 

Reimplemented from Expression.

Definition at line 4297 of file Expression.cc.

References BinaryExpr::_left_guarded().

void EqualExpr::index_id Expression  )  [virtual]
 

Return the index variable of the expression.

The index_id must always be an IDExpr.

Reimplemented from Expression.

Definition at line 4283 of file Expression.cc.

References BinaryExpr::_left(), e, ID_OP, and Expression::op().

const Expression & EqualExpr::iteration_space  )  const [virtual]
 

Reimplemented from Expression.

Definition at line 4311 of file Expression.cc.

References BinaryExpr::_right_guarded().

Expression & EqualExpr::iteration_space  )  [virtual]
 

Reimplemented from Expression.

Definition at line 4317 of file Expression.cc.

References BinaryExpr::_right_guarded().

void EqualExpr::iteration_space Expression  )  [virtual]
 

Return a comma separated list containing the lower and upper bounds of the iteration space and a possible stride.

The iteration_space must always be a CommaExpr.

Reimplemented from Expression.

Definition at line 4303 of file Expression.cc.

References BinaryExpr::_right(), COMMA_OP, e, and Expression::op().

Expression * EqualExpr::clone  )  const [virtual]
 

Return a copy of myself.

Reimplemented from BinaryExpr.

Definition at line 4269 of file Expression.cc.

References EqualExpr().

int EqualExpr::structures_OK  )  const [virtual]
 

Return 1 if my structures are in a valid state.

Reimplemented from BinaryExpr.

Definition at line 4323 of file Expression.cc.

References True.

virtual void EqualExpr::convert BinRep exprSet,
Symtab symtab
[virtual]
 

Read in the values of my fields and my subexpressions from the given BinRep object.

Convert(BinRep) expects the BinRep to be referencing an expression set of the same type as the expression. On return, all data from the expression set has been inserted into the appropriate fields in the expression object. NOTE that this converts the expression to an intermediate form which may contain TableExpr objects.

Reimplemented from BinaryExpr.

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

See Expression.h.

Reimplemented from BinaryExpr.

int EqualExpr::exchange_expr VDL vdl  )  [virtual]
 

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

Reimplemented from BinaryExpr.

Definition at line 4330 of file Expression.cc.

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


Friends And Related Function Documentation

friend class ExprTable [friend]
 

Reimplemented from BinaryExpr.

Definition at line 34 of file EqualExpr.h.


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:07:18 2005