Mercurial > illumos > onarm
view usr/src/cmd/man/src/util/nsgmls.src/include/SgmlParser.h @ 4:1a15d5aaf794
synchronized with onnv_86 (6202) in onnv-gate
author | Koji Uno <koji.uno@sun.com> |
---|---|
date | Mon, 31 Aug 2009 14:38:03 +0900 |
parents | c9caec207d52 |
children |
line wrap: on
line source
// Copyright (c) 1994 James Clark // See the file COPYING for copying permission. #pragma ident "%Z%%M% %I% %E% SMI" #ifndef SgmlParser_INCLUDED #define SgmlParser_INCLUDED 1 #ifdef __GNUG__ #pragma interface #endif #include "StringC.h" #include "Ptr.h" #include "Location.h" #include "EntityManager.h" #include <signal.h> #ifdef SP_NAMESPACE namespace SP_NAMESPACE { #endif class Event; class Parser; class UnivCharsetDesc; class EventHandler; struct ParserOptions; template<class T> class Ptr; template<class T> class ConstPtr; class InputSourceOrigin; class Sd; class Syntax; class Dtd; class SP_API SgmlParser { public: struct SP_API Params { enum EntityType { document, subdoc, dtd }; Params(); EntityType entityType; // defaults to document StringC sysid; // must be specified Ptr<InputSourceOrigin> origin; Ptr<EntityManager> entityManager; const SgmlParser *parent; ConstPtr<Sd> sd; ConstPtr<Syntax> prologSyntax; ConstPtr<Syntax> instanceSyntax; unsigned subdocLevel; const ParserOptions *options; PackedBoolean subdocInheritActiveLinkTypes; // referenced subdocs count against SUBDOC limit in SGML declaration PackedBoolean subdocReferenced; StringC doctypeName; }; SgmlParser(); // must call init SgmlParser(const Params ¶ms); void init(const Params ¶ms); ~SgmlParser(); Event *nextEvent(); void parseAll(EventHandler &, const volatile sig_atomic_t *cancelPtr = 0); ConstPtr<Sd> sd() const; ConstPtr<Syntax> instanceSyntax() const; ConstPtr<Syntax> prologSyntax() const; EntityManager &entityManager() const; const EntityCatalog &entityCatalog() const; const ParserOptions &options() const; // Only to be called after the parse has ended. Ptr<Dtd> baseDtd(); void activateLinkType(const StringC &); void allLinkTypesActivated(); void swap(SgmlParser &); friend class Parser; private: SgmlParser(const SgmlParser &); void operator=(const SgmlParser &); Parser *parser_; }; #ifdef SP_NAMESPACE } #endif #endif /* not SgmlParser_INCLUDED */