expression_logical_and Class Reference

#include <logical_and.h>

Inheritance diagram for expression_logical_and:

expression expression_logical_and_compile expression_logical_and_pretty List of all members.

Public Member Functions

virtual ~expression_logical_and ()
 expression_logical_and (const expression::pointer &lhs, const expression::pointer &rhs, translator *cntxt)
void traversal (int pprec)
int get_precedence () const
type::pointer get_type () const
bool is_lvalue () const
side_effect_t has_side_effect () const
void logical_traversal (int pprec, label::pointer &true_branch, label::pointer &false_branch, bool fall_through_preference)

Protected Member Functions

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_logical_and ()
 expression_logical_and (const expression_logical_and &)
expression_logical_andoperator= (const expression_logical_and &)

Private Attributes

translatorxlat
expression::pointer lhs
expression::pointer rhs

Detailed Description

The expression_logical_and class is used to represent an abstract logical AND expression node.

Definition at line 32 of file logical_and.h.


Constructor & Destructor Documentation

virtual expression_logical_and::~expression_logical_and (  )  [virtual]

The destructor.

expression_logical_and::expression_logical_and ( const expression::pointer lhs,
const expression::pointer rhs,
translator cntxt 
)

The constructor.

expression_logical_and::expression_logical_and (  )  [private]

The default constructor.

expression_logical_and::expression_logical_and ( const expression_logical_and  )  [private]

The copy constructor.


Member Function Documentation

void expression_logical_and::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_logical_and::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_logical_and::get_type (  )  const [virtual]

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

Implements expression.

bool expression_logical_and::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_logical_and::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_logical_and::logical_traversal ( int  pprec,
label::pointer true_branch,
label::pointer false_branch,
bool  fall_through_preference 
)

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

The pre_order_traversal method is used to perform actions required before the left hand expression is traversed.

Parameters:
pprec The parent expression's precedence. Not much use to code generators, but essential for pretty printers to get the parentheses correct.

Reimplemented in expression_logical_and_pretty.

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

The infix_order_traversal method is used to perform actions required after the left hand expression is traversed and before the right hand expression is traversed.

Parameters:
pprec The parent expression's precedence.

Reimplemented in expression_logical_and_pretty.

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

The post_order_traversal method is used to perform actions required after the right hand expression is traversed.

Parameters:
pprec The parent expression's precedence. Not much use to code generators, but essential for pretty printers to get the parentheses correct.

Reimplemented in expression_logical_and_pretty.

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

The get_lhs method is used to obtain the left hand operand of this logical AND expression node.

Definition at line 103 of file logical_and.h.

References lhs.

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

The get_rhs method is used to obtain the right hand operand of this logical AND expression node.

Definition at line 109 of file logical_and.h.

References rhs.

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

The assignment operator.


Member Data Documentation

translator& expression_logical_and::xlat [private]

The xlat instance variable is used to remember where to get labels from.

Definition at line 116 of file logical_and.h.

expression::pointer expression_logical_and::lhs [private]

The lhs instance variable is used to remember the left and side of the logical AND expression.

Definition at line 122 of file logical_and.h.

Referenced by get_lhs().

expression::pointer expression_logical_and::rhs [private]

The lhs instance variable is used to remember the right hand side of the logical AND expression.

Definition at line 128 of file logical_and.h.

Referenced by get_rhs().


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