Polaris: AssignStmt Class Reference

AssignStmt Class Reference

#include <AssignStmt.h>

Inheritance diagram for AssignStmt:

Inheritance graph
[legend]
List of all members.

Public Member Functions

void build_refs ()
 AssignStmt (const char *l, Expression *lhs_exp, Statement *target_stmt)
 AssignStmt (const char *l, Expression *lhs_exp, Format *format)
 AssignStmt (const AssignStmt &stmt)
virtual AssignStmtoperator= (const AssignStmt &stmt)
virtual ~AssignStmt ()
virtual int structures_OK () const
virtual void convert (BinRep &stmt, ExprTable &etable, Symtab &symtab, const NamelistDict &namelists, const FormatDB &formats, Dictionary< NextEntry > *next_table)
virtual Statementclone () const
virtual void print_debug (ostream &o, int debug) const
virtual void fortran_write (ostream &o, int &indent, char *type="") const
ASSIGN_TYPE atype () const
const Formatformat_ref () const
Formatformat_ref ()
const Expressionlhs () const
Expressionlhs ()
const Statementtarget_ref () const
Statementtarget_ref ()
void atype (ASSIGN_TYPE t)
void lhs (Expression *ex)
void target (Statement *t)
void format (const Format *f)
virtual void relink_sptrs (ProgramUnit &p)
virtual void exchange_convert (VDL &vdl)
 Convert the Statement into the exchange format.

Protected Member Functions

virtual void _setptrs (Dictionary< VoidPtrDef > &labels, const FormatDB &formats)
 Copies base values of this into other.
 AssignStmt (const char *l)

Protected Attributes

ASSIGN_TYPE _atype
Statement_target
Format_format

Friends

Statementmake_statement (const char *name, const BinRep &binstr)
 make_statement expects the statement name ("S10") and a binstr containing the statement set.

Constructor & Destructor Documentation

AssignStmt::AssignStmt const char *  l  )  [protected]
 

Definition at line 3978 of file Statement.cc.

References _target, ASSIGN_STMT, LHS, List< T >::make_static_list(), List< T >::modify(), and omega().

Referenced by clone().

AssignStmt::AssignStmt const char *  l,
Expression lhs_exp,
Statement target_stmt
 

Definition at line 3987 of file Statement.cc.

References _atype, _format, _target, ASSIGN_STMT, build_refs(), EXECUTABLE_ASSIGN, LABEL_STMT, LHS, List< T >::make_static_list(), List< T >::modify(), and null_to_omega().

AssignStmt::AssignStmt const char *  l,
Expression lhs_exp,
Format format
 

AssignStmt::AssignStmt const AssignStmt stmt  ) 
 

Definition at line 4005 of file Statement.cc.

References _atype, Format::_format, _format, _target, ASSIGN_STMT, build_refs(), Statement::copy_base(), LHS, and List< T >::modify().

AssignStmt::~AssignStmt  )  [virtual]
 

... nothing to do

Definition at line 4041 of file Statement.cc.


Member Function Documentation

void AssignStmt::_setptrs Dictionary< VoidPtrDef > &  labels,
const FormatDB formats
[protected, virtual]
 

Copies base values of this into other.

Reimplemented from Statement.

Definition at line 4183 of file Statement.cc.

References Statement::_setptrs(), _target, atype(), EXECUTABLE_ASSIGN, format(), FORMAT_ASSIGN, label(), makeptr_ptr(), Statement::tag(), and target().

void AssignStmt::build_refs  )  [virtual]
 

... _in_refs and _act_refs can only occur if we are assigning an array, ... via the subscripting expressions

... _out_refs are the act_refs plus the left-hand side expression

Reimplemented from Statement.

Definition at line 3955 of file Statement.cc.

References Statement::_add_act_refs(), Statement::_add_in_refs(), ARRAY_REF_OP, RefSet< T >::clear(), RefSet< T >::ins(), and SUBSTRING_OP.

Referenced by AssignStmt(), lhs(), and operator=().

AssignStmt & AssignStmt::operator= const AssignStmt stmt  )  [virtual]
 

Definition at line 4020 of file Statement.cc.

References _atype, Format::_format, _format, _target, build_refs(), Statement::copy_base(), LHS, and List< T >::modify().

int AssignStmt::structures_OK  )  const [virtual]
 

Implements Statement.

Definition at line 4125 of file Statement.cc.

References Statement::in_out_refs_structures_OK().

virtual void AssignStmt::convert BinRep stmt,
ExprTable etable,
Symtab symtab,
const NamelistDict namelists,
const FormatDB formats,
Dictionary< NextEntry > *  next_table
[virtual]
 

Reimplemented from Statement.

Statement * AssignStmt::clone  )  const [virtual]
 

Implements Statement.

Definition at line 4036 of file Statement.cc.

References AssignStmt().

void AssignStmt::print_debug ostream &  o,
int  debug
const [virtual]
 

... comment '}'

Implements Statement.

Definition at line 4101 of file Statement.cc.

References _atype, _format, _target, EXECUTABLE_ASSIGN, Format::format_ref(), LHS, print_expr_ptr(), Format::value(), and Statement::value().

virtual void AssignStmt::fortran_write ostream &  o,
int &  indent,
char *  type = ""
const [virtual]
 

Implements Statement.

ASSIGN_TYPE AssignStmt::atype  )  const [inline, virtual]
 

Reimplemented from Statement.

Definition at line 46 of file AssignStmt.h.

References _atype.

Referenced by _setptrs().

const Format* AssignStmt::format_ref  )  const [inline, virtual]
 

Reimplemented from Statement.

Definition at line 47 of file AssignStmt.h.

References _format.

Referenced by relink_sptrs().

Format* AssignStmt::format_ref  )  [inline, virtual]
 

Reimplemented from Statement.

Definition at line 48 of file AssignStmt.h.

References _format.

const Expression& AssignStmt::lhs  )  const [inline, virtual]
 

Reimplemented from Statement.

Definition at line 49 of file AssignStmt.h.

References LHS.

Expression& AssignStmt::lhs  )  [inline, virtual]
 

Reimplemented from Statement.

Definition at line 50 of file AssignStmt.h.

References LHS.

const Statement* AssignStmt::target_ref  )  const [inline, virtual]
 

Reimplemented from Statement.

Definition at line 51 of file AssignStmt.h.

References _target.

Statement* AssignStmt::target_ref  )  [inline, virtual]
 

Reimplemented from Statement.

Definition at line 52 of file AssignStmt.h.

References _target.

void AssignStmt::atype ASSIGN_TYPE  t  ) 
 

Definition at line 4054 of file Statement.cc.

References _atype.

void AssignStmt::lhs Expression ex  )  [virtual]
 

Reimplemented from Statement.

Definition at line 4047 of file Statement.cc.

References build_refs(), LHS, and List< T >::modify().

void AssignStmt::target Statement t  )  [virtual]
 

Reimplemented from Statement.

Definition at line 4060 of file Statement.cc.

References _target, and LABEL_STMT.

Referenced by _setptrs().

void AssignStmt::format const Format f  ) 
 

Definition at line 4071 of file Statement.cc.

References _format, and Format::clone().

Referenced by _setptrs(), and relink_sptrs().

void AssignStmt::relink_sptrs ProgramUnit p  )  [virtual]
 

... Relink format pointer

Reimplemented from Statement.

Definition at line 3944 of file Statement.cc.

References format(), FORMAT_ASSIGN, format_ref(), label(), and Format::value().

void AssignStmt::exchange_convert VDL vdl  )  [virtual]
 

Convert the Statement into the exchange format.

Reimplemented from Statement.

Definition at line 4133 of file Statement.cc.

References Statement::exchange_convert(), BinRep::find_ref(), Set< T >::ins(), List< T >::ins_last(), Statement::tag(), BinRep::to_set(), and BinRep::to_tuple().


Friends And Related Function Documentation

Statement* make_statement const char *  name,
const BinRep binstr
[friend]
 

make_statement expects the statement name ("S10") and a binstr containing the statement set.

It returns a pointer to the correct statement object with the tag field already filled in.

The statement table contains tuples of the from ["tag", { all the statement info}]. One should call make_statement passing the "tag" for the name and a binstr which represents the set.

Definition at line 265 of file StmtList.cc.


Member Data Documentation

ASSIGN_TYPE AssignStmt::_atype [protected]
 

Definition at line 18 of file AssignStmt.h.

Referenced by AssignStmt(), atype(), operator=(), and print_debug().

Statement* AssignStmt::_target [protected]
 

Definition at line 19 of file AssignStmt.h.

Referenced by _setptrs(), AssignStmt(), operator=(), print_debug(), target(), and target_ref().

Format* AssignStmt::_format [protected]
 

Definition at line 20 of file AssignStmt.h.

Referenced by AssignStmt(), format(), format_ref(), operator=(), and print_debug().


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:06:58 2005