コード例 #1
0
        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());
        }
コード例 #2
0
        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);
        }