Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Unified Diff: gperf/src/gperf/3.0.1/gperf-3.0.1-src/src/options.h

Issue 10804012: Add native Windows binary for gperf. (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gperf/src/gperf/3.0.1/gperf-3.0.1-src/src/options.h
===================================================================
--- gperf/src/gperf/3.0.1/gperf-3.0.1-src/src/options.h (revision 0)
+++ gperf/src/gperf/3.0.1/gperf-3.0.1-src/src/options.h (revision 0)
@@ -0,0 +1,289 @@
+/* This may look like C code, but it is really -*- C++ -*- */
+
+/* Handles parsing the Options provided to the user.
+
+ Copyright (C) 1989-1998, 2000, 2002-2003 Free Software Foundation, Inc.
+ Written by Douglas C. Schmidt <schmidt@ics.uci.edu>
+ and Bruno Haible <bruno@clisp.org>.
+
+ 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 2, 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 this program; see the file COPYING.
+ If not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/* This module provides a uniform interface to the various options available
+ to a user of the gperf hash function generator. */
+
+#ifndef options_h
+#define options_h 1
+
+#include <stdio.h>
+#include "positions.h"
+
+/* Enumeration of the possible boolean options. */
+
+enum Option_Type
+{
+ /* --- Input file interpretation --- */
+
+ /* Handle user-defined type structured keyword input. */
+ TYPE = 1 << 0,
+
+ /* Ignore case of ASCII characters. */
+ UPPERLOWER = 1 << 1,
+
+ /* --- Language for the output code --- */
+
+ /* Generate K&R C code: no prototypes, no const. */
+ KRC = 1 << 2,
+
+ /* Generate C code: no prototypes, but const (user can #define it away). */
+ C = 1 << 3,
+
+ /* Generate ISO/ANSI C code: prototypes and const, but no class. */
+ ANSIC = 1 << 4,
+
+ /* Generate C++ code: prototypes, const, class, inline, enum. */
+ CPLUSPLUS = 1 << 5,
+
+ /* --- Details in the output code --- */
+
+ /* Assume 7-bit, not 8-bit, characters. */
+ SEVENBIT = 1 << 6,
+
+ /* Generate a length table for string comparison. */
+ LENTABLE = 1 << 7,
+
+ /* Generate strncmp rather than strcmp. */
+ COMP = 1 << 8,
+
+ /* Make the generated tables readonly (const). */
+ CONST = 1 << 9,
+
+ /* Use enum for constants. */
+ ENUM = 1 << 10,
+
+ /* Generate #include statements. */
+ INCLUDE = 1 << 11,
+
+ /* Make the keyword table a global variable. */
+ GLOBAL = 1 << 12,
+
+ /* Use NULL strings instead of empty strings for empty table entries. */
+ NULLSTRINGS = 1 << 13,
+
+ /* Optimize for position-independent code. */
+ SHAREDLIB = 1 << 14,
+
+ /* Generate switch output to save space. */
+ SWITCH = 1 << 15,
+
+ /* Don't include user-defined type definition in output -- it's already
+ defined elsewhere. */
+ NOTYPE = 1 << 16,
+
+ /* --- Algorithm employed by gperf --- */
+
+ /* Use the given key positions. */
+ POSITIONS = 1 << 17,
+
+ /* Handle duplicate hash values for keywords. */
+ DUP = 1 << 18,
+
+ /* Don't include keyword length in hash computations. */
+ NOLENGTH = 1 << 19,
+
+ /* Randomly initialize the associated values table. */
+ RANDOM = 1 << 20,
+
+ /* --- Informative output --- */
+
+ /* Enable debugging (prints diagnostics to stderr). */
+ DEBUG = 1 << 21
+};
+
+/* Class manager for gperf program Options. */
+
+class Options
+{
+public:
+ /* Constructor. */
+ Options ();
+
+ /* Destructor. */
+ ~Options ();
+
+ /* Parses the options given in the command-line arguments. */
+ void parse_options (int argc, char *argv[]);
+
+ /* Prints the given options. */
+ void print_options () const;
+
+ /* Accessors. */
+
+ /* Tests a given boolean option. Returns true if set, false otherwise. */
+ bool operator[] (Option_Type option) const;
+ /* Sets a given boolean option. */
+ void set (Option_Type option);
+
+ /* Returns the input file name. */
+ const char * get_input_file_name () const;
+
+ /* Returns the output file name. */
+ const char * get_output_file_name () const;
+
+ /* Sets the output language, if not already set. */
+ void set_language (const char *language);
+
+ /* Returns the jump value. */
+ int get_jump () const;
+
+ /* Returns the initial associated character value. */
+ int get_initial_asso_value () const;
+
+ /* Returns the number of iterations for finding good asso_values. */
+ int get_asso_iterations () const;
+
+ /* Returns the total number of switch statements to generate. */
+ int get_total_switches () const;
+ /* Sets the total number of switch statements, if not already set. */
+ void set_total_switches (int total_switches);
+
+ /* Returns the factor by which to multiply the generated table's size. */
+ float get_size_multiple () const;
+
+ /* Returns the generated function name. */
+ const char * get_function_name () const;
+ /* Sets the generated function name, if not already set. */
+ void set_function_name (const char *name);
+
+ /* Returns the keyword key name. */
+ const char * get_slot_name () const;
+ /* Sets the keyword key name, if not already set. */
+ void set_slot_name (const char *name);
+
+ /* Returns the struct initializer suffix. */
+ const char * get_initializer_suffix () const;
+ /* Sets the struct initializer suffix, if not already set. */
+ void set_initializer_suffix (const char *initializers);
+
+ /* Returns the generated class name. */
+ const char * get_class_name () const;
+ /* Sets the generated class name, if not already set. */
+ void set_class_name (const char *name);
+
+ /* Returns the hash function name. */
+ const char * get_hash_name () const;
+ /* Sets the hash function name, if not already set. */
+ void set_hash_name (const char *name);
+
+ /* Returns the hash table array name. */
+ const char * get_wordlist_name () const;
+ /* Sets the hash table array name, if not already set. */
+ void set_wordlist_name (const char *name);
+
+ /* Returns the string pool name. */
+ const char * get_stringpool_name () const;
+ /* Sets the string pool name, if not already set. */
+ void set_stringpool_name (const char *name);
+
+ /* Returns the string used to delimit keywords from other attributes. */
+ const char * get_delimiters () const;
+ /* Sets the delimiters string, if not already set. */
+ void set_delimiters (const char *delimiters);
+
+ /* Returns key positions. */
+ const Positions& get_key_positions () const;
+
+private:
+ /* Prints program usage to given stream. */
+ static void short_usage (FILE * stream);
+
+ /* Prints program usage to given stream. */
+ static void long_usage (FILE * stream);
+
+ /* Records count of command-line arguments. */
+ int _argument_count;
+
+ /* Stores a pointer to command-line argument vector. */
+ char ** _argument_vector;
+
+ /* Holds the boolean options. */
+ int _option_word;
+
+ /* Name of input file. */
+ char * _input_file_name;
+
+ /* Name of output file. */
+ char * _output_file_name;
+
+ /* The output language. */
+ const char * _language;
+
+ /* Jump length when trying alternative values. */
+ int _jump;
+
+ /* Initial value for asso_values table. */
+ int _initial_asso_value;
+
+ /* Number of attempts at finding good asso_values. */
+ int _asso_iterations;
+
+ /* Number of switch statements to generate. */
+ int _total_switches;
+
+ /* Factor by which to multiply the generated table's size. */
+ float _size_multiple;
+
+ /* Names used for generated lookup function. */
+ const char * _function_name;
+
+ /* Name used for keyword key. */
+ const char * _slot_name;
+
+ /* Suffix for empty struct initializers. */
+ const char * _initializer_suffix;
+
+ /* Name used for generated C++ class. */
+ const char * _class_name;
+
+ /* Name used for generated hash function. */
+ const char * _hash_name;
+
+ /* Name used for hash table array. */
+ const char * _wordlist_name;
+
+ /* Name used for the string pool. */
+ const char * _stringpool_name;
+
+ /* Separates keywords from other attributes. */
+ const char * _delimiters;
+
+ /* Contains user-specified key choices. */
+ Positions _key_positions;
+};
+
+/* Global option coordinator for the entire program. */
+extern Options option;
+
+#ifdef __OPTIMIZE__
+
+#define INLINE inline
+#include "options.icc"
+#undef INLINE
+
+#endif
+
+#endif
Property changes on: gperf\src\gperf\3.0.1\gperf-3.0.1-src\src\options.h
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « gperf/src/gperf/3.0.1/gperf-3.0.1-src/src/main.cc ('k') | gperf/src/gperf/3.0.1/gperf-3.0.1-src/src/options.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698