private static XElement GenerateFunctionAutoComplete(FlowScriptModuleFunction function)
        {
            var root     = new XElement("KeyWord", new XAttribute("name", function.Name), new XAttribute("func", "yes"));
            var overload = new XElement("Overload", new XAttribute("retVal", function.ReturnType), new XAttribute("descr", function.Description));

            root.Add(overload);

            foreach (var parameter in function.Parameters)
            {
                overload.Add(new XElement("Param", new XAttribute("name", $"{parameter.Type} {parameter.Name}")));
            }

            return(root);
        }
示例#2
0
        public static FunctionDeclaration FromLibraryFunction(FlowScriptModuleFunction libraryFunction)
        {
            var functionParameters = new List <Parameter>();

            foreach (var libraryFunctionParameter in libraryFunction.Parameters)
            {
                functionParameters.Add(new Parameter(
                                           ParameterModifier.None,
                                           new TypeIdentifier(libraryFunctionParameter.Type),
                                           new Identifier(libraryFunctionParameter.Name)));
            }

            var functionDeclaration = new FunctionDeclaration(
                new IntLiteral(libraryFunction.Index),
                new TypeIdentifier(libraryFunction.ReturnType),
                new Identifier(libraryFunction.Name),
                functionParameters);

            return(functionDeclaration);
        }
        public static FunctionDeclaration FromLibraryFunction(FlowScriptModuleFunction libraryFunction)
        {
            var functionParameters = new List <Parameter>();

            foreach (var libraryFunctionParameter in libraryFunction.Parameters)
            {
                functionParameters.Add(new Parameter(
                                           ParameterModifier.None,
                                           new TypeIdentifier(libraryFunctionParameter.Type),
                                           new Identifier(libraryFunctionParameter.Name),
                                           !string.IsNullOrWhiteSpace(libraryFunctionParameter.DefaultValue) ?
                                           Expression.FromText(libraryFunctionParameter.DefaultValue) : null));
            }

            var functionDeclaration = new FunctionDeclaration(
                new IntLiteral(libraryFunction.Index),
                new TypeIdentifier(libraryFunction.ReturnType),
                new Identifier(libraryFunction.Name),
                functionParameters);

            return(functionDeclaration);
        }