Intermediate code generation Part 4