/*****
* ParserP.h : HTMLParser Object private header file
*
* This file Version $Revision: 1.1 $
*
* Creation date: Sun Apr 13 00:58:46 GMT+0100 1997
* Last modification: $Date: 1997/11/28 03:38:54 $
* By: $Author: gnomecvs $
* Current State: $State: Exp $
*
* Author: newt
*
* Copyright (C) 1994-1997 by Ripley Software Development
* All Rights Reserved
*
* This file is part of the XmHTML Widget Library
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*****/
/*****
* $Source: /cvs/gnome/gnome-libs/gtk-xmhtml/ParserP.h,v $
*****/
/*****
* ChangeLog
* $Log: ParserP.h,v $
* Revision 1.1 1997/11/28 03:38:54 gnomecvs
* Work in progress port of XmHTML; No, it does not compile, don't even try -mig
*
* Revision 1.2 1997/10/23 00:24:39 newt
* XmHTML Beta 1.1.0 release
*
* Revision 1.1 1997/04/29 14:19:29 newt
* Initial Revision
*
*****/
#ifndef _ParserP_h_
#define _ParserP_h_
#ifdef WITH_MOTIF
# include
# include
#else
# include
#endif
#include
_XFUNCPROTOBEGIN
#ifndef BYTE_ALREADY_TYPEDEFED
#define BYTE_ALREADY_TYPEDEFED
typedef unsigned char Byte;
#endif /* BYTE_ALREADY_TYPEDEFED */
#ifdef WITH_MOTIF
/*****
* Class pointer and extension record definition
*****/
typedef struct {
XtPointer extension; /* Pointer to extension record */
}XmHTMLParserClassPart;
typedef struct _XmHTMLParserClassRec
{
ObjectClassPart object_class; /* parent class */
XmHTMLParserClassPart html_parser_class;
}XmHTMLParserClassRec;
#endif /* WITH_MOTIF */
/*****
* Parser state stack object
*****/
typedef struct _stateStack{
htmlEnum id; /* current state id */
struct _stateStack *next; /* ptr to next record */
}stateStack;
/*****
* HTMLParserPart definition
*****/
typedef struct _XmHTMLParserPart {
/****
* Public members
****/
String mime_type; /* mime type of this text */
/* parser configuration */
Boolean strict; /* strict HTML 3.2 checking */
Boolean progressive; /* parser mode */
Boolean retain_source; /* retain source after parsing */
/* callback resources */
TCallbackList document_callback;
TCallbackList parser_callback;
TCallbackList modify_verify_callback;
/* user data field */
TPointer user_data; /* not used by the parser */
String unknown_string; /* HTML_UNKNOWN_ELEMENT */
String open_string; /* HTML_OPEN_ELEMENT */
String bad_html_string; /* HTML_BAD */
String open_block_string; /* HTML_OPEN_BLOCK */
String close_block_string; /* HTML_CLOSE_BLOCK */
String violation_string; /* HTML_VIOLATION */
String notify_string; /* HTML_NOTIFY */
String fatal_string; /* HTML_INTERNAL */
/****
* Private members
****/
/* parser aliasing table */
XmHTMLAliasTable alias_table; /* unknown element aliasing table */
Cardinal nalias; /* no of elements in alias table */
String source; /* raw HTML text */
int is_html; /* only false for text/plain */
XmHTMLObject *objects; /* final parser tree */
XmHTMLObject *head; /* head of parser tree */
XmHTMLObject *current; /* last known processed element */
Cardinal nobjects; /* object count */
Cardinal nelements; /* HTML object count */
Cardinal ntext; /* plain text object count */
Cardinal source_len; /* current source length */
Cardinal loop_count; /* total no of loops made */
Cardinal index; /* current text index */
int inserted; /* no of auto-inserted chars */
Cardinal line_len; /* maximum line length */
int cnt; /* current line length */
Cardinal num_lines; /* current line no in source */
Cardinal cstart; /* current element start position*/
Cardinal cend; /* current element end position */
Cardinal err_count; /* bad HTML error count */
stateStack base; /* stack base point */
stateStack *stack; /* actual stack */
int depth; /* current stack depth */
Boolean automatic; /* honor parser callback */
Boolean unbalanced; /* true when stack is unbalanced */
Boolean html32; /* html conformancy flag */
Boolean have_body; /* seen the body tag */
Boolean reset; /* parser has been reset */
Boolean active; /* parser is active */
Boolean terminated; /* premature end */
}XmHTMLParserPart;
#ifdef WITH_MOTIF
typedef struct _XmHTMLParserRec {
ObjectPart object;
XmHTMLParserPart parser;
}XmHTMLParserRec;
externalref XmHTMLParserClassRec xmHTMLParserClassRec;
#endif
/*****
* Private functions
*****/
/* free the given object list */
extern void _XmHTMLParserFreeObjects(XmHTMLObject *objects);
/* compose a HTML source document from the given list of objects */
extern String _XmHTMLParserGetString(XmHTMLObject *objects);
#ifndef WITH_MOTIF
# include "gtk-xmhtml-parser.h"
#endif
_XFUNCPROTOEND
/* Don't add anything after this endif! */
#endif /* _ParserP_h_ */