Using CMake commands such as add_custom_command in conjunction with add_custom_target, it should be relatively straightforward to emit the generated grammar file as part of the build, with the token/bnf files as dependencies. This way, they would not need to be checked in and remove a source of possible error with the source files going out of sync with the generated files. More importantly, this change would make grammar changes easier to review.