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 */