I don’t know how you’ve set up your flex/bison interface, but I’m guessing from your quoting that you have flex return each character as a token? Can you special-case 0 to not have the token value 0? That is, flex does this:
\x00 { return ZERO; } And then in your grammar: %token ZERO and use ZERO instead of ‘\x00’? (Note: typed this on a phone..not 100% sure the syntax is right.) -Chris > On Mar 30, 2021, at 12:37 PM, Stephen Taylor via Users list for the GNU Bison > parser generator <help-bison@gnu.org> wrote: > > I am trying to parse binary files and obviously need to write rules that > include the 8-bit value 0x00 — flex appears to allow me to obtain an 8-bit > scanner using the -8 option. I seem to be able to use ‘\x01’ to ‘\xFF’ for > individual terminal symbols in Bison rules. Unfortunately, ‘\x00’ is used to > denote end of input. Looking at the output tables, there appears to be no > real reason to do this (other than convenience) and I am wondering if anyone > has a workaround? > Thanks ! > Steve > > > >