add code generation: binary, assignment, array lookup