Loading...
Searching...
No Matches
BALL::ExpressionTree Class Reference
Kernel Classes » Miscellaneous

`#include <BALL/KERNEL/expressionTree.h>`

## Public Types

Type Definitions
enum | Type { INVALID = 0 , LEAF , OR , AND }

## Public Member Functions

Constructors and Destructor
| ExpressionTree ()
| ExpressionTree (const ExpressionTree &tree)
| ExpressionTree (ExpressionPredicate *predicate, bool negate=false)
| ExpressionTree (Type type, list< const ExpressionTree * > children, bool negate=false)
virtual | ~ExpressionTree ()
Predicates
virtual bool | operator() (const Atom &atom) const
bool | operator== (const ExpressionTree &tree) const
bool | operator!= (const ExpressionTree &tree) const
Accessors
void | setType (Type type)
Type | getType () const
void | setNegate (bool negate)
bool | getNegate () const
void | setPredicate (ExpressionPredicate *predicate)
ExpressionPredicate * | getPredicate () const
void | appendChild (const ExpressionTree *child)
const list< const ExpressionTree * > & | getChildren () const
Assignment
ExpressionTree & | operator= (const ExpressionTree &tree)
virtual void | clear ()

## Debugging

Type | type_
bool | negate_
ExpressionPredicate * | predicate_
list< const ExpressionTree * > | children_
void | dump (std::ostream &is=std::cout, Size depth=0) const
bool | compareChildren_ (const ExpressionTree &tree) const

## Detailed Description

Expression tree class. Represents the logical tree of an Expression. This is the backend of Expression.

See also
  Expression

Definition at line 25 of file expressionTree.h.

## Member Enumeration Documentation

## Type

enum BALL::ExpressionTree::Type

The type of an expression node in the tree. The type determines how a node is to be interpreted.

Enumerator
INVALID | The node is invalid.
LEAF | The node is a leaf.
OR | The node is a logical OR conjunction.
AND | The node is a logical AND conjunction.

Definition at line 38 of file expressionTree.h.

## Constructor & Destructor Documentation

## ExpressionTree() [1/4]

BALL::ExpressionTree::ExpressionTree | ( |  | ) |

Default constructor. Create an empty expression node. The node's type is set to INVALID, negate_ is set to false, the internal predicate is set to 0, and the list of children is empty.

## ExpressionTree() [2/4]

BALL::ExpressionTree::ExpressionTree | ( | const ExpressionTree & | tree | ) |

Copy constructor. Note that this copy constructor does not copy predicates but only stores pointers to them.

## ExpressionTree() [3/4]

BALL::ExpressionTree::ExpressionTree | ( | ExpressionPredicate * | predicate,
|  | bool | negate = false )

Detailed constructor. Create an expression node representing a leaf, i.e., a predicate.

Parameters

  predicate | the node's predicate
  negate | set to true if the node's predicate should be negated

## ExpressionTree() [4/4]

BALL::ExpressionTree::ExpressionTree | ( | Type | type,
|  | list< const ExpressionTree * > | children,
|  | bool | negate = false )

## ~ExpressionTree()

virtual BALL::ExpressionTree::~ExpressionTree | ( |  | ) |

virtual

Destructor

## Member Function Documentation

## appendChild()

void BALL::ExpressionTree::appendChild | ( | const ExpressionTree * | child | ) |

Append a child to the tree.

## clear()

virtual void BALL::ExpressionTree::clear | ( |  | ) |

virtual

Clear method

## compareChildren_()

bool BALL::ExpressionTree::compareChildren_ | ( | const ExpressionTree & | tree | ) | const

protected

## dump()

void BALL::ExpressionTree::dump | ( | std::ostream & | is = std::cout,
|  | Size | depth = 0 ) const

## getChildren()

const list< const ExpressionTree * > & BALL::ExpressionTree::getChildren | ( |  | ) | const

Get the list of children.

## getNegate()

bool BALL::ExpressionTree::getNegate | ( |  | ) | const

Get the expression node's negation mode.

## getPredicate()

ExpressionPredicate * BALL::ExpressionTree::getPredicate | ( |  | ) | const

Get the predicate.

## getType()

Type BALL::ExpressionTree::getType | ( |  | ) | const

Get the expression node's type

## operator!=()

bool BALL::ExpressionTree::operator!= | ( | const ExpressionTree & | tree | ) | const

Inequality operator

## operator()()

virtual bool BALL::ExpressionTree::operator() | ( | const Atom & | atom | ) | const

virtual

Evaluate the (sub)expression.

## operator=()

ExpressionTree & BALL::ExpressionTree::operator= | ( | const ExpressionTree & | tree | ) |

Asignment operator

## operator==()

bool BALL::ExpressionTree::operator== | ( | const ExpressionTree & | tree | ) | const

Equality operator

## setNegate()

void BALL::ExpressionTree::setNegate | ( | bool | negate | ) |

Set the expression node's negation mode.

## setPredicate()

void BALL::ExpressionTree::setPredicate | ( | ExpressionPredicate * | predicate | ) |

Set the predicate.

## setType()

void BALL::ExpressionTree::setType | ( | Type | type | ) |

Set the expression node's type.

## Member Data Documentation

## children_

list<const ExpressionTree*> BALL::ExpressionTree::children_

protected

Definition at line 180 of file expressionTree.h.

## negate_

bool BALL::ExpressionTree::negate_

protected

Definition at line 172 of file expressionTree.h.

## predicate_

ExpressionPredicate* BALL::ExpressionTree::predicate_

protected

Definition at line 176 of file expressionTree.h.

## type_

Type BALL::ExpressionTree::type_

protected

Definition at line 168 of file expressionTree.h.