/****************************************************************************
*
*      Projet  : DilibSgml
*      Module  : SgmlString
*      Fichier : SgmlString.h
*      Auteur  : J. Ducloy
*      Origine : J. Ducloy
*
*      Derniere mise a jour Decembre 96
*      $Id: SgmlString.h,v 1.2 2003/03/17 16:38:06 parmentf Exp $
*
************************************************************************
* 
*     Copyright (C) 1995 CRIN - CNRS & INRIA Lorraine
*
****************************************************************************/
#ifndef _SGML_STRING_H_
#define _SGML_STRING_H_

#include "SgmlNode.h"

struct  SgmlStackElem_struct
{
  char type;                 /* D: data 
                                B: BeginMark 
                                E: EndMark 
                                M: complete Element
                                T: Top (temporary state)
                             */
  struct  SgmlStackElem_struct *next;
  SgmlNode *object;
};
typedef struct  SgmlStackElem_struct SgmlStackElem;

struct SgmlAnalysor_struct
{
  char *begin;
  char *left;
  SgmlStackElem *top;
  SgmlStackElem *listFreeElem;      /* evite les alloc malloc */
};
 
typedef struct SgmlAnalysor_struct SgmlAnalysor ;

extern int SgmlStrCmpCode;
char *SgmlStrGetLeaf();
int SgmlStrLeafCmp();

void	SgmlFilePrint();
void    SgmlPrint();
char*   SgmlToStringPtr();
char*   SgmlToString();
SgmlNode *SgmlFromString();

void    SgmlIndentRoot();

#endif  /* _SGML_STRING_H_  */
