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; }
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(); }
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; }