00001 #ifndef _NAMESPACE_H_ 00002 #define _NAMESPACE_H_ 00003 00004 #include "streenode.h" 00005 #include <list> 00006 #include <set> 00007 00008 #define ATTRIBUTETRUE "YES" 00009 00011 class NameSpace{ 00012 public: 00014 typedef map<const string, string> Attributes; 00016 typedef map<const string, Attributes> NameAttributesMap; 00017 private: 00018 00020 NameSpace *superNameSpace; 00022 NameAttributesMap info; 00024 int ruleRunTime; 00025 00026 public: 00028 NameSpace(); 00030 NameSpace(NameSpace *isuperNameSpace); 00031 00033 void ruleRunTimeStep(); 00035 int getRuleRunTime() const; 00037 void setRuleRunTime(int iruleRunTime); 00038 00040 bool isAttributeSet(const string &name, const string &attribute, const bool global) const; 00042 bool isAttributeEqual(const string &name, const string &attribute, const string &value, const bool global) const; 00044 string getAttributeValue(const string &name, const string &attribute, const bool global) const; 00046 void setAttribute(const string &name, const string &attribute, const bool global); 00048 void setAttributeValue(const string &name, const string &attribute, const string &value, const bool global); 00050 void processArguments(const Node* arguments); 00052 void importLocals(const string& name, const NameSpace &nameSpace); 00053 }; 00054 00055 #endif