BALL::Expression Class Reference
[Kernel Predicates]

#include <BALL/KERNEL/expression.h>

List of all members.

Public Types

Type Definitions

typedef void *(* CreationMethod )()

Public Member Functions

Constructors and Destructor

 Expression ()
 Expression (const Expression &expression)
 Expression (const String &expression_string)
virtual ~Expression ()
Predicates

bool hasPredicate (const String &name) const
bool operator== (const Expression &expression) const
Accessors

virtual bool operator() (const Atom &atom) const
ExpressionPredicategetPredicate (const String &name, const String &args="") const
void registerPredicate (const String &name, CreationMethod creation_method)
void setExpression (const String &expression)
const StringgetExpressionString () const
const ExpressionTreegetExpressionTree () const
const StringHashMap
< CreationMethod > & 
getCreationMethods () const
Assignment

Expressionoperator= (const Expression &expression)
virtual void clear ()

Protected Member Functions

ExpressionTreeconstructExpressionTree_ (const ExpressionParser::SyntaxTree &tree)
void registerStandardPredicates_ ()

Protected Attributes

StringHashMap< CreationMethodcreate_methods_
ExpressionTreeexpression_tree_
String expression_string_

Detailed Description

Expression class. This class provides a frontend to ExpressionTree.

Expressions may be built from the following modules:
AND & a conjunction
OR & a disjunction
predicate(argument) & a predicate class that is derived from {ExpressionPredicate) and provides operator () (const Atom& atom) const.
Additionally brackets can be used for grouping. At least one bracket pair must exist which encloses the argument of a predicate. Empty arguments are allowed.
See also:
ExpressionTree

Definition at line 36 of file expression.h.


Member Typedef Documentation

A creation method for predicates.

Definition at line 48 of file expression.h.


Constructor & Destructor Documentation

BALL::Expression::Expression (  ) 

Default Constructor.

BALL::Expression::Expression ( const Expression expression  ) 

Copy Constructor.

BALL::Expression::Expression ( const String expression_string  ) 

Construct an Expression with a string

Exceptions:
Exception::ParseError if a syntax error was encountered
virtual BALL::Expression::~Expression (  )  [virtual]

Destructor.


Member Function Documentation

virtual void BALL::Expression::clear (  )  [virtual]

Clear method

ExpressionTree* BALL::Expression::constructExpressionTree_ ( const ExpressionParser::SyntaxTree tree  )  [protected]
const StringHashMap<CreationMethod>& BALL::Expression::getCreationMethods (  )  const

Get the creation methods.

const String& BALL::Expression::getExpressionString (  )  const

Get the expression string.

const ExpressionTree* BALL::Expression::getExpressionTree (  )  const

Get the expression tree.

ExpressionPredicate* BALL::Expression::getPredicate ( const String name,
const String args = "" 
) const

Create a new predicate according to the name. If the predicate is not known, return 0.

Parameters:
name the name of the predicate
args the optional argument of the predicate
bool BALL::Expression::hasPredicate ( const String name  )  const
virtual bool BALL::Expression::operator() ( const Atom atom  )  const [virtual]

Evaluate the expression of atom

Parameters:
atom 
Expression& BALL::Expression::operator= ( const Expression expression  ) 

Assignment operator

bool BALL::Expression::operator== ( const Expression expression  )  const

Equality operator

void BALL::Expression::registerPredicate ( const String name,
CreationMethod  creation_method 
)

Register a new predicate class.

void BALL::Expression::registerStandardPredicates_ (  )  [protected]
void BALL::Expression::setExpression ( const String expression  ) 

Set the expression and build a tree for it.

Exceptions:
Exception::ParseError if a syntax error was encountered

Member Data Documentation

Definition at line 162 of file expression.h.

Definition at line 171 of file expression.h.

Definition at line 167 of file expression.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Generated by  doxygen 1.6.3