00001
00002
00003 #ifndef DEV_W3_ORG__2001_BLINDFOLD_SRC_VARIABLESCOPE_H
00004 #define DEV_W3_ORG__2001_BLINDFOLD_SRC_VARIABLESCOPE_H
00005
00006 #include "config.h"
00007 class Symbol;
00008 #include "Triple.h"
00009
00013 class VariableScope {
00014
00015 public:
00016
00017
00018 VariableScope();
00019 VariableScope(const VariableScope& other);
00020 const VariableScope& operator=(const VariableScope& other);
00021 bool operator==(const VariableScope& other) const;
00022 bool operator<(const VariableScope& other) const;
00023 size_t hash() const;
00024 friend std::ostream& operator<<(std::ostream& s, const VariableScope& me);
00025 virtual std::ostream& print_to(std::ostream& stream) const = 0;
00026 virtual ~VariableScope();
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00041 virtual size_t getNumVars() const { NOT_IMPLEMENTED }
00045 virtual Symbol getVar(size_t index) const { NOT_IMPLEMENTED }
00049 virtual Symbol getVar(const char* name, bool* added_ptr=0) { NOT_IMPLEMENTED }
00054 virtual size_t getVarIndex(const char* name) { NOT_IMPLEMENTED }
00055
00058 virtual bool contains(const Triple& t) const { NOT_IMPLEMENTED }
00059
00060 private:
00061
00062 };
00063
00064 STANDARD_EXTERNAL(VariableScope)
00065
00066 #endif
00067