#include <isl/stream.h> #define xCAT(A,B) … #define CAT(A,B) … #undef TYPE #define TYPE … #define xFN(TYPE,NAME) … #define FN(TYPE,NAME) … /* Read an object of type TYPE from "s", where the object may * either be specified directly or as a string. * * First check if the next token in "s" is a string. If so, try and * extract the object from the string. * Otherwise, try and read the object directly from "s". */ static __isl_give TYPE *FN(read,BASE)(__isl_keep isl_stream *s) { … }