diff options
Diffstat (limited to 'apps/gperf/src/Options.h')
-rw-r--r-- | apps/gperf/src/Options.h | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/apps/gperf/src/Options.h b/apps/gperf/src/Options.h deleted file mode 100644 index e0c79c2efae..00000000000 --- a/apps/gperf/src/Options.h +++ /dev/null @@ -1,182 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -/* Copyright (C) 1989 Free Software Foundation, Inc. - written by Douglas C. Schmidt (schmidt@ics.uci.edu) - -This file is part of GNU GPERF. - -GNU GPERF is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 1, or (at your option) any -later version. - -GNU GPERF is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU GPERF; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111, -USA. */ - -#if !defined (OPTIONS_H) -#define OPTIONS_H - -#include "ace/OS.h" -#include "ace/Log_Msg.h" - -#if defined (ACE_HAS_GPERF) - -// Enumerate the potential debugging Options. - -enum Option_Type -{ - DEBUG = 01, // Enable debugging (prints diagnostics to stderr). - ORDER = 02, // Apply ordering heuristic to speed-up search time. - ANSI = 04, // Generate ANSI prototypes. - ALLCHARS = 010, // Use all characters in hash function. - INLINE = 020, // Generate code for inline functions. - TYPE = 040, // Handle user-defined type structured keyword input. - RANDOM = 0100, // Randomly initialize the associated values table. - DEFAULTCHARS = 0200, // Make default char positions be 1,$ (end of keyword). - SWITCH = 0400, // Generate switch output to save space. - POINTER = 01000, // Have in_word_set function return pointer, not boolean. - NOLENGTH = 02000, // Don't include keyword length in hash computations. - LENTABLE = 04000, // Generate a length table for string comparison. - DUP = 010000, // Handle duplicate hash values for keywords. - FAST = 020000, // Generate the hash function ``fast.'' - NOTYPE = 040000, // Don't include user-defined type definition in output -- it's already defined elsewhere. - COMP = 0100000, // Generate strncmp rather than strcmp. - GLOBAL = 0200000, // Make the keyword table a global variable. - CONSTANT = 0400000, // Make the generated tables readonly (const). - CPLUSPLUS = 01000000, // Generate C++ code. - C = 02000000, // Generate C code. - ENUM = 04000000, // Use enum for constants. - STRCASECMP = 010000000, // Use the case insensitive comparison. - OPTIMIZE = 020000000, // Assume all input keywords are in the keyset. - ADA = 040000000, // Generate Ada code. - MUTE = 0100000000, // Dont print the warnings. - SKIPCLASS = 0200000000, // Skip the class definition part in the output while in C++ mode. - SKIPSTRINGH = 0400000000 // Skip including the header file string.h. -}; - -// Define some useful constants (these don't really belong here, but -// I'm not sure where else to put them!). These should be consts, but -// g++ doesn't seem to do the right thing with them at the -// moment... ;-( - -enum -{ - MAX_KEY_POS = 128 - 1, // Max size of each word's key set. - WORD_START = 1, // Signals the start of a word. - WORD_END = 0, // Signals the end of a word. - EOS = MAX_KEY_POS // Signals end of the key list. -}; - -// @@ The Options class should be changed to use the Singleton pattern. -class Options -{ - // = TITLE - // This class provides a uniform interface to the various options - // available to a user of the gperf hash function generator. - // - // = DESCRIPTION - // In addition to the run-time options, found in the <Option_Type> - // there is also the hash table Size and the Keys to be used in - // the hashing. The overall design of this module was an - // experiment in using C++ classes as a mechanism to enhance - // centralization of option and and error handling. -public: - Options (void); - ~Options (void); - int operator[] (Option_Type option); - void operator() (int argc, char *argv[]); - void operator= (enum Option_Type); - void operator!= (enum Option_Type); - static void print_options (void); - static void set_asso_max (int r); - static int get_asso_max (void); - static void reset (void); - static int get (void); - static int get_iterations (void); - static int get_max_keysig_size (void); - static void set_keysig_size (int); - static int get_jump (void); - static int initial_value (void); - static int get_total_switches (void); - static const char *get_function_name (void); - static const char *get_key_name (void); - static const char *get_class_name (void); - static const char *get_hash_name (void); - static const char *get_delimiter (void); - -private: - static int option_word; - // Holds the user-specified Options. - - static int total_switches; - // Number of switch statements to generate. - - static int total_keysig_size; - // Total number of distinct key_positions. - - static int size; - // Range of the hash table. - - static int key_pos; - // Tracks current key position for Iterator. - - static int jump; - // Jump length when trying alternative values. - - static int initial_asso_value; - // Initial value for asso_values table. - - static int argument_count; - // Records count of command-line arguments. - - static int iterations; - // Amount to iterate when a collision occurs. - - static char **argument_vector; - // Stores a pointer to command-line vector. - - static const char *function_name; - // Names used for generated lookup function. - - static const char *key_name; - // Name used for keyword key. - - static const char *class_name; - // Name used for generated C++ class. - - static const char *hash_name; - // Name used for generated hash function. - - static const char *delimiters; - // Separates keywords from other attributes. - - static char key_positions[MAX_KEY_POS]; - // Contains user-specified key choices. - - static int key_sort (char *base, int len); - // Sorts key positions in REVERSE order. - - static void usage (void); - // Prints proper program usage. -}; - -// Global option coordinator for the entire program. -extern Options option; - -// If we're using GCC then we'll stack-allocate some large arrays. If -// this causes problems simple disable this #define. -#if defined (__GNUC__) -#define LARGE_STACK_ARRAYS -#endif /* LARGE_STACK_ARRAYS */ - -#endif /* ACE_HAS_GPERF */ - -#endif /* OPTIONS_H */ |