/*   -*- coding: utf-8 -*-  */
/***********************************************************************
* Module   : Hfd
* Fichier  : HfdBase.h
* Auteur   : Ducloy
* Date     : 1/94
********************************************************************************
*
* Copyleft
* 
*************************************************************************/
#ifndef HFD_BASE_H
#define HFD_BASE_H

#include "StrDict.h"
#include "HfdIndex.h"

struct HfdBase_struct
{
  char     *baseName;
  StrDict  *listIndexes;
  HfdIndex *implicitIndex;
};
typedef struct HfdBase_struct HfdBase;

#define HfdBaseBaseName(b)  ((b)->baseName)

HfdBase  *HfdBaseCreate();
void      HfdBaseFree(HfdBase *base);
char     *HfdBaseSetBaseName( HfdBase *base, char *name);
HfdIndex *HfdBaseNewIndex(HfdBase *base, char *indexCode);
SxmlNode *HfdBaseTerm(HfdBase *base, SxmlNode *nodeTerm);
SxmlNode *HfdBaseAnd (HfdBase *base, SxmlNode *nodeAnd);
SxmlNode *HfdBaseOr (HfdBase *base, SxmlNode *nodeOr);
SxmlNode *HfdBaseTermFromStr(HfdBase *base, char *str);
SxmlNode *HfdBaseResultFromBoolExpr(HfdBase *base, SxmlNode *expr);
SxmlNode *HfdBaseEvalExpr(HfdBase *base, SxmlNode *expr);

#endif /* END_BASE_H */
