#include <smartsParser.h>
Classes |
|
class | SPAtom |
Smarts Parser Atom
class. More... |
|
class | SPBond |
Bond
representation of the smarts parser. More... |
|
class | SPEdge |
Edge representation of the smarts
parser graph. More... |
|
class | SPNode |
Representation of a node in the
smarts parser graph. More... |
|
struct | State |
Parser state (used by the parser
itself). More... |
|
Public Types |
|
enum | ZEIsomerType { ANY_ZE = 1, NONE, Z, E } |
enum |
ChiralClass { CHIRAL_CLASS_UNSPECIFIED = 1, NONCHIRAL, NONCHIRAL_OR_UNSPECIFIED, CW_DEFAULT, CW_DEFAULT_OR_UNSPECIFIED, CCW_DEFAULT, CCW_DEFAULT_OR_UNSPECIFIED, CW_TH, CW_TH_OR_UNSPECIFIED, CCW_TH, CCW_TH_OR_UNSPECIFIED, CW_AL, CW_AL_OR_UNSPECIFIED, CCW_AL, CCW_AL_OR_UNSPECIFIED, CW_SP, CW_SP_OR_UNSPECIFIED, CCW_SP, CCW_SP_OR_UNSPECIFIED, CW_TB, CW_TB_OR_UNSPECIFIED, CCW_TB, CCW_TB_OR_UNSPECIFIED, CW_OH, CW_OH_OR_UNSPECIFIED, CCW_OH, CCW_OH_OR_UNSPECIFIED } |
chiral class definitions CW = clock
wise, CCW = counter clock wise |
|
enum | LogicalOperator { AND, OR, AND_LOW, NOOP } |
The logical operator supported by
SMARTS-pattern '&' -> and ',' -> or ';' -> low precedence and . More... |
|
Public Member Functions |
|
Constructors and Destructors
|
|
SmartsParser () | |
Default constructor. |
|
SmartsParser (const SmartsParser &parser) | |
Copy constructor. |
|
virtual | ~SmartsParser () |
Destructor. |
|
Parsing
|
|
void | parse (const String &s) throw (Exception::ParseError) |
Parse a SMARTS string. |
|
Protected Member Functions |
|
void | dumpTreeRecursive_ (SPNode *node, Size depth) |
dump method for the tree |
|
void | dumpTreeRecursive_ (SPEdge *edge, Size depth) |
dump method for the tree |
|
Protected Attributes |
|
bool | needs_SSSR_ |
sssr needed flag |
|
bool | recursive_ |
recursive flag |
|
bool | component_grouping_ |
component level grouping
flag |
|
std::map< Size, std::vector < SPNode * > > |
ring_connections_ |
the ring connection sorted by index
of the SMARTS pattern |
|
std::set< SPEdge * > | edges_ |
the edges |
|
std::set< SPNode * > | nodes_ |
the nodes |
|
std::set< SPEdge * > | rec_edges_ |
the recursive edges |
|
SPNode * | root_ |
the root node of the tree |
|
int | component_no_ |
the actual component
number |
|
Static Protected Attributes |
|
static vector< std::set< const Atom * > > * |
sssr_ |
the sssr |
|
static SmartsParser * | current_parser_ |
current instance |
|
Accessors |
|
static State | state |
static member for the parser
itself |
|
SPAtom * | createAtom (const String &symbol, bool in_bracket=false) |
creates a new atom of
symbol |
|
void | setRoot (SPNode *root) |
sets the root SPNode
of the tree |
|
SPNode * | getRoot () const |
returns the root SPNode
of the tree |
|
void | dumpTree () |
dumps the tree to cerr |
|
void | clear () |
clear the tree |
|
void | addRingConnection (SPNode *spnode, Size index) |
adds a ring connection, SPNode
with an index used in the SMARTS pattern |
|
std::map< Size, std::vector < SPNode * > > |
getRingConnections () const |
returns the ring connections sorted
by index from SMARTS pattern |
|
void | setSSSR (const std::vector< std::vector< Atom * > > &sssr) |
sets the SSSR |
|
void | setNeedsSSSR (bool needs_sssr) |
sets the sssr needed flag |
|
bool | getNeedsSSSR () const |
returns true if the SMARTS pattern
contains ring related parts |
|
void | setRecursive (bool recursive) |
sets the recursive flag |
|
bool | isRecursive () const |
returns true if the tree represents
a recursive SMARTS pattern |
|
void | setComponentGrouping (bool component_grouping) |
sets the component level
flag |
|
bool | hasComponentGrouping () const |
returns true if the component level
grouping was enabled |
|
const std::set< SPNode * > & | getNodes () const |
returns the eodes stored in the
tree |
|
const std::set< SPEdge * > & | getEdges () const |
returns the edges stored in the
tree |
|
void | addEdge (SPEdge *edge) |
adds an edge to the tree |
|
void | addNode (SPNode *node) |
adds a node to the tree |
|
bool | hasRecursiveEdge (SPEdge *edge) const |
returns true if the tree has the
given recursive edge |
|
void | addRecursiveEdge (SPEdge *edge) |
adds a recursive edge to the
tree |
|
void | setNextComponentNumberToSubTree (SPNode *spnode) |
gets the next component no and
assigns it to the subtree |
This class implements the parser for SMARTS patterns. The SMARTS string is converted into a tree, which is used for matching it to molecules. The tree has also some additional features, i.e. additional edges which allows also for graph features (kind of cyclic structure).
The logical operator supported by SMARTS-pattern
'&' -> and
',' -> or
';' -> low precedence and
.
NOOP is just provided for convenience.