00001
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef FAUDES_SYMBOLSET_H
00027
00028 #include "definitions.h"
00029 #include "attributes.h"
00030 #include "symboltable.h"
00031 #include "baseset.h"
00032 #include <set>
00033 #include <map>
00034 #include <algorithm>
00035
00036 namespace faudes {
00037
00068 class SymbolSet : public TBaseSet<std::string> {
00069
00070
00071 public:
00072
00076 SymbolSet(void);
00077
00081 SymbolSet(const TBaseSet<std::string>& rOtherSet);
00082
00096 SymbolSet(const std::string& rFilename, const std::string& rLabel = "SymbolSet");
00097
00101 virtual ~SymbolSet(void) {};
00102
00110 bool Valid(const std::string& symbol) const;
00111
00115 typedef TBaseSet<std::string>::Iterator Iterator;
00116
00125 bool Insert(const std::string& symbol);
00126
00134 Idx Signature(void) const {return 0;};
00135
00145 std::string Str(const std::string& symbol) const {return symbol; };
00146
00147 protected:
00148
00162 void DoWrite(TokenWriter& tw, const std::string& rLabel="", const Type* pContext=0) const;
00163
00178 void DoRead(TokenReader& rTr, const std::string& rLabel = "", const Type* pContext=0);
00179
00180
00181 };
00182
00183
00187 }
00188
00189 #define FAUDES_SYMBOLSET_H
00190 #endif