1 #ifndef EntityCatalog_INCLUDED
2 #define EntityCatalog_INCLUDED 1
3 
4 #ifdef __GNUG__
5 #pragma interface
6 #endif
7 
8 #include "types.h"
9 #include "StringC.h"
10 #include "Resource.h"
11 #include "SubstTable.h"
12 
13 #ifdef SP_NAMESPACE
14 namespace SP_NAMESPACE {
15 #endif
16 
17 class Messenger;
18 class CharsetInfo;
19 class EntityDecl;
20 
21 class SP_API EntityCatalog : public Resource {
22 public:
23   class SP_API Syntax {
24   public:
25     virtual Boolean namecaseGeneral() const = 0;
26     virtual Boolean namecaseEntity() const = 0;
27     virtual const SubstTable<Char> &upperSubstTable() const = 0;
28     virtual const StringC &peroDelim() const = 0;
29   };
30   virtual ~EntityCatalog();
31   virtual Boolean sgmlDecl(const CharsetInfo &,
32 			   Messenger &,
33 			   StringC &) const;
34   virtual Boolean lookup(const EntityDecl &,
35 			 const Syntax &,
36 			 const CharsetInfo &,
37 			 Messenger &,
38 			 StringC &) const;
39   virtual Boolean lookupPublic(const StringC &,
40 			       const CharsetInfo &,
41 			       Messenger &,
42 			       StringC &) const;
43   // This is for a character described by a minimum literal
44   // in the SGML declaration.
45   virtual Boolean lookupChar(const StringC &,
46                              const CharsetInfo &,
47 			     Messenger &,
48 			     UnivChar &) const;
49 };
50 
51 #ifdef SP_NAMESPACE
52 }
53 #endif
54 
55 #endif /* not EntityCatalog_INCLUDED */
56