/******************************************************************************
*
*               Projet   : DilibUnix
*               Module   : Buffer
*               Fichier  : BufferParser.h
*               Auteur   : J. DUCLOY
*               Date     : Septembre 2001
*
******************************************************************************/
#ifndef _DILIB_BUFFER_PARSER_H
#define _DILIB_BUFFER_PARSER_H
#include "Buffer.h"


struct BufferParserStruct
{
  Buffer *input;      /* Buffer for input string */
  Buffer *output;     /* Buffer for target string */
  Buffer *tag;        /* tag to match during xml parsing */
  Buffer *tag2;       /* matching tag */
  char inputChar;
  FILE *file;
};

#define BufferParserIsOpen(b) ((b)->file)

typedef struct BufferParserStruct BufferParser;

extern BufferParser *BufferParserStdin;
BufferParser *BufferParserCreate();
BufferParser *BufferParserStdinCreate();
BufferParser *BufferParserOpen( BufferParser *b1, char *str);
void BufferParserClose(BufferParser  *b1);
void BufferParserFree(BufferParser  *b1);
char *BufferParserGetUntilChar(BufferParser *b1, int c1);
char *BufferParserGetUntilStr(BufferParser *b1, char *s1);
char *BufferParserStdinGetBloc(char *fromStr, char *toStr);
char *BufferParserStdinGetXmlUnit();
char *BufferParserStdinGetXmlElementStr();

char *BufferParserGetMandStr();
char *BufferParserGetXmlUnit();
BufferParser *BufferParserSetFile();


#endif /* _DILIB_BUFFER_PARSER_H */
