Polaris: TableExpr Class Reference

TableExpr Class Reference

An expression holding an expression table index. More...

#include <TableExpr.h>

Inheritance diagram for TableExpr:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 TableExpr ()
 TableExpr (int n)
 TableExpr (const TableExpr &t)
virtual ~TableExpr ()
 TableExpr code:.
virtual void entry (int)
 Methods specified in derived class TableExpr.h.
virtual int entry () const
 Access the expression table index.
virtual Expressionclone () const
 Return a copy of myself.
virtual void print_debug (ostream &o, Boolean debug) const
 debug indicates whether it should contain extra fields
virtual void convert (BinRep &exprSet, Symtab &symtab)
 Read in the values of my fields and my subexpressions from the given BinRep object.
virtual int structures_OK () const
 Return 1 if my structures are in a valid state.
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 Attributes

int _entry

Detailed Description

An expression holding an expression table index.

Polaris Expression

See also:
Expression/TableExpr.h

Expression/TableExpr.h

Expression/Expression.cc

Description

This derived class is not an actual expression type. It is to be used as an intermediate form when converting from the SETL expression table to the C expression form. All it contains is a single value which is the index of an expression in the expression table. See ExprTable.h

Definition at line 30 of file TableExpr.h.


Constructor & Destructor Documentation

TableExpr::TableExpr  )  [inline]
 

< nothing to do

Definition at line 60 of file TableExpr.h.

References INTEGER_TYPE, make_type(), and TABLE_ENTRY.

Referenced by clone().

TableExpr::TableExpr int  n  )  [inline]
 

Definition at line 67 of file TableExpr.h.

References _entry, INTEGER_TYPE, make_type(), and TABLE_ENTRY.

TableExpr::TableExpr const TableExpr t  )  [inline]
 

Definition at line 74 of file TableExpr.h.

References _entry.

TableExpr::~TableExpr  )  [virtual]
 

TableExpr code:.

... nothing to do

Definition at line 6916 of file Expression.cc.


Member Function Documentation

void TableExpr::entry int   )  [virtual]
 

Methods specified in derived class TableExpr.h.

Reimplemented from Expression.

Definition at line 6928 of file Expression.cc.

References _entry, and e.

int TableExpr::entry  )  const [virtual]
 

Access the expression table index.

Reimplemented from Expression.

Definition at line 6934 of file Expression.cc.

References _entry.

Referenced by node_compare(), and update_signature().

Expression * TableExpr::clone  )  const [virtual]
 

Return a copy of myself.

Implements Expression.

Definition at line 6922 of file Expression.cc.

References TableExpr().

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

debug indicates whether it should contain extra fields

Implements Expression.

virtual void TableExpr::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.

Implements Expression.

int TableExpr::structures_OK  )  const [virtual]
 

Return 1 if my structures are in a valid state.

Implements Expression.

Definition at line 6940 of file Expression.cc.

References True.

const ExprSignature & TableExpr::update_signature  )  [virtual]
 

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

Reimplemented from Expression.

Definition at line 7280 of file Expression.cc.

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

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

See Expression.h.

Reimplemented from Expression.

Definition at line 7348 of file Expression.cc.

References entry().

int TableExpr::exchange_expr VDL vdl  )  [virtual]
 

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

Reimplemented from Expression.

Definition at line 6947 of file Expression.cc.

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


Member Data Documentation

int TableExpr::_entry [protected]
 

Definition at line 32 of file TableExpr.h.

Referenced by entry(), and TableExpr().


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:30 2005