For the bootstrap c lexer and parser was hand rolling really necessary? Lex and yacc exist for a reason