expression_logical_not Class Reference

#include <logical_not.h>

Inheritance diagram for expression_logical_not:

expression expression_logical_not_compile expression_logical_not_pretty List of all members.

Public Member Functions

virtual ~expression_logical_not ()
 expression_logical_not (const expression::pointer &operand, 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

Protected Member Functions

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

Private Member Functions

 expression_logical_not ()
 expression_logical_not (const expression_logical_not &)
expression_logical_notoperator= (const expression_logical_not &)

Private Attributes

translatorxlat
expression::pointer operand

Detailed Description

The expression_logical_not class is used to represent and abstract logical NOT expression.

Definition at line 32 of file logical_not.h.


Constructor & Destructor Documentation

virtual expression_logical_not::~expression_logical_not (  )  [virtual]

The destructor.

expression_logical_not::expression_logical_not ( const expression::pointer operand,
translator cntxt 
)

The constructor.

expression_logical_not::expression_logical_not (  )  [private]

The default constructor. Do not use.

expression_logical_not::expression_logical_not ( const expression_logical_not  )  [private]

The copy constructor. Do not use.


Member Function Documentation

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

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

Implements expression.

bool expression_logical_not::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_not::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.

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

The pre_order_traversal method is called before the argument is traversed, by the traversal method.

Reimplemented in expression_logical_not_pretty.

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

The post_order_traversal method is called after the argument is traversed, by the traversal method.

Reimplemented in expression_logical_not_pretty.

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

The get_operand method may be used by derived classes to obtain the operand.

Definition at line 79 of file logical_not.h.

References operand.

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

Reimplemented in expression_logical_not_compile.

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

The assignment operator. Do not use.


Member Data Documentation

translator& expression_logical_not::xlat [private]

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

Definition at line 90 of file logical_not.h.

expression::pointer expression_logical_not::operand [private]

The operand instance variable is used to remember the operand of this logical NOT expression.

Definition at line 96 of file logical_not.h.

Referenced by get_operand().


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