Bison takes as input a context-free grammar specification and produces a C-language function that recognizes correct instances of the grammar.
The Bison grammar input file conventionally has a name ending in `.y'.