예제 #1
0
 public override object VisitCFGCaseBlock(CaseBlock x)
 {
     return(x.Update(
                x.CaseValue,             // TODO: Visit also the expressions
                VisitList(x.Statements),
                AcceptEdge(x, x.NextEdge)));
 }
예제 #2
0
 public sealed override object VisitCFGCaseBlock(CaseBlock x)
 {
     if (IsExplored(x))
     {
         return(x);
     }
     else
     {
         x.Tag = ExploredColor;
         return(MapIfUpdated(x, OnVisitCFGCaseBlock(x)));
     }
 }
예제 #3
0
        public virtual void VisitCFGCaseBlock(CaseBlock x)
        {
            if (!x.CaseValue.IsOnlyBoundElement)
            {
                x.CaseValue.PreBoundStatements.ForEach(Accept);
            }
            if (!x.CaseValue.IsEmpty)
            {
                Accept(x.CaseValue.BoundElement);
            }

            VisitCFGBlockInternal(x);
        }
예제 #4
0
        public virtual void VisitCFGCaseBlock(CaseBlock x)
        {
            if (!x.CaseValue.IsOnlyBoundElement)
            {
                VisitCFGBlock(x.CaseValue.PreBoundBlockFirst);
            }
            if (!x.CaseValue.IsEmpty)
            {
                Accept(x.CaseValue.BoundElement);
            }

            VisitCFGBlockInternal(x);
        }
예제 #5
0
 public virtual void VisitCFGCaseBlock(CaseBlock x)
 {
     Accept(x.CaseValue);
     VisitCFGBlockInternal(x);
 }
예제 #6
0
 public sealed override object VisitCFGCaseBlock(CaseBlock x) => Repair(x);
예제 #7
0
 public virtual CaseBlock OnVisitCFGCaseBlock(CaseBlock x) => (CaseBlock)base.VisitCFGCaseBlock(x);
예제 #8
0
 public virtual TResult VisitCFGCaseBlock(CaseBlock x) => DefaultVisitBlock(x);