コード例 #1
0
ファイル: Translate.cs プロジェクト: signingoff/Naive-Tiger
            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))))))));
                }
            }