00001 /* 00002 ********************************************************************** 00003 * Copyright (c) 2000-2004, International Business Machines 00004 * Corporation and others. All Rights Reserved. 00005 ********************************************************************** 00006 * Date Name Description 00007 * 02/04/00 aliu Creation. 00008 ********************************************************************** 00009 */ 00010 #ifndef SYMTABLE_H 00011 #define SYMTABLE_H 00012 00013 #include "unicode/utypes.h" 00014 #include "unicode/uobject.h" 00015 00016 U_NAMESPACE_BEGIN 00017 00018 class ParsePosition; 00019 class UnicodeFunctor; 00020 class UnicodeSet; 00021 class UnicodeString; 00022 00048 class U_COMMON_API SymbolTable /* not : public UObject because this is an interface/mixin class */ { 00049 public: 00050 00055 enum { SYMBOL_REF = 0x0024 /*$*/ }; 00056 00061 virtual ~SymbolTable(); 00062 00072 virtual const UnicodeString* lookup(const UnicodeString& s) const = 0; 00073 00082 virtual const UnicodeFunctor* lookupMatcher(UChar32 ch) const = 0; 00083 00101 virtual UnicodeString parseReference(const UnicodeString& text, 00102 ParsePosition& pos, int32_t limit) const = 0; 00103 }; 00104 U_NAMESPACE_END 00105 00106 #endif