def to_bytes(self, previous: bytes):
<EOL>if len(self.conditions) != len(self.body):<EOL><INDENT>raise exc.CompileError("<STR_LIT>")<EOL><DEDENT>bc = b"<STR_LIT>"<EOL>prev_len = len(previous)<EOL>for condition, body in zip(self.conditions, self.body):<EOL><INDENT>cond_bytecode = condition.to_bytecode(previous)<EOL>bc += cond_bytecode<EOL>body_bc = compiler.compile_bytecode(body)<EOL>bdyl = len(body_bc)<EOL>gen_len = prev_len + len(cond_bytecode) + bdyl + <NUM_LIT:1><EOL>bc += generate_simple_call(tokens.POP_JUMP_IF_FALSE, gen_len)<EOL>bc += body_bc<EOL>prev_len = len(previous) + len(bc)<EOL><DEDENT>return bc<EOL>
Complex code ahead. Comments have been added in as needed.