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