Destroy the StringUtils.h file
authorChris Lattner <sabre@nondot.org>
Sun, 22 Jul 2001 00:18:10 +0000 (00:18 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 22 Jul 2001 00:18:10 +0000 (00:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/ProgramOptions.h
include/llvm/Support/StringUtils.h [deleted file]

index 34badb54deaed7e2db5173ffa0e06bbe4fd287f7..944cd19aa410fa0006493bc3bf20e472af62ed0c 100644 (file)
 #ifndef LLVM_SUPPORT_PROGRAMOPTIONS_H
 #define LLVM_SUPPORT_PROGRAMOPTIONS_H
 
-//************************** System Include Files **************************/
-
-#include <iostream.h>
-
-//*************************** User Include Files ***************************/
-
 #include "llvm/Support/Unique.h"
-#include "llvm/Support/StringUtils.h"
+#include <vector>
+#include <hash_map>
 
-//************************ Forward Declarations ****************************/
+template <> struct hash<string> {
+  size_t operator()(string const &str) const {
+    return hash<char const *>()(str.c_str());
+  }
+};
 
 class ProgramOption;
 
-//************************* Main Driver Routine ****************************/
-
 //---------------------------------------------------------------------------
 //
 //  Class: ProgramOptions
@@ -99,7 +96,7 @@ public:
   // the option and entry 3n + 2 contains the ascii value of the option.
   // All entries are allocated using malloc and can be freed with 'free'.
   //--------------------------------------------------------------------
-  virtual vector<char*> GetDescription () const;
+  virtual vector<string> GetDescription        () const;
   
 protected:
   //--------------------------------------------------------------------
@@ -115,16 +112,16 @@ protected:
                         const char* argv[],
                         const char* envp[]);
   
-  inline ProgramOption* OptionHandler(const char* optString) {
-     ProgramOption** poPtr = optionRegistry.query(optString);
-     return poPtr? *poPtr : NULL;
+  inline ProgramOption* OptionHandler(const string &optString) {
+    hash_map<string, ProgramOption*>::iterator hp = 
+      optionRegistry.find(optString);
+    return (hp != optionRegistry.end()) ? hp->second : 0;
   }
-
-  inline const ProgramOption* OptionHandler(const char* optString) const {
-     const ProgramOption* const* poPtr = optionRegistry.query(optString);
-     return poPtr? *poPtr : NULL;
+  inline const ProgramOption* OptionHandler(const string &optString) const {
+    hash_map<string, ProgramOption*>::const_iterator hp = 
+      optionRegistry.find(optString);
+    return (hp != optionRegistry.end()) ? hp->second : 0;
   }
-  
 protected:
   //--------------------------------------------------------------------
   // Functions that must be overridden by the subclass.
@@ -135,7 +132,7 @@ protected:
   virtual void PrintUsage      (ostream& stream) const = 0;
   
 protected:
-  StringMap<ProgramOption*> optionRegistry;
+  hash_map<string, ProgramOption*> optionRegistry;
   int                  argc;
   const char**         argv;
   const char**         envp;
diff --git a/include/llvm/Support/StringUtils.h b/include/llvm/Support/StringUtils.h
deleted file mode 100644 (file)
index db42964..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-// $Id$ -*-c++-*-
-//***************************************************************************
-//
-// File:
-//     ProgramOptions.h
-//
-// Purpose:
-//     A representation of options for any program.
-//
-// History:
-//     08/08/95 - adve  - Created in the dHPF compiler
-//      10/10/96 - mpal, dbaker - converted to const member functions.
-//      10/19/96 - meven - slightly changed interface to accomodate 
-//                         arguments other than -X type options
-//     07/15/01 - vadve - Copied to LLVM system and modified
-//
-//**************************************************************************/
-
-#ifndef LLVM_SUPPORT_PROGRAMOPTIONS_h
-#define LLVM_SUPPORT_PROGRAMOPTIONS_h
-
-//************************** System Include Files **************************/
-
-#include <string>
-#include <hash_map>
-
-//*************************** User Include Files ***************************/
-
-#include "llvm/Support/Unique.h"
-class ProgramOption;
-
-//************************ Forward Declarations ****************************/
-
-//***************************** String Functions ****************************/
-
-struct eqstr
-{
-  bool operator()(const char* s1, const char* s2) const
-  {
-    return strcmp(s1, s2) == 0;
-  }
-};
-
-//***************************** String Classes *****************************/
-
-template <class DataType>
-class StringMap:
-  public hash_map<const char*, DataType, hash<const char*>, eqstr>
-{
-public:
-  typedef hash_map<const char*, DataType, hash<const char*>, eqstr>::iterator
-       iterator;
-  typedef hash_map<const char*, DataType, hash<const char*>, eqstr>::const_iterator
-       const_iterator;
-  
-public:
-  DataType*            query(const char* _key)
-  {
-    hash_map<const char*, DataType, hash<const char*>, eqstr>::iterator
-      hashPair = this->find(_key);
-    return (hashPair == this->end())? NULL : & (*hashPair).second;
-  }
-  
-  const DataType*      query(const char* _key) const
-  {
-    hash_map<const char*, DataType, hash<const char*>, eqstr>::const_iterator
-      hashPair = this->find(_key);
-    return (hashPair == this->end())? NULL : & (*hashPair).second;
-  }
-};
-
-//**************************************************************************/
-
-#endif
-