Exemple #1
0
        public override void Visit(FunctionDeclaration functionDeclaration)
        {
            if (typeof(T) == typeof(FunctionDeclaration))
            {
                mCollectedNodes.Add(functionDeclaration as T);
            }

            base.Visit(functionDeclaration);
        }
Exemple #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);
        }