Esempio n. 1
0
 internal void AddYieldTarget(YieldTarget target)
 {
     if (yieldTargets == null)
         yieldTargets = new List<YieldTarget>();
     yieldTargets.Add(target);
 }
Esempio n. 2
0
        internal void AddFinallyYieldTarget(YieldTarget target)
        {
            if (finallyYieldTargets == null)
                finallyYieldTargets = new List<YieldTarget>();

            finallyYieldTargets.Add(target);
        }
Esempio n. 3
0
 internal void AddTryYieldTarget(YieldTarget target)
 {
     if (tryYieldTargets == null)
         tryYieldTargets = new List<YieldTarget>();
     tryYieldTargets.Add(target);
 }
Esempio n. 4
0
        internal void AddElseYieldTarget(YieldTarget target)
        {
            if (elseYieldTargets == null)
                elseYieldTargets = new List<YieldTarget>();

            elseYieldTargets.Add(target);
        }
Esempio n. 5
0
        internal void AddCatchYieldTarget(YieldTarget target)
        {
            if (catchYieldTargets == null)
                catchYieldTargets = new List<YieldTarget>();

            catchYieldTargets.Add(target);
        }
Esempio n. 6
0
 public override void AddYieldTarget(YieldStatement ys, YieldTarget yt, CodeGen cg)
 {
     stmt.AddYieldTarget(yt.FixForTryCatchFinally(cg));
     ys.Label = yt.YieldContinuationTarget;
 }
Esempio n. 7
0
            public override void AddYieldTarget(YieldStatement ys, YieldTarget yt, CodeGen cg)
            {
                switch (state) {
                    case State.Try:
                        if (isPython24TryFinallyStmt)
                            cg.Context.AddError("cannot yield from try block with finally", ys);
                        else
                            stmt.AddTryYieldTarget(yt.FixForTryCatchFinally(cg));
                        break;
                    case State.Handler:
                        stmt.AddCatchYieldTarget(yt.FixForTryCatchFinally(cg));
                        break;
                    case State.Finally:
                        stmt.AddFinallyYieldTarget(yt.FixForTryCatchFinally(cg));
                        break;
                    case State.Else:
                        stmt.AddElseYieldTarget(yt.FixForTryCatchFinally(cg));
                        break;

                }
                ys.Label = yt.YieldContinuationTarget;
            }
Esempio n. 8
0
 public abstract void AddYieldTarget(YieldStatement ys, YieldTarget yt, CodeGen cg);