expression_function_call Class Reference

#include <function_call.h>

Inheritance diagram for expression_function_call:

expression expression_function_call_chr expression_function_call_odd expression_function_call_pretty expression_function_call_sqr expression_function_call_time expression_function_call_user_defined List of all members.

Public Member Functions

virtual ~expression_function_call ()
 expression_function_call (expression_list *args)

Protected Member Functions

void traversal (int pprec)
void logical_traversal (int pprec, label::pointer &true_branch, label::pointer &false_branch, bool fall_through_preference)
int get_precedence () const
type::pointer get_type () const
bool is_lvalue () const
side_effect_t has_side_effect () const
virtual void pre_order_traversal (int pprec)
virtual void comma_order_traversal (int pprec, int argnum)
virtual void post_order_traversal (int pprec, int argnum)
size_t get_child_count () const
expression::pointer get_child (size_t n) const

Private Member Functions

 expression_function_call ()
 expression_function_call (const expression_function_call &)
expression_function_calloperator= (const expression_function_call &)

Private Attributes

expression_listchildren

Detailed Description

The expression_function_call class is used to represent an abstract function call expression node.

Definition at line 31 of file function_call.h.


Constructor & Destructor Documentation

virtual expression_function_call::~expression_function_call (  )  [virtual]

The destructor.

expression_function_call::expression_function_call ( expression_list args  ) 

The constructor.

Parameters:
args The arguments to the expression call. In the general case, this will include the function name as the first argument. However, not all usages need to abide by this convention.

expression_function_call::expression_function_call (  )  [private]

The default constructor.

expression_function_call::expression_function_call ( const expression_function_call  )  [private]

The copy constructor.


Member Function Documentation

void expression_function_call::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.

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

Reimplemented in expression_function_call_chr, expression_function_call_odd, and expression_function_call_sqr.

int expression_function_call::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.

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

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

Implements expression.

Reimplemented in expression_function_call_chr, expression_function_call_odd, expression_function_call_sqr, expression_function_call_time, and expression_function_call_user_defined.

bool expression_function_call::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_function_call::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.

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

The pre_order_traversal method is called by the traversal method just before any of the child expressions are traversed.

Parameters:
pprec parent expression precedence

Reimplemented in expression_function_call_pretty.

virtual void expression_function_call::comma_order_traversal ( int  pprec,
int  argnum 
) [protected, virtual]

The comma_order_traversal method is called by the traversal method just after each of the child expressions has been traversed, except the last one.

Parameters:
pprec parent expression precedence
argnum the number of the argument (0 based, 0 is the function name, usually)

Reimplemented in expression_function_call_pretty.

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

The post_order_traversal method is called by the traversal method just after the last child expression has been traversed.

Parameters:
pprec parent expression precedence
argnum the number of the argument (can be zero if only one child) usually)

Reimplemented in expression_function_call_sqr, expression_function_call_time, expression_function_call_user_defined, and expression_function_call_pretty.

size_t expression_function_call::get_child_count (  )  const [inline, protected]

Definition at line 104 of file function_call.h.

References children, and expression_list::size().

expression::pointer expression_function_call::get_child ( size_t  n  )  const [inline, protected]

Definition at line 107 of file function_call.h.

References children, and expression_list::get().

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

The assignment operator.


Member Data Documentation

expression_list* expression_function_call::children [private]

The children instance variable is used to remember the child expressions of this function call. Child [0] is the function name, usually.

Definition at line 119 of file function_call.h.

Referenced by get_child(), and get_child_count().


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