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) throw (Exception::ParseError)
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) throw (Exception::ParseError)
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) throw (Exception::ParseError)
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

Member Typedef Documentation

A creation method for predicates.


Constructor & Destructor Documentation

BALL::Expression::Expression (  ) 

Default Constructor.

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

Copy Constructor.

BALL::Expression::Expression ( const String expression_string  )  throw (Exception::ParseError)

Construct an Expression with a string

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  )  throw (Exception::ParseError) [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  )  throw (Exception::ParseError)

Set the expression and build a tree for it.


Member Data Documentation