Have you wrapped the header with an extern "C"...?
My (admittedly limited) understanding of C++ is that it mangles all function names, even those that are not overloaded. So you need to explicitly tell it that the code uses C linkage (non-mangled). I.e. put a
Code:
#ifdef __cplusplus
extern "C" {
#endif
at the top of the header, and a corresponding
Code:
#ifdef __cplusplus
}
#endif
at the bottom.
Of course, you'll want to put this in the .y file really, but I'm not familiar with yacc syntax, can you specify code that goes in the header? If not, just write a script that puts it in after running yacc.