public Func<NamedDataType, NamedDataType> VisitFunction(FunctionDeclarator function) { var fn = function.Declarator.Accept(this); return (nt) => { var parameters = function.Parameters .Select(p => ConvertParameter(p)) .ToArray(); // Special case for C, where foo(void) means a function with no parameters, // not a function with one parameter of type "void". if (FirstParameterVoid(parameters)) parameters = new Argument_v1[0]; Argument_v1 ret = null; if (nt.DataType != null) { ret = new Argument_v1 { Type = nt.DataType, }; } nt.DataType = new SerializedSignature { Convention = callingConvention != CTokenType.None ? callingConvention.ToString().ToLower() : null, ReturnValue = ret, Arguments = parameters.ToArray(), }; return fn(nt); }; }
public string VisitFunction(FunctionDeclarator function) { return(function.Declarator.Accept(this)); }