public override void Visit(FunctionDeclaration functionDeclaration) { if (typeof(T) == typeof(FunctionDeclaration)) { mCollectedNodes.Add(functionDeclaration as T); } base.Visit(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))); } 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); }