expression_dereference Class Reference

#include <dereference.h>

Inheritance diagram for expression_dereference:

expression expression_dereference_pretty List of all members.

Public Member Functions

virtual ~expression_dereference ()
 expression_dereference (const expression::pointer &arg)
void traversal (int pprec)
int get_precedence () const
type::pointer get_type () const
bool is_lvalue () const
side_effect_t has_side_effect () const

Protected Member Functions

void pre_order_traversal (int pprec)
void post_order_traversal (int pprec)
expression::pointer get_operand () const
bool is_explicit () const
void logical_traversal (int pprec, label::pointer &true_branch, label::pointer &false_branch, bool fall_through_preference)

Private Member Functions

 expression_dereference ()
 expression_dereference (const expression_dereference &)
expression_dereferenceoperator= (const expression_dereference &)

Private Attributes

expression::pointer operand

Detailed Description

The expression_dereference class is used to represent an abstract pointer dereference (indirect load).

Definition at line 30 of file dereference.h.


Constructor & Destructor Documentation

virtual expression_dereference::~expression_dereference (  )  [virtual]

The destructor.

expression_dereference::expression_dereference ( const expression::pointer arg  ) 

The constructor.

expression_dereference::expression_dereference (  )  [private]

The default constructor. Do not use.

expression_dereference::expression_dereference ( const expression_dereference  )  [private]

The copy constructor. Do not use.


Member Function Documentation

void expression_dereference::traversal ( int  pprec  )  [virtual]

The traversal method may be used to traverse each of the declaractions in the list.

Parameters:
pprec The precedence of the parent expression node.

Implements expression.

int expression_dereference::get_precedence (  )  const [virtual]

The get_precedence method is used to obtain the precedence of this expression node.

The highest precedence has the highest absolute value, the lowest precedence gets the lowest absolute value.

Implements expression.

type::pointer expression_dereference::get_type (  )  const [virtual]

The get_type method is used to get the type of this expression.

Implements expression.

bool expression_dereference::is_lvalue (  )  const [virtual]

The is_lvalue method is used to determine whether or not this expression is suitable to appear on the left hand side of an assignment expression.

Implements expression.

side_effect_t expression_dereference::has_side_effect (  )  const [virtual]

The has_side_effect method is used to determine if an expression has any effect. It is used by the parse to produce "statement with no effect" warnings.

Implements expression.

void expression_dereference::pre_order_traversal ( int  pprec  )  [protected]

The pre_order_traversal method is called by the traversal method just before the operand is traversed.

Reimplemented in expression_dereference_pretty.

void expression_dereference::post_order_traversal ( int  pprec  )  [protected]

The post_order_traversal method is called by the traversal method just after the operand is traversed.

Reimplemented in expression_dereference_pretty.

expression::pointer expression_dereference::get_operand (  )  const [inline, protected]

Definition at line 72 of file dereference.h.

References operand.

bool expression_dereference::is_explicit (  )  const [protected]

void expression_dereference::logical_traversal ( int  pprec,
label::pointer true_branch,
label::pointer false_branch,
bool  fall_through_preference 
) [protected]

expression_dereference& expression_dereference::operator= ( const expression_dereference  )  [private]

The assignment operator. Do not use.


Member Data Documentation

expression::pointer expression_dereference::operand [private]

The operand instance variable is used to remember the pointer expression we are going to dereference.

Definition at line 84 of file dereference.h.

Referenced by get_operand().


The documentation for this class was generated from the following file:
Generated on Sun Feb 25 01:27:11 2007 for UCSDp-SystemCrossCompiler by  doxygen 1.5.1