public void Visit(EqualsOperator equals)
        {
            equals.Left.Accept(this);
            var leftOperand = tacs.Last().Result;

            equals.Right.Accept(this);
            var rightOperand = tacs.Last().Result;
            var result       = MakeNewTemp();
            var label1       = MakeNewLabel();
            var label2       = MakeNewLabel();

            tacs.Add(Tac.IfEqual(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));
        }