diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-01-01 08:00:34 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-01-01 08:00:34 +0000 |
commit | d9661aebab28abc0ec4fb1e716170d347d56c168 (patch) | |
tree | ecb671ab4b8e299bf5cbb8b2dfeed8a49b65fc06 /apps/gperf/src/Options.h | |
parent | ea0d28240863caf437a18071bfd03e7b146c5ade (diff) | |
download | ATCD-unlabeled-4.3.2.tar.gz |
This commit was manufactured by cvs2svn to create branchunlabeled-4.3.2
'unlabeled-4.3.2'.
Diffstat (limited to 'apps/gperf/src/Options.h')
-rw-r--r-- | apps/gperf/src/Options.h | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/apps/gperf/src/Options.h b/apps/gperf/src/Options.h deleted file mode 100644 index 22579aac4d4..00000000000 --- a/apps/gperf/src/Options.h +++ /dev/null @@ -1,140 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -/* This may look like C code, but it is really -*- C++ -*- */ - -/* Handles parsing the Options provided to the user. - - 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. */ - -/* This module provides a uniform interface to the various options - available to a user of the gperf hash function generator. In - addition to the run-time options, found in the Option_Type below, - 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, which tend to get out of hand in a C - program. */ - -#ifndef options_h -#define options_h 1 - -#include "ace/Log_Msg.h" - -/* 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. */ - GNU = 020, /* Assume GNU extensions (primarily function inline). */ - 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. */ - CONST = 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. */ -}; - -/* 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. */ -}; - -/* Class manager for gperf program Options. */ - -class Options -{ -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; - -/* Set to 1 if your want to stack-allocate some large arrays. */ -#ifndef LARGE_STACK_ARRAYS -#define LARGE_STACK_ARRAYS 0 -#endif - -#endif |