#include <smartsParser.h>
Accessors | |
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 | |
State | state |
static member for the parser itself | |
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 | |
vector< std::set< const Atom * > > * | sssr_ |
the sssr | |
SmartsParser * | current_parser_ |
current instance |
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 NOOP is just provided for convenience. |
|
Parse a SMARTS string.
|