parsmart.cpp File Reference

Implementation of Daylight SMARTS parser. More...

#include <openbabel/babelconfig.h>
#include <ctype.h>
#include <iomanip>
#include <openbabel/mol.h>
#include <openbabel/parsmart.h>
#include <openbabel/stereo/stereo.h>
#include <openbabel/stereo/tetrahedral.h>

Namespaces

namespace  OpenBabel

Defines

#define ATOMPOOL   1
#define BONDPOOL   1
#define AE_ANDHI   1
#define AE_ANDLO   2
#define AE_OR   3
#define AE_RECUR   4
#define AE_NOT   5
#define AE_TRUE   6
#define AE_FALSE   7
#define AE_AROMATIC   8
#define AE_ALIPHATIC   9
#define AE_CYCLIC   10
#define AE_ACYCLIC   11
#define AE_MASS   12
#define AE_ELEM   13
#define AE_AROMELEM   14
#define AE_ALIPHELEM   15
#define AE_HCOUNT   16
#define AE_CHARGE   17
#define AE_CONNECT   18
#define AE_DEGREE   19
#define AE_IMPLICIT   20
#define AE_RINGS   21
#define AE_SIZE   22
#define AE_VALENCE   23
#define AE_CHIRAL   24
#define AE_HYB   25
#define AE_RINGCONNECT   26
#define AL_CLOCKWISE   1
#define AL_ANTICLOCKWISE   2
#define AL_UNSPECIFIED   0
#define BE_ANDHI   1
#define BE_ANDLO   2
#define BE_OR   3
#define BE_NOT   4
#define BE_ANY   5
#define BE_DEFAULT   6
#define BE_SINGLE   7
#define BE_DOUBLE   8
#define BE_TRIPLE   9
#define BE_QUAD   10
#define BE_AROM   11
#define BE_RING   12
#define BE_UP   13
#define BE_DOWN   14
#define BE_UPUNSPEC   15
#define BE_DOWNUNSPEC   16

Functions

static int GetVectorBinding ()
static int CreateAtom (Pattern *, AtomExpr *, int, int vb=0)
static void FatalAllocationError (const char *ptr)
static void FreePattern (Pattern *)
static Pattern * CopyPattern (Pattern *)
static AtomExpr * CopyAtomExpr (AtomExpr *expr)
static void FreeAtomExpr (AtomExpr *expr)
static AtomExpr * BuildAtomPred (int type)
static AtomExpr * BuildAtomLeaf (int type, int val)
static AtomExpr * BuildAtomNot (AtomExpr *expr)
static AtomExpr * BuildAtomBin (int op, AtomExpr *lft, AtomExpr *rgt)
static AtomExpr * BuildAtomRecurs (Pattern *pat)
static AtomExpr * GenerateElement (int elem)
static AtomExpr * GenerateAromElem (int elem, int flag)
static int IsInvalidAtom (AtomExpr *expr)
static BondExpr * CopyBondExpr (BondExpr *expr)
static bool EquivalentBondExpr (BondExpr *expr1, BondExpr *expr2)
static void FreeBondExpr (BondExpr *expr)
static BondExpr * BuildBondLeaf (int type)
static BondExpr * BuildBondNot (BondExpr *expr)
static BondExpr * BuildBondBin (int op, BondExpr *lft, BondExpr *rgt)
static BondExpr * GenerateDefaultBond (void)
static Pattern * AllocPattern (void)
static int CreateBond (Pattern *pat, BondExpr *expr, int src, int dst)
static void MarkGrowBonds (Pattern *pat)
static int GetChiralFlag (AtomExpr *expr)
static AtomExpr * NotAtomExpr (AtomExpr *expr)
static int GetExprOrder (BondExpr *expr)
static int GetExprCharge (AtomExpr *expr)
static int GetExprAtomicNum (AtomExpr *expr)
void SmartsLexReplace (std::string &s, std::vector< std::pair< std::string, std::string > > &vlex)

Variables

const int SmartsImplicitRef = -9999

Detailed Description

Implementation of Daylight SMARTS parser.


Define Documentation

#define ATOMPOOL   1

Referenced by OpenBabel::CreateAtom().

#define BONDPOOL   1

Referenced by OpenBabel::CreateBond().

#define AE_FALSE   7
#define AE_CONNECT   18
#define AE_IMPLICIT   20
#define AE_VALENCE   23
#define AE_RINGCONNECT   26
#define AL_UNSPECIFIED   0
#define BE_DEFAULT   6
#define BE_RING   12
#define BE_UP   13
#define BE_DOWN   14
#define BE_UPUNSPEC   15
#define BE_DOWNUNSPEC   16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines