if <expr> then <stmt> --> {
require_boolean_type(<expr>.type);
generate_code(
test <expr>.code
branch_to_label_if_zero AFTER
<stmt>.code
AFTER:)
}
(a+b)*(c-d) --> ab+cd-*
T1 := a + b T2 := c - d T3 := T1 * T2