When harec's exit code is non-zero, it indicates the stage at which compilation
failed. This is used pretty much exclusively in tests.

0 - success
1 - misc user-caused error (e.g. invalid arguments or unset typedef variables)
2 - lexing error
3 - parsing error
4 - checking error
255 - misc abnormal error (e.g. I/O error)
