Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

xst_pair Struct Template Reference

#include <xst_pair.h>

Inheritance diagram for xst_pair:

Inheritance graph
[legend]
Collaboration diagram for xst_pair:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<typename LhsT, typename RhsT>
struct cttl_impl::xst_pair< LhsT, RhsT >

Implements binary connector for lambda compounds.

LhsT
Template parameter specifying type of left subtree of lambda compound.
RhsT
Template parameter specifying type of right subtree of lambda compound.
Warning:
This is internal CTTL header file and should not be included by user programs.

Definition at line 58 of file xst_pair.h.

Public Types

enum  { const_value_ = LhsT::const_value_, depth_ = LhsT::depth_ + 1, capacity_ = LhsT::capacity_ + RhsT::capacity_, primitive_id_ = LhsT::primitive_id_ }
typedef LhsT::dereferenced_value_T dereferenced_value_T
 Defines type of dereferenced primitive encapsulated by lambda compound nodes.
typedef LhsT left_T
 Defines type of left subtree of lambda compound.
typedef xst_pair< LhsT, RhsT > reference_T
 Defines reference type for this lambda compound.
typedef RhsT right_T
 Defines type of right subtree of lambda compound.
typedef LhsT::value_T value_T
 Defines type of primitive encapsulated by lambda compound nodes.

Public Member Functions

template<typename SubscriptLambdaT>
dereferenced_value_Tdereferenced_value (xst_lambda_wrap< SubscriptLambdaT > subscript_)
 Dereferenced value of the root lambda compound node.
left_T const & left_lambda () const
 Direct constant access to left-hand-side subtree of lambda compound.
left_Tleft_lambda ()
 Direct mutable access to left-hand-side subtree of lambda compound.
reference_T make_reference () const
 Manufactures copy of lambda compound.
template<typename SubscriptLeftLambdaLhsT, int LocationT>
void pop (xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > > subscript_)
 Pop data at specified lambda compound location.
template<int LocationT>
void pop (xst_lambda_wrap< xst_const_scalar< LocationT > >)
 Pop data at specified lambda compound location.
template<typename SubscriptLeftLambdaLhsT, int LocationT, typename InputValueT>
void push (xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > > subscript_, InputValueT const &data_)
 Internal algorithm to deposit data into lambda compound node.
template<int LocationT, typename InputValueT>
void push (xst_lambda_wrap< xst_const_scalar< LocationT > >, InputValueT const &data_)
 Deposit data at specified lambda compound location.
right_T const & right_lambda () const
 Direct constant access to right-hand-side subtree of lambda compound.
right_Tright_lambda ()
 Direct mutable access to right-hand-side subtree of lambda compound.
template<typename SubscriptLeftLambdaLhsT, int LocationT>
size_t size (xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > > subscript_) const
 Get size of stack at specified lambda compound location.
template<int LocationT>
size_t size (xst_lambda_wrap< xst_const_scalar< LocationT > >) const
 Get size of stack at specified lambda compound location.
template<typename SubscriptLeftLambdaLhsT, int LocationT>
std::stack< value_T > const * stack_ptr (xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > > subscript_) const
 Get constant stack pointer at specified lambda compound location.
template<int LocationT>
std::stack< value_T > const * stack_ptr (xst_lambda_wrap< xst_const_scalar< LocationT > >) const
 Get constant stack pointer at specified lambda compound location.
template<typename SubscriptLeftLambdaLhsT, int LocationT>
std::stack< value_T > * stack_ptr (xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > > subscript_)
 Get stack pointer at specified lambda compound location.
template<int LocationT>
std::stack< value_T > * stack_ptr (xst_lambda_wrap< xst_const_scalar< LocationT > >)
 Get stack pointer at specified lambda compound location.
template<typename FunctorT>
void subscript_bottom_up (FunctorT &functor_) const
 Algorithm for bottom-up traversal of subscript compounds.
template<typename FunctorT>
void subscript_top_down (FunctorT &functor_) const
 Algorithm for top-down traversal of subscript compounds.
template<typename SubscriptLeftLambdaLhsT, int LocationT>
value_Ttop (xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > > subscript_)
 Mutable access to data at specified lambda compound location.
template<int LocationT>
value_Ttop (xst_lambda_wrap< xst_const_scalar< LocationT > >)
 Mutable access to data at specified lambda compound location.
template<typename SubscriptLeftLambdaLhsT, int LocationT>
value_T const & top (xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > > subscript_) const
 Constant access to data at specified lambda compound location.
template<int LocationT>
value_T const & top (xst_lambda_wrap< xst_const_scalar< LocationT > >) const
 Constant access to data at specified lambda compound location.
template<typename FunctorT>
void traverse_bottom_up (FunctorT &functor_) const
 Algorithm for bottom-up traversal of lambda compound nodes with constant access.
template<typename FunctorT>
void traverse_bottom_up (FunctorT &functor_)
 Algorithm for bottom-up traversal of lambda compound nodes with mutable access.
template<typename FunctorT>
void traverse_top_down (FunctorT &functor_) const
 Algorithm for top-down traversal of lambda compound nodes with constant access.
template<typename FunctorT>
void traverse_top_down (FunctorT &functor_)
 Algorithm for top-down traversal of lambda compound nodes with mutable access.
template<typename SubscriptLeftLambdaLhsT, int LocationT>
void update (xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > > program_)
 Update data at specified lambda compound location.
 xst_pair (xst_pair< LhsT, RhsT > const &other_)
 Copy constructor.
 xst_pair ()
 Default constructor.
 xst_pair (LhsT const &lhs_expr_, RhsT const &rhs_expr_)
 Object constructor.


Member Typedef Documentation

typedef LhsT::dereferenced_value_T dereferenced_value_T
 

Defines type of dereferenced primitive encapsulated by lambda compound nodes.

Definition at line 87 of file xst_pair.h.

typedef LhsT left_T
 

Defines type of left subtree of lambda compound.

Definition at line 90 of file xst_pair.h.

typedef xst_pair< LhsT, RhsT > reference_T
 

Defines reference type for this lambda compound.

Definition at line 96 of file xst_pair.h.

Referenced by xst_pair::make_reference().

typedef RhsT right_T
 

Defines type of right subtree of lambda compound.

Definition at line 93 of file xst_pair.h.

typedef LhsT::value_T value_T
 

Defines type of primitive encapsulated by lambda compound nodes.

Definition at line 84 of file xst_pair.h.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
const_value_  Constant value required to compile algorithms relying on subscript-type access.
depth_  Subtree node count constant.
capacity_  Cumulative capacity of lambda compound.
primitive_id_  Unique identifier of lambda primitive, taken from root element.

Definition at line 69 of file xst_pair.h.


Constructor & Destructor Documentation

xst_pair LhsT const &  lhs_expr_,
RhsT const &  rhs_expr_
[inline]
 

Object constructor.

Definition at line 99 of file xst_pair.h.

xst_pair  )  [inline]
 

Default constructor.

Definition at line 105 of file xst_pair.h.

xst_pair xst_pair< LhsT, RhsT > const &  other_  )  [inline]
 

Copy constructor.

Definition at line 111 of file xst_pair.h.


Member Function Documentation

dereferenced_value_T& dereferenced_value xst_lambda_wrap< SubscriptLambdaT >  subscript_  )  [inline]
 

Dereferenced value of the root lambda compound node.

Definition at line 124 of file xst_pair.h.

left_T const& left_lambda  )  const [inline]
 

Direct constant access to left-hand-side subtree of lambda compound.

Definition at line 138 of file xst_pair.h.

left_T& left_lambda  )  [inline]
 

Direct mutable access to left-hand-side subtree of lambda compound.

Definition at line 132 of file xst_pair.h.

reference_T make_reference  )  const [inline]
 

Manufactures copy of lambda compound.

Definition at line 117 of file xst_pair.h.

References xst_pair::reference_T.

void pop xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > >  subscript_  )  [inline]
 

Pop data at specified lambda compound location.

Definition at line 284 of file xst_pair.h.

void pop xst_lambda_wrap< xst_const_scalar< LocationT > >   )  [inline]
 

Pop data at specified lambda compound location.

Definition at line 270 of file xst_pair.h.

void push xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > >  subscript_,
InputValueT const &  data_
[inline]
 

Internal algorithm to deposit data into lambda compound node.

Definition at line 248 of file xst_pair.h.

void push xst_lambda_wrap< xst_const_scalar< LocationT > >  ,
InputValueT const &  data_
[inline]
 

Deposit data at specified lambda compound location.

LocationT
Template parameter specifying data location: 0, 1, 2, 3, etc.
InputValueT
Template parameter specifying type of data.
Parameters:
data_ reference to the data.

Definition at line 233 of file xst_pair.h.

right_T const& right_lambda  )  const [inline]
 

Direct constant access to right-hand-side subtree of lambda compound.

Definition at line 150 of file xst_pair.h.

right_T& right_lambda  )  [inline]
 

Direct mutable access to right-hand-side subtree of lambda compound.

Definition at line 144 of file xst_pair.h.

size_t size xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > >  subscript_  )  const [inline]
 

Get size of stack at specified lambda compound location.

Definition at line 378 of file xst_pair.h.

size_t size xst_lambda_wrap< xst_const_scalar< LocationT > >   )  const [inline]
 

Get size of stack at specified lambda compound location.

Definition at line 364 of file xst_pair.h.

std::stack< value_T > const* stack_ptr xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > >  subscript_  )  const [inline]
 

Get constant stack pointer at specified lambda compound location.

Definition at line 450 of file xst_pair.h.

std::stack< value_T > const* stack_ptr xst_lambda_wrap< xst_const_scalar< LocationT > >   )  const [inline]
 

Get constant stack pointer at specified lambda compound location.

Definition at line 436 of file xst_pair.h.

std::stack< value_T >* stack_ptr xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > >  subscript_  )  [inline]
 

Get stack pointer at specified lambda compound location.

Definition at line 414 of file xst_pair.h.

std::stack< value_T >* stack_ptr xst_lambda_wrap< xst_const_scalar< LocationT > >   )  [inline]
 

Get stack pointer at specified lambda compound location.

Definition at line 400 of file xst_pair.h.

void subscript_bottom_up FunctorT &  functor_  )  const [inline]
 

Algorithm for bottom-up traversal of subscript compounds.

Definition at line 206 of file xst_pair.h.

void subscript_top_down FunctorT &  functor_  )  const [inline]
 

Algorithm for top-down traversal of subscript compounds.

Definition at line 193 of file xst_pair.h.

value_T& top xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > >  subscript_  )  [inline]
 

Mutable access to data at specified lambda compound location.

Definition at line 342 of file xst_pair.h.

value_T& top xst_lambda_wrap< xst_const_scalar< LocationT > >   )  [inline]
 

Mutable access to data at specified lambda compound location.

Definition at line 332 of file xst_pair.h.

value_T const& top xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > >  subscript_  )  const [inline]
 

Constant access to data at specified lambda compound location.

Definition at line 313 of file xst_pair.h.

value_T const& top xst_lambda_wrap< xst_const_scalar< LocationT > >   )  const [inline]
 

Constant access to data at specified lambda compound location.

Definition at line 303 of file xst_pair.h.

void traverse_bottom_up FunctorT &  functor_  )  const [inline]
 

Algorithm for bottom-up traversal of lambda compound nodes with constant access.

Definition at line 177 of file xst_pair.h.

void traverse_bottom_up FunctorT &  functor_  )  [inline]
 

Algorithm for bottom-up traversal of lambda compound nodes with mutable access.

Definition at line 161 of file xst_pair.h.

void traverse_top_down FunctorT &  functor_  )  const [inline]
 

Algorithm for top-down traversal of lambda compound nodes with constant access.

Definition at line 185 of file xst_pair.h.

void traverse_top_down FunctorT &  functor_  )  [inline]
 

Algorithm for top-down traversal of lambda compound nodes with mutable access.

Definition at line 169 of file xst_pair.h.

void update xst_lambda_wrap< xst_pair< SubscriptLeftLambdaLhsT, xst_lambda_wrap< xst_const_scalar< LocationT > > > >  program_  )  [inline]
 

Update data at specified lambda compound location.

Definition at line 473 of file xst_pair.h.


The documentation for this struct was generated from the following file:
Generated on Thu Nov 2 17:49:05 2006 for CTTL Lambda Expression by  doxygen 1.3.9.1