Exemplo n.º 1
0
 internal OverLoadChain(Scope scope, OverLoadChain parent, IReadOnlyList<OverLoadChain> inherits, params OverLoadSet[] sets)
 {
     if (scope == null)
     {
         throw new ArgumentNullException("current");
     }
     ThisScope = scope;
     Parent = parent;
     Inherits = inherits;
     Sets = sets;
 }
Exemplo n.º 2
0
 public Root()
 {
     Name = "global";
     EmbedList = new NameSpaceSymbol();
     MessageManager = new CompileMessageManager();
     SimplexManager = new OverLoadSimplexManager();
     ClassManager = new ClassTemplateInstanceManager();
     RoutineManager = new RoutineTemplateInstanceManager();
     ConvManager = new ConversionManager(this);
     OpManager = new OperationManager(this);
     UndefinedOverLord = new OverLoadChain(this, null);
     AppendChild(EmbedList);
     AppendChild(ClassManager);
     AppendChild(RoutineManager);
     CreateEmbedIdentifier();
 }
Exemplo n.º 3
0
 internal virtual OverLoadChain NameResolution(string name)
 {
     if(ReferenceCache.ContainsKey(name))
     {
         return ReferenceCache[name];
     }
     var n = CurrentScope.NameResolution(name);
     if(ChildSymbols.ContainsKey(name))
     {
         var s = ChildSymbols[name];
         n = new OverLoadChain(this, n, s);
     }
     ReferenceCache.Add(name, n);
     return n;
 }