trying to write a crappy compiler for practice