Mercurial > illumos > onarm
view usr/src/cmd/man/src/util/nsgmls.src/include/SubstTable.h @ 0:c9caec207d52 b86
Initial porting based on b86
author | Koji Uno <koji.uno@sun.com> |
---|---|
date | Tue, 02 Jun 2009 18:56:50 +0900 |
parents | |
children | 1a15d5aaf794 |
line wrap: on
line source
// Copyright (c) 1994 James Clark // See the file COPYING for copying permission. #pragma ident "@(#)SubstTable.h 1.4 00/07/17 SMI" #ifndef SubstTable_INCLUDED #define SubstTable_INCLUDED #include <limits.h> #include "StringOf.h" #include "Boolean.h" #ifdef SP_NAMESPACE namespace SP_NAMESPACE { #endif template<class T> class SubstTable { public: SubstTable(); void addSubst(T from, T to); void subst(T &c) const { if (table_.size() > 0) c = table_[c]; } void subst(String<T> &) const; T operator[](T c) const { return table_.size() > 0 ? table_[c] : c; } String<T> inverse(T) const; void inverseTable(SubstTable<T> &) const; private: String<T> table_; String<T> pairs_; // mutable Boolean pairsValid_; // mutable }; #ifdef SP_NAMESPACE } #endif #endif /* SubstTable_INCLUDED */ #ifdef SP_DEFINE_TEMPLATES #include "SubstTable.cxx" #endif