IR The idea - make a smaller step from AST to IR and not directly 3-addr code because that would be somewhat chaotic, etc. ast2IR function is the heart, walks tree, and for example: switch (type) ... case INC_OP: /* ++ operator */ if (left) return genIRpostinc(left) else return genIRpreinc(right)