PRE: code generation