5 #ifndef BALL_STRUCTURE_SMARTES_PARSER_H
6 #define BALL_STRUCTURE_SMARTES_PARSER_H
50 CHIRAL_CLASS_UNSPECIFIED = 1,
133 SPBond(SPBondOrder bond_order);
152 void setBondOrder(SPBondOrder bond_order);
161 void setNot(
bool is_not) { not_ = is_not; }
164 bool equals(
const Bond* bond)
const;
246 void operator = (
const Property& rhs);
334 void setProperty(
Property property);
337 void addPropertiesFromSPAtom(
SPAtom* sp_atom);
349 Size countProperties()
const;
352 Size getDefaultValence(
const Atom* atom)
const;
355 Size countRealValences(
const Atom* atom)
const;
358 Size getNumberOfImplicitHydrogens(
const Atom* atom)
const;
365 bool equals(
const Atom* atom)
const;
433 bool isNot()
const {
return is_not_; }
436 void setNot(
bool is_not) { is_not_ = is_not; }
534 void setRecursive(
bool recursive);
564 void setNot(
bool is_not) { is_not_ = is_not; }
651 void parse(
const String& s)
658 SPAtom* createAtom(
const String& symbol,
bool in_bracket =
false);
673 void addRingConnection(SPNode* spnode,
Size index);
676 std::map<Size, std::vector<SPNode*> > getRingConnections()
const;
679 void setSSSR(
const std::vector<std::vector<Atom*> >& sssr);
711 const std::set<SPNode*>&
getNodes()
const {
return nodes_; }
714 const std::set<SPEdge*>&
getEdges()
const {
return edges_; }
729 void setNextComponentNumberToSubTree(SPNode* spnode);
744 static vector<std::set<const Atom*> >*
sssr_;
747 void dumpTreeRecursive_(
SPNode* node,
Size depth);
750 void dumpTreeRecursive_(
SPEdge* edge,
Size depth);
776 #endif // BALL_STRUCTURE_SMARTS_PARSER_H