00001 /* 00002 ********************************************************************** 00003 * Copyright (c) 2000-2005, 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 00022 U_NAMESPACE_BEGIN 00023 00024 class ParsePosition; 00025 class UnicodeFunctor; 00026 class UnicodeSet; 00027 class UnicodeString; 00028 00054 class U_COMMON_API SymbolTable /* not : public UObject because this is an interface/mixin class */ { 00055 public: 00056 00061 enum { SYMBOL_REF = 0x0024 /*$*/ }; 00062 00067 virtual ~SymbolTable(); 00068 00078 virtual const UnicodeString* lookup(const UnicodeString& s) const = 0; 00079 00088 virtual const UnicodeFunctor* lookupMatcher(UChar32 ch) const = 0; 00089 00107 virtual UnicodeString parseReference(const UnicodeString& text, 00108 ParsePosition& pos, int32_t limit) const = 0; 00109 }; 00110 U_NAMESPACE_END 00111 00112 #endif