BorgIv::ExpData Class Reference

provides the 'behind-the-expr' logic of expressions More...

#include <expr.h>

Inherits ReferenceCount.

Inherited by BorgIv::StringData, and BorgIv::TokenData.

Collaboration diagram for BorgIv::ExpData:

Collaboration graph

List of all members.

Protected Member Functions

virtual ExpDatanew_copy () const =0
virtual Exp operator[] (Key *key) const =0
ExpDatacopy_if_necessary ()


class Exp

Detailed Description

provides the 'behind-the-expr' logic of expressions

The content of an expression can be anything as long as it has the proper operations to index is present. The expdata must always be treatable as a constant when residing in an Exp. ExpContent objects are automatically reference counted, which should always work since we should not make circular data structures at all.

Definition at line 94 of file expr.h.

Member Function Documentation

ExpData* BorgIv::ExpData::copy_if_necessary (  )  [inline, protected]

if the reference count == 0, then this object will be recreated with the copy operator, otherwise this will be returned;

Definition at line 108 of file expr.h.

Here is the call graph for this function:

virtual ExpData* BorgIv::ExpData::new_copy (  )  const [protected, pure virtual]

must return a perfect copy of this. Is used by copy_if_necessary when an object is moved from scratch space to more permanent space

Implemented in BorgIv::StringData, and BorgIv::TokenData.

Here is the caller graph for this function:

virtual Exp BorgIv::ExpData::operator[] ( Key key  )  const [protected, pure virtual]

Implemented in BorgIv::StringData, and BorgIv::TokenData.

Friends And Related Function Documentation

friend class Exp [friend]

Definition at line 97 of file expr.h.

The documentation for this class was generated from the following file:

Generated on Sat Feb 20 19:04:27 2010 for Data Objects by  doxygen 1.5.9