It's possible for translator understand headers and macros and generate bindings for them. Even for function macros. For example, GNAT has macro binding although it's not
complete.
Btw. There is nothing "pet" in X to C translators. You pay good money for a good Ada to C compiler.
Not an ideal situation, for sure, but a real one.