public MarkupBuilder MakeFunctionLabel(DeltinScript deltinScript, CodeType type, string name, IParameterLike[] parameters, AnonymousType[] typeArgs) { var builder = new MarkupBuilder().StartCodeLine(); if (IncludeReturnType) { builder.Add(AnonymousLabelInfo.NameFromSolver(deltinScript, type) + " "); } builder.Add(name); if (typeArgs.Length != 0) { builder.Add("<" + string.Join(", ", typeArgs.Select(typeArg => typeArg.GetDeclarationName())) + ">"); } builder.Add("("); for (int i = 0; i < parameters.Length; i++) { if (i != 0) { builder.Add(", "); } builder.Add(parameters[i].GetLabel(deltinScript, AnonymousLabelInfo)); } return(builder.Add(")").EndCodeLine()); }
public string GetLabel(DeltinScript deltinScript, AnonymousLabelInfo labelInfo) { string result = string.Empty; if (Attributes.Ref) { result = "ref "; } else if (Attributes.In) { result = "in "; } result += labelInfo.NameFromSolver(deltinScript, _type) + " " + Name; if (DefaultValue != null) { result = "[" + result + "]"; } return(result); }