public override void Generate(int b, int a)
        {
            int label = NewLabel();

            ex.Jump(0, a);
            EmitLabel(label);
            st.Generate(label, a);
        }
        public override void Generate(int b, int a)
        {
            After = a;
            int label = NewLabel();

            st.Generate(b, label);
            EmitLabel(label);
            ex.Jump(b, 0);
        }
Example #3
0
        public override void Generate(int b, int a)
        {
            After = a;                // save label a
            expr.Jump(0, a);
            int label = NewLabel();   // label for stmt

            EmitLabel(label);
            stmt.Generate(label, b);
            EmitStatement("goto L" + b);
        }
Example #4
0
        public override void Generate(int b, int a)
        {
            int label1 = NewLabel();
            int label2 = NewLabel();

            ex.Jump(0, label2);
            EmitLabel(label1);
            st1.Generate(label1, a);
            EmitStatement("Goto L" + a);
            EmitLabel(label2);
            st2.Generate(label2, a);
        }