title: Sharing memory among YACC, Lex, and C files
body: <p>I have a YACC (Bison) grammar, a Lex (Flex) tokenizer, and a C program among which I need to share a <code>struct</code> (or really any variable). Currently, I declare the actual object in the grammar file and <code>extern</code> it wherever I need it (which is to say, my C source file), usually using a pointer to manipulate it. I have a shared header (and implementation) file between the C file and the grammar file with functions useful for manipulating my data structure. This works, but it feels a little uncomfortable. Is there a better way to share memory between the grammar and program?</p>