private void ResolveFnName(Lexeme nameToken, IList <FnDecl> list) { if (Fns.ContainsKey(nameToken.Value)) { foreach (var fn in Fns[nameToken.Value]) { list.Add(fn); } } Parent?.ResolveFnName(nameToken, list); }
public void AddFn(Lexeme nameToken, FnDecl node, ErrorHandler errorHandler) { string fnName = nameToken.Value; if (!Fns.ContainsKey(fnName)) { Fns.Add(fnName, new List <FnDecl>()); } if (Fns[fnName].Any(fn => fn.Signature == node.Signature)) { errorHandler.AddMessage(Severity.Error, $"A function overload with the same signature already exists", nameToken); } Fns[fnName].Add(node); }