practice repo for crafting a compiler