Mercurial > ~dholland > hg > ag > index.cgi
view oldclasslib/include/strdict.h @ 16:f9e4689b837d
Some minor updates for 15 years later.
author | David A. Holland |
---|---|
date | Tue, 31 May 2022 01:45:26 -0400 |
parents | 607e3be6bad8 |
children |
line wrap: on
line source
/* * AnaGram, a System for Syntax Directed Programmng * String Dictionary Class Definition * * Copyright 1993 Parsifal Software. All Rights Reserved. * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution. */ #ifndef STRDICT_H #define STRDICT_H class string_dictionary { unsigned *sxs; // Storage for string indices char *cs; // Storage for character strings unsigned csx; // Next available location in cs unsigned csxmax; // Size of cs unsigned ns; // Number of strings in dictionary unsigned nsmax; // Max number of strings unsigned *ht; // Hash table storage unsigned htl; // Size of hash table unsigned htmask; // Hash table mask unsigned hash(const char *); // Hash function unsigned n_calls; // Number of calls unsigned n_collisions; // Number of collisions int copy_flag; // Is it live or is it memorex? public: // Constructors string_dictionary(unsigned size, unsigned word_length = 10); string_dictionary(const string_dictionary &); void operator = (const string_dictionary &); // Destructor ~string_dictionary(); // Reset String Dictionary friend string_dictionary &reset(string_dictionary &); // Enter a String in Dictionary unsigned operator << (const char *); // Insert string // Look up a String in Dictionary unsigned operator [] (const char *); // Look up string // Recover String from Dictionary Index char * operator [] (unsigned); // Find string // Find Number of Entries in Dictionary friend unsigned size(string_dictionary &); }; #endif