stanford-compilers TODO: finish semant - elaborate before typechecking TODO: come up with IL, translation and optimization TODO: regalloc, codegen