public void Visit(LessThanOperator lessThan) { lessThan.Left.Accept(this); var leftOperand = tacs.Last().Result; lessThan.Right.Accept(this); var rightOperand = tacs.Last().Result; var result = MakeNewTemp(); var label1 = MakeNewLabel(); var label2 = MakeNewLabel(); tacs.Add(Tac.IfLessThan(leftOperand, rightOperand, label1)); tacs.Add(Tac.Assign("0", result)); tacs.Add(Tac.Goto(label2)); tacs.Add(Tac.Label(label1, result)); tacs.Add(Tac.Assign("1", result)); tacs.Add(Tac.Label(label2, result)); }