Mercurial > ~dholland > hg > ag > index.cgi
diff anagram/support/agdict.h @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/anagram/support/agdict.h Sat Dec 22 17:52:45 2007 -0500 @@ -0,0 +1,37 @@ +/* + * AnaGram, A System for Syntax Directed Programming + * Copyright 1997-2002 Parsifal Software. All Rights Reserved. + * See the file COPYING for license and usage terms. + * + * agdict.h - new string dictionary + */ + +#ifndef AGDICT_H +#define AGDICT_H + +class AgString; // from agstr.h +#include "agbaltree.h" +#include "agstack.h" + + +class AgStringDictionary { + class Tree : public AgBalancedTree<int> { + protected: + AgStack<AgString> stringStore; + int compare(const int &x, const int &y) const; + friend class AgStringDictionary; + void reset(); + }; + Tree tree; +public: + void reset() { tree.reset(); } + AgStringDictionary() { tree.reset(); } + unsigned size() const { return tree.size(); } + + int operator << (const AgString s); + int operator [] (const AgString s); + AgString operator [] (const unsigned x); +}; + + +#endif /* AGDICT_H */