В вашем .y файле вы можете сделать что-то вроде:
%{
#include "types.h"
#include "interface.h"
void doStuff(void);
%}
Либо #include
файл заголовка, либо его объявление прямо здесь.
Это означает, что если interface.h объявил функции add_colour
и add_colourd
, вы могли бы сделать что-то подобное позже:
Colour:
ColourSpace { add_colour($1); }
| STAR ColourSpace { add_colourd($2); }
звонит им по вашему сгенерированному коду.
Если вы хотите внедрить их в этот сгенерированный код, вы можете использовать %%
в конце файла и сделать что-то вроде:
%%
void doStuff() {
// Do some stuff!
}
Таким образом, вы можете написать "обычный старый C" внутри вашего .y файла.