1// Copyright (c) 1994 James Clark
2// See the file COPYING for copying permission.
3#pragma ident	"%Z%%M%	%I%	%E% SMI"
4
5#ifdef __GNUG__
6#pragma implementation
7#endif
8
9#include "splib.h"
10#include "SgmlParser.h"
11#include "Parser.h"
12#include "Trie.h"
13
14#ifdef SP_NAMESPACE
15namespace SP_NAMESPACE {
16#endif
17
18SgmlParser::SgmlParser()
19: parser_(0)
20{
21}
22
23SgmlParser::SgmlParser(const Params &params)
24: parser_(new Parser(params))
25{
26}
27
28void SgmlParser::init(const Params &params)
29{
30  delete parser_;
31  parser_ = new Parser(params);
32}
33
34SgmlParser::~SgmlParser()
35{
36  delete parser_;
37}
38
39Event *SgmlParser::nextEvent()
40{
41  return parser_->nextEvent();
42}
43
44void SgmlParser::parseAll(EventHandler &handler,
45			  const volatile sig_atomic_t *cancelPtr)
46{
47  parser_->parseAll(handler, cancelPtr);
48}
49
50ConstPtr<Sd> SgmlParser::sd() const
51{
52  return parser_->sdPointer();
53}
54
55ConstPtr<Syntax> SgmlParser::instanceSyntax() const
56{
57  return parser_->instanceSyntaxPointer();
58}
59
60ConstPtr<Syntax> SgmlParser::prologSyntax() const
61{
62  return parser_->prologSyntaxPointer();
63}
64
65EntityManager &SgmlParser::entityManager() const
66{
67  return parser_->entityManager();
68}
69
70const EntityCatalog &SgmlParser::entityCatalog() const
71{
72  return parser_->entityCatalog();
73}
74
75void SgmlParser::activateLinkType(const StringC &name)
76{
77  parser_->activateLinkType(name);
78}
79
80void SgmlParser::allLinkTypesActivated()
81{
82  parser_->allLinkTypesActivated();
83}
84
85void SgmlParser::swap(SgmlParser &s)
86{
87  Parser *tem = parser_;
88  parser_ = s.parser_;
89  s.parser_ = tem;
90}
91
92Ptr<Dtd> SgmlParser::baseDtd()
93{
94  return parser_->baseDtd();
95}
96
97const ParserOptions &SgmlParser::options() const
98{
99  return parser_->options();
100}
101
102SgmlParser::Params::Params()
103: entityType(document),
104  parent(0),
105  options(0),
106  subdocInheritActiveLinkTypes(0),
107  subdocReferenced(0),
108  subdocLevel(0)
109{
110}
111
112#ifdef SP_NAMESPACE
113}
114#endif
115