From: Egon W. <eg...@us...> - 2003-04-15 14:23:04
|
Update of /cvsroot/cdk/cdk/src/org/openscience/cdk/smiles In directory sc8-pr-cvs1:/tmp/cvs-serv3874/src/org/openscience/cdk/smiles Modified Files: SmilesParser.java Log Message: Attempt to parse SMILES of aggregate of molecules Index: SmilesParser.java =================================================================== RCS file: /cvsroot/cdk/cdk/src/org/openscience/cdk/smiles/SmilesParser.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- SmilesParser.java 15 Apr 2003 11:16:16 -0000 1.17 +++ SmilesParser.java 15 Apr 2003 14:22:59 -0000 1.18 @@ -79,21 +79,21 @@ Molecule molecule = null; String currentSymbol = null; - - /** - * Parses a SMILES string and returns a Molecule object - * - *@param smiles A SMILES string - *@return A molecule representing the constitution - * given in the SMILES string - *@exception InvalidSmilesException Description of the Exception - */ - public Molecule parseSmiles(String smiles) throws InvalidSmilesException - { + /** + * Parses a SMILES string and returns a Molecule object. The SMILES string + * may not contain any '.' characters. + * + * @param smiles A SMILES string + * @return A Molecule representing the constitution + * given in the SMILES string + * @exception InvalidSmilesException Description of the Exception + */ + public Molecule parseSmiles(String smiles) throws InvalidSmilesException { Bond bond = null; boolean aromaticAtom = false; nodeCounter = 0; bondStatus = 0; + boolean bondExists = true; thisRing = -1; currentSymbol = null; molecule = new Molecule(); @@ -157,6 +157,7 @@ lastNode = atom; nodeCounter++; position = position + currentSymbol.length(); + bondExists = true; } else if (mychar == '=') { bondStatus = CDKConstants.BONDORDER_DOUBLE; @@ -225,6 +226,9 @@ lastNode = atom; nodeCounter++; position = position + currentSymbol.length() + 2; // plus two for [ and ] + } else if (mychar == '.'){ + bondExists = false; + position++; } else if (mychar == '/' || mychar == '\\') { logger.warn("Ignoring stereo information for double bond"); position++; |