the start of a compiler (may never get finished)