Implement parser(done) and expr compiler(undone)