BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members
BALL::Expression Class Reference

#include <BALL/KERNEL/expression.h>

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

The class Expression provides a frontend to ExpressionTree.

Expressions may be built from the following modules:
  • AND a conjunction
  • OR a disjunction
  • ! a negation
  • 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.
Example:
!residueID(12) AND (element(N) OR element(C))
BALL offers various predefined ExpressionPredicates. These are:
SyntaxDescription
true() always true
false() always false
SMARTS(string) use a SMARTS expression
selected() true for already selected atoms
name(string) the name of an atom
type(string) type name of an atom
element(char) element (abbreviated by its symbol)
residue(string) name of a residue
residueID(string) PDB ID of the residue (usually a number)
protein(string) name of protein, the atom is contained in
secondaryStruct(string) name of the secondary structure, the atom is contained in
chain(string) name of the chain, the atom is contained in
nucleotide(string) name of the nucleotide the atom is contained in
solvent() the atom is a solvent atom added by BALL
backbone() backbone atoms
inRing() part of a ring
doubleBonds() atoms with double bonds
tripleBonds() atoms with triple bonds
numberOfBonds(int) atoms with a given number of bonds
aromaticBonds() atoms with aromatic bonds
connectedTo(char) atoms which are connected to an atom (see ConnectedToPredicate)
charge([op][number]) select by charge, Possible operators are '<'  '<='  '='  '>='  '>'
spHybridized()  
sp2Hybridized()  
sp3Hybridized()  
charge(float) atoms with given charge
isAxial()  
is4C1()  
See Also
ExpressionTree

Definition at line 79 of file expression.h.

Member Typedef Documentation

typedef void*(* BALL::Expression::CreationMethod)()

A creation method for predicates.

Definition at line 91 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::ParseErrorif 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
namethe name of the predicate
argsthe 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::ParseErrorif a syntax error was encountered

Member Data Documentation

StringHashMap<CreationMethod> BALL::Expression::create_methods_
protected

Definition at line 205 of file expression.h.

String BALL::Expression::expression_string_
protected

Definition at line 214 of file expression.h.

ExpressionTree* BALL::Expression::expression_tree_
protected

Definition at line 210 of file expression.h.