public override Stm UnNx() { Label join = new Label(); Label t = new Label(); Label f = new Label(); if (Else == null) { return(new SEQ(Test.UnCx(t, join), new SEQ(new LABEL(t), new SEQ(Then.UnNx(), new LABEL(join))))); } else { return(new SEQ(Test.UnCx(t, f), new SEQ(new LABEL(t), new SEQ(Then.UnNx(), new SEQ(new JUMP(join), new SEQ(new LABEL(f), new SEQ(Else.UnNx(), new LABEL(join)))))))); } }