write your own toy compiler