/* Example for dictionary chacking*/
#include "CifFileObj.h"
#include "DICFileObj.h"
#include "DDLFileObj.h"
#include <iostream.h>


int main(int argc, char *argv[]) {
  char *diags=NULL;
  ISTable *ddlformat;
  DDLFileObj * ddl = NULL;
  ISTable *dicformat;
  DICFileObj * dic = NULL;

  int i;
  char *ddlFile=NULL, *dicFile=NULL;
  char *pname=NULL;
  pname = argv[0];


  if (argc < 4) {
    cerr << pname << ":  usage = -ddl <ddlfile> -dic <dictionaryfile> " << endl;
    exit(1);
  }

  for (i=1; i < argc; i++) {
    if ( argv[i][0] == '-' ) {
      if (strcmp(argv[i],"-ddl") == 0 ) {
	i++;
	ddlFile = (char *) calloc(strlen(argv[i]) + 1, sizeof(char));
	strcpy(ddlFile,argv[i]);          
      }	else if (strcmp(argv[i],"-dic") == 0 ) {
	i++;
	dicFile = (char *) calloc(strlen(argv[i]) + 1, sizeof(char));
	strcpy(dicFile,argv[i]);          
      } else {
	cerr << pname << ":  usage = -ddl <ddlfile> -dic <dictionaryfile> " << endl;
	exit(1);
      }
    } else {
      cerr << pname << ":  usage = -ddl <ddlfile> -dic <dictionaryfile> " << endl;
      exit(1);
    }
  }

  ddl = new DDLFileObj((char*)"ddl", WRITE_MODE, 80, "?", 1);
  ddlformat = new ISTable("ddlformat");
  ddl->Read(ddlFile,ddlformat, diags);
  cout<<"diags from DDL reading= "<<diags<<endl;

  dicformat = new ISTable("dicformat");
  dic = new DICFileObj((char*)"dictionary.odb", WRITE_MODE, 80, "?", 0);
  dic->Read(dicFile,ddl , dicformat, diags);

  cout<<"diags from Dictionary reding= "<<diags<<endl;

//  dic->Compress(ddl);

  ddl->CloseFile();
  if (ddl) delete ddl;
  dic->CloseFile();
  if (dic) delete dic;
exit(0);
}
