Intermediate code generation