expression_assignment Class Reference

#include <assignment.h>

Inheritance diagram for expression_assignment:

expression expression_assignment_compile expression_assignment_pretty List of all members.

Public Member Functions

virtual ~expression_assignment ()
 expression_assignment (const expression::pointer &lhs, const expression::pointer &rhs)

Protected Member Functions

void traversal (int pprec)
bool is_lvalue () const
side_effect_t has_side_effect () const
type::pointer get_type () const
void logical_traversal (int pprec, label::pointer &true_branch, label::pointer &false_branch, bool fall_through_preference)
int get_precedence () const
virtual void pre_order_traversal (int pprec)
virtual void infix_order_traversal (int pprec)
virtual void post_order_traversal (int pprec)
expression::pointer get_lhs () const
expression::pointer get_rhs () const

Private Member Functions

 expression_assignment ()
 expression_assignment (const expression_assignment &)
expression_assignmentoperator= (const expression_assignment &)

Private Attributes

expression::pointer lhs
expression::pointer rhs

Detailed Description

The expression_assignment class is used to represent an abstract assignment expression node.

Definition at line 32 of file assignment.h.


Constructor & Destructor Documentation

virtual expression_assignment::~expression_assignment (  )  [virtual]

The destructor.

expression_assignment::expression_assignment ( const expression::pointer lhs,
const expression::pointer rhs 
)

The default constructor.

Parameters:
lhs the left hand side of the assignment.
rhs the right hand side of the assignment.

expression_assignment::expression_assignment (  )  [private]

The default constructor. Do not use.

expression_assignment::expression_assignment ( const expression_assignment  )  [private]

The copy constructor. Do not use.


Member Function Documentation

void expression_assignment::traversal ( int  pprec  )  [protected, 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.

bool expression_assignment::is_lvalue (  )  const [protected, 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_assignment::has_side_effect (  )  const [protected, 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.

type::pointer expression_assignment::get_type (  )  const [protected, virtual]

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

Implements expression.

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

int expression_assignment::get_precedence (  )  const [protected, 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.

virtual void expression_assignment::pre_order_traversal ( int  pprec  )  [protected, virtual]

The pre_order_traversal method is called by the traversal method before the left hand expression is traversed. The default implementation does nothing.

virtual void expression_assignment::infix_order_traversal ( int  pprec  )  [protected, virtual]

The infix_order_traversal method is called by the traversal method after the left hand expression is traversed, and before the right hand expression is traversed. The default implementation does nothing.

Reimplemented in expression_assignment_pretty.

virtual void expression_assignment::post_order_traversal ( int  pprec  )  [protected, virtual]

The post_order_traversal method is called by the traversal method after the right hand expression is traversed. The default implementation does nothing.

expression::pointer expression_assignment::get_lhs (  )  const [inline, protected]

The get_lhs method is used ot get the left hand operand of the assignment node.

Definition at line 98 of file assignment.h.

References lhs.

expression::pointer expression_assignment::get_rhs (  )  const [inline, protected]

The get_rhs method is used ot get the right hand operand of the assignment node.

Definition at line 104 of file assignment.h.

References rhs.

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

The assignment operator. Do not use.


Member Data Documentation

expression::pointer expression_assignment::lhs [private]

The lhs instance variable is used to remember the left hand side of the assignment.

Definition at line 111 of file assignment.h.

Referenced by get_lhs().

expression::pointer expression_assignment::rhs [private]

The lhs instance variable is used to remember the right hand side of the assignment.

Definition at line 117 of file assignment.h.

Referenced by get_rhs().


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