public bool TryGetSubrutine(string name, int argumentCount, out SubrutineDefinition definition) => subrutines.TryGetValue(GetSubrutineKey(name, argumentCount), out definition);
private string GetSubrutineKey(SubrutineDefinition definition) { var paramCount = definition.Syntax.parameters()?.parameterName()?.Length ?? 0; return(GetSubrutineKey(definition.Name, paramCount)); }
public void Add(SubrutineDefinition subrutineDef) { subrutineNames.Add(subrutineDef.Name); subrutines[GetSubrutineKey(subrutineDef)] = subrutineDef; }