On Wed, Sep 18, 2013 at 03:41:34PM +0100, Peter Keller wrote:

> I hope that this isn't quite what you meant....  There are already
> mutually-incompatible CIF dialects out there that have been created
> by developers coding to their own understanding and interpretations
> of the CIF/STAR format. I am sure that you would not want to be the
> creator of yet another one :-) Correct tokenising is a necessary
> (but not sufficient) condition for preventing the problem getting
> worse.

This reminded me that I was looking into CIF grammar several years
ago. I took "Appendix A: A formal grammar for CIF":
http://www.iucr.org/resources/cif/spec/version1.1/cifsyntax#bnf
and I used it (after necessary syntax modification) in Boost.Spirit,
which is one of many parser generators.

Then I noted two things that may be errors in the specification:

- no whitespace between LoopHeader and LoopBody

 see <DataItems>: <LoopHeader> ends with <Tag>, <LoopBody> starts with
 <Value>, but there is no <WhiteSpace> between.

- extra "|" in <TokenizedComments> (...<eol> |}...)

Am I right?

Marcin
-- 
Scanned by iCritical.

Reply via email to