Outputting the xml declaration and <BookCatalogue> in YYINITIAL
Before we read the first Title we want to output the xml declaration and <BookCatalogue>. Then we want to transition to the TITLE state.
However, JFlex operates by reading input then doing an action. That is, it doesn't do an action until it has consumed input.
But we don't want to read any input. We simply want to output the xml declaration and <BookCatalogue>, and then transition to the TITLE state. What do we do?
Answer: read a single character, then do the action (output the xml declaration and <BookCatalogue>), then push the character back onto the input stream, and then transition to the TITLE state.