summaryrefslogtreecommitdiff
path: root/src/cli/runtime/Namespace.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli/runtime/Namespace.cs')
-rw-r--r--src/cli/runtime/Namespace.cs38
1 files changed, 8 insertions, 30 deletions
diff --git a/src/cli/runtime/Namespace.cs b/src/cli/runtime/Namespace.cs
index 0a4acdf6..a78b0ed1 100644
--- a/src/cli/runtime/Namespace.cs
+++ b/src/cli/runtime/Namespace.cs
@@ -26,26 +26,11 @@ static public HybridDictionary table = new HybridDictionary();
/**
* String->Symbol
- */
-public HybridDictionary symbols = new HybridDictionary();
+ */
+public HybridDictionary vars = new HybridDictionary();
+public HybridDictionary accessors = new HybridDictionary();
public String name;
-static public Namespace globalNS = new Namespace("");
-static public Namespace keywordNS = new KeywordNamespace("keyword");
-
-class KeywordNamespace : Namespace{
- public KeywordNamespace(String name) : base(name)
- {
-
- }
- override public Symbol intern(String name)
- {
- Symbol sym = (Symbol) symbols[name];
- if(sym == null)
- symbols.Add(name, sym = new Keyword(name, this));
- return sym;
- }
-};
Namespace(String name)
{
@@ -67,17 +52,10 @@ static public Namespace findOrCreate(String name)
ns = new Namespace(name);
return ns;
}
- }
-
-virtual public Symbol intern(String name)
- {
- lock(symbols)
- {
- Symbol sym = (Symbol) symbols[name];
- if(sym == null)
- symbols.Add(name, sym = new Symbol(name, this));
- return sym;
- }
- }
+ }
+
+public Var internVar(String name) { lock(vars) { Var var = (Var) vars[name]; if(var == null) vars.Add(name,var = new Var(name, this)); return var; } }
+
+public Accessor internAccessor(String name) { lock(accessors) { Accessor acc = (Accessor) accessors[name]; if(acc == null) accessors.Add(name, acc = new Accessor(name, this)); return acc; } }
}
}