Parser.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
// Copyright (c) 1994 James Clark
// See the file COPYING for copying permission.
#pragma ident "%Z%%M% %I% %E% SMI"
#ifndef Parser_INCLUDED
#define Parser_INCLUDED 1
#ifdef __GNUG__
#pragma interface
#endif
#include "types.h"
#include "Attribute.h"
#include "Attributed.h"
#include "Boolean.h"
#include "StringC.h"
#include "ElementType.h"
#include "Entity.h"
#include "Event.h"
#include "IList.h"
#include "ISet.h"
#include "Location.h"
#include "Owner.h"
#include "ParserState.h"
#include "Ptr.h"
#include "SgmlParser.h"
#include "StringOf.h"
#include "Undo.h"
#include "Vector.h"
#ifdef SP_NAMESPACE
#endif
struct GroupConnector;
struct SdBuilder;
struct SdParam;
struct StandardSyntaxSpec;
const CharsetInfo &docCharset,
CharSwitcher &,
const CharsetInfo &syntaxCharset,
const CharsetInfo &docCharset,
const CharsetInfo &syntaxCharset,
const CharsetInfo &docCharset,
void giveUp();
void compileSdModes();
void compilePrologModes();
void compileInstanceModes();
const StringC &d,
const Syntax &);
void compileNormalMap();
void doInit();
void doProlog();
void doDeclSubset();
void doInstanceStart();
void doContent();
void extendHexNumber();
void extendData();
void extendS();
void extendContentS();
void declSubsetRecover(unsigned startLevel);
void prologRecover();
void skipDeclaration(unsigned startLevel);
void handleMarkedSectionEnd();
void emptyCommentDecl();
const AllowedParams &,
unsigned,
Param &,
ExternalId &);
// flags for parseLiteral()
enum {
literalSingleSpace = 01,
literalDataTag = 02,
literalMinimumData = 04,
// Keep info about delimiters
literalDelimInfo = 010,
// Ignore references in the literal
literalNoProcess = 020,
// Allow numeric character references to non-SGML characters
literalNonSgml = 040
};
const MessageType1 &tooLongMessage,
unsigned nestingLevel,
unsigned declInputLevel,
unsigned groupInputLevel,
GroupToken >);
unsigned declInputLevel,
unsigned groupInputLevel,
GroupConnector &gc);
unsigned declInputLevel,
ModelGroup *&, Mode);
GroupToken &);
unsigned declInputLevel, GroupToken &);
int ignoreLevel,
void parsePcdata();
void parseStartTag();
void handleRankedElement(const ElementType *);
void parseEmptyStartTag();
void acceptPcdata(const Location &);
void checkExclusion(const ElementType *e);
unsigned &specLength);
struct AttributeParameter {
enum Type {
end,
name,
vi,
};
};
void extendUnquotedAttributeValue();
unsigned &specLength,
void parseEndTagClose();
void parseEmptyEndTag();
void parseNullEndTag();
void endAllElements();
void acceptEndTag(EndElementEvent *);
void endTagEmptyElement(const ElementType *,
void implyCurrentElementEnd(const Location &);
unsigned declInputLevel,
void handleShortref(int index);
void endInstance();
CharsetDecl &, UnivCharsetDesc &);
const CharsetInfo &syntaxCharset,
const CharsetInfo &docCharset,
const CharsetInfo &syntaxCharset);
const CharsetInfo &toCharset,
const CharsetInfo &charset,
const CharsetInfo &syntaxCharset);
void checkIdrefs();
const LeafContentToken *to1,
const LeafContentToken *to2,
unsigned ambigAndDepth);
const ElementType *sourceElement,
const ElementType *&resultType,
void endProlog();
void parseGroupStartTag();
void parseGroupEndTag();
};
#ifdef SP_NAMESPACE
}
#endif
#endif /* not Parser_INCLUDED */