00001 // AUTOMATICALLY GENERATED -- DO NOT EDIT! -*- c++ -*- 00002 00003 #ifndef mangle_h 00004 #define mangle_h 00005 00006 #include <string> 00007 #include <deque> 00008 #include "hash-aux.h" 00009 00010 // 00011 // INTERFACE definition follows 00012 // 00013 00014 00015 class Abstract_scope; 00016 class Ptree; 00017 00029 class Mangle 00030 { 00031 typedef std::hash_map<void*,std::string> Bind_map; 00032 typedef std::deque<std::string> Scopes; 00033 00034 Scopes _scope; 00035 Bind_map _map; 00036 std::string _current_scope; 00037 Abstract_scope* _env; 00038 00039 public: 00040 Mangle(); 00041 00042 void enter_scope(const std::string& scopename, char symprefix); 00043 00044 void leave_scope(); 00045 00046 std::string& insert(/*const*/ Ptree& name, 00047 char symprefix); 00048 00049 bool lookup_global_name(/*const*/ Ptree& name, 00050 std::string* out_global_name); 00051 00052 private: 00053 std::string current_scope(); 00054 }; 00055 00056 #endif // mangle_h