Intermediate code generation Part 3