Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

ForeignVariableScope.h

00001 // See the file LICENSE in the some directory as this file for legal
00002 // notices about this software.
00003 #ifndef DEV_W3_ORG__2001_BLINDFOLD_SRC_FOREIGNVARIABLESCOPE_H
00004 #define DEV_W3_ORG__2001_BLINDFOLD_SRC_FOREIGNVARIABLESCOPE_H
00005 // $Id: ForeignVariableScope_8h-source.html,v 1.2 2001/10/10 20:40:58 sandro Exp $
00006 #include "config.h"
00007 #include "VariableScope.h"
00008 
00016 class ForeignVariableScope : public VariableScope {
00017 public:
00018 
00019     // STANDARD MEMBER FUNCTIONS
00020     ForeignVariableScope();
00021     ForeignVariableScope(VariableScope* mbase);
00022     ForeignVariableScope(const ForeignVariableScope& other);
00023     const ForeignVariableScope& operator=(const ForeignVariableScope& other);
00024     bool operator==(const ForeignVariableScope& other) const;
00025     bool operator<(const ForeignVariableScope& other) const;
00026     size_t hash() const;
00027     friend std::ostream& operator<<(std::ostream& s, const ForeignVariableScope& me);
00028     virtual std::ostream& print_to(std::ostream& stream) const; 
00029     ~ForeignVariableScope();       
00030 
00031     // (RE)IMPLEMENTATION OF INHERITED MEMBERS
00032     virtual size_t getNumVars() const;
00033     virtual Symbol getVar(size_t index) const;
00034     virtual Symbol getVar(const char* name, bool* added_ptr=0);
00035     virtual size_t getVarIndex(const char* name);
00036     virtual bool contains(const Triple& t) const;
00037 
00038     // CLASS-SPECIFIC PUBLIC INTERFACE
00039 
00040 private:
00041     VariableScope* mbase;
00042     typedef std::hash_map<std::string, std::string> Map;
00043     Map map;
00044 
00045     const char* translate(const char* name);
00046 };     
00047 
00048 STANDARD_EXTERNAL(ForeignVariableScope)
00049 
00050 #endif  /* DEV_W3_ORG__2001_BLINDFOLD_SRC_FOREIGNVARIABLESCOPE_H */   // -*-C++-*-

Home to blindfold. This page generated via doxygen 1.2.11.1 Wed Oct 10 16:40:33 2001.