If I understood your problem correctly, your program needs to check many return types and parameters like char, int, float, long, double, struct, pointers to different data types, etc. To get some idea about implementation of the program, you may need to see the implementation of different standard functions in C, which return different data types or pointers to different data types. One such function can be "malloc" function, which can return pointers to different data types after typecast is done. Similarly, for a function that can take many number of parameters, you can go through the implementation of "printf" and "scanf" functions. Personally, I have never written a program to check the syntax of a function declaration.