コード例 #1
0
 public override void Visit(IDoUntilStatement doUntilStatement)
 {
     if (Process(doUntilStatement))
     {
         visitor.Visit(doUntilStatement);
     }
     base.Visit(doUntilStatement);
 }
コード例 #2
0
ファイル: StatementSourceEmitter.cs プロジェクト: xornand/cci
 public override void TraverseChildren(IDoUntilStatement doUntilStatement)
 {
     base.TraverseChildren(doUntilStatement);
 }
コード例 #3
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 public void Visit(IDoUntilStatement doUntilStatement)
 {
     Contract.Requires(doUntilStatement != null);
       throw new NotImplementedException();
 }
コード例 #4
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 public void Visit(IDoUntilStatement doUntilStatement)
 {
     this.traverser.Traverse(doUntilStatement);
 }
コード例 #5
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 /// <summary>
 /// Traverses the do until statement.
 /// </summary>
 public void Traverse(IDoUntilStatement doUntilStatement)
 {
     Contract.Requires(doUntilStatement != null);
       if (this.preorderVisitor != null) this.preorderVisitor.Visit(doUntilStatement);
       if (this.StopTraversal) return;
       this.TraverseChildren(doUntilStatement);
       if (this.StopTraversal) return;
       if (this.postorderVisitor != null) this.postorderVisitor.Visit(doUntilStatement);
 }
コード例 #6
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 //^ ensures this.path.Count == old(this.path.Count);
 /// <summary>
 /// Traverses the given do until statement.
 /// </summary>
 /// <param name="doUntilStatement"></param>
 public virtual void Visit(IDoUntilStatement doUntilStatement)
 {
     if (this.stopTraversal) return;
       //^ int oldCount = this.path.Count;
       this.path.Push(doUntilStatement);
       this.Visit(doUntilStatement.Body);
       this.Visit(doUntilStatement.Condition);
       //^ assume this.path.Count == oldCount+1; //True because all of the virtual methods of this class promise not decrease this.path.Count.
       this.path.Pop();
 }
コード例 #7
0
 public virtual void onASTElement(IDoUntilStatement doUntilStatement)
 {
 }
コード例 #8
0
ファイル: Copier.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Returns a shallow copy of the given do until statement.
 /// </summary>
 /// <param name="doUntilStatement"></param>
 public DoUntilStatement Copy(IDoUntilStatement doUntilStatement)
 {
     return new DoUntilStatement(doUntilStatement);
 }
コード例 #9
0
 public override void Visit(IDoUntilStatement doUntilStatement)
 {
     allElements.Add(new InvokInfo(Traverser, "IDoUntilStatement", doUntilStatement));
 }
コード例 #10
0
ファイル: Visitor.cs プロジェクト: riverar/devtools
        /// <summary>
        /// Generates IL for the specified do until statement.
        /// </summary>
        /// <param name="doUntilStatement">The do until statement.</param>
        public override void TraverseChildren(IDoUntilStatement doUntilStatement)
        {
            ILGeneratorLabel savedCurrentBreakTarget = this.currentBreakTarget;
              ILGeneratorLabel savedCurrentContinueTarget = this.currentContinueTarget;
              this.currentBreakTarget = new ILGeneratorLabel();
              this.currentContinueTarget = new ILGeneratorLabel();
              if (this.currentTryCatch != null) {
            this.mostNestedTryCatchFor.Add(this.currentBreakTarget, this.currentTryCatch);
            this.mostNestedTryCatchFor.Add(this.currentContinueTarget, this.currentTryCatch);
              }

              this.generator.MarkLabel(this.currentContinueTarget);
              this.Traverse(doUntilStatement.Body);
              this.EmitSequencePoint(doUntilStatement.Condition.Locations);
              this.VisitBranchIfFalse(doUntilStatement.Condition, this.currentContinueTarget);
              this.generator.MarkLabel(this.currentBreakTarget);

              this.currentBreakTarget = savedCurrentBreakTarget;
              this.currentContinueTarget = savedCurrentContinueTarget;
              this.lastStatementWasUnconditionalTransfer = false;
        }
コード例 #11
0
 public override void Visit(IDoUntilStatement doUntilStatement)
 {
     if(Process(doUntilStatement)){visitor.Visit(doUntilStatement);}
     base.Visit(doUntilStatement);
 }
コード例 #12
0
 public override void TraverseChildren(IDoUntilStatement doUntilStatement) {
   throw new TranslationException("DoUntil statements are not handled");
 }
コード例 #13
0
ファイル: Mutator.cs プロジェクト: riverar/devtools
 public void Visit(IDoUntilStatement doUntilStatement)
 {
     this.result = this.rewriter.Rewrite(doUntilStatement);
 }
コード例 #14
0
ファイル: Mutator.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Rewrites the given do until statement.
 /// </summary>
 /// <param name="doUntilStatement"></param>
 public virtual IStatement Rewrite(IDoUntilStatement doUntilStatement)
 {
     var mutableDoUntilStatement = doUntilStatement as DoUntilStatement;
       if (mutableDoUntilStatement == null) return doUntilStatement;
       this.RewriteChildren(mutableDoUntilStatement);
       return mutableDoUntilStatement;
 }
コード例 #15
0
 public virtual void onASTElement(IDoUntilStatement doUntilStatement) { }
コード例 #16
0
ファイル: Mutator.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Visits the specified do until statement.
 /// </summary>
 /// <param name="doUntilStatement">The do until statement.</param>
 public override void Visit(IDoUntilStatement doUntilStatement)
 {
     DoUntilStatement mutableDoUntilStatement = doUntilStatement as DoUntilStatement;
     if (alwaysMakeACopy || mutableDoUntilStatement == null) mutableDoUntilStatement = new DoUntilStatement(doUntilStatement);
     this.resultStatement = this.myCodeMutator.Visit(mutableDoUntilStatement);
 }
コード例 #17
0
 /// <summary>
 /// Rewrites the given do until statement.
 /// </summary>
 /// <param name="doUntilStatement"></param>
 public virtual IStatement Rewrite(IDoUntilStatement doUntilStatement)
 {
     return doUntilStatement;
 }
コード例 #18
0
ファイル: Copier.cs プロジェクト: riverar/devtools
 public void Visit(IDoUntilStatement doUntilStatement)
 {
     this.result = this.copier.Copy(doUntilStatement);
 }
コード例 #19
0
 public override void TraverseChildren(IDoUntilStatement doUntilStatement)
 {
     throw new TranslationException("DoUntil statements are not handled");
 }
コード例 #20
0
        public override void TraverseChildren(IDoUntilStatement doUntilStatement)
{ MethodEnter(doUntilStatement);
            base.TraverseChildren(doUntilStatement);
     MethodExit();   }
コード例 #21
0
ファイル: Copier.cs プロジェクト: Refresh06/visualmutator
    /// <summary>
    /// Returns a deep copy of the given do until statement.
    /// </summary>
    /// <param name="doUntilStatement"></param>
    public DoUntilStatement Copy(IDoUntilStatement doUntilStatement) {
      Contract.Requires(doUntilStatement != null);
      Contract.Ensures(Contract.Result<DoUntilStatement>() != null);

      var mutableCopy = this.shallowCopier.Copy(doUntilStatement);
      mutableCopy.Body = this.Copy(mutableCopy.Body);
      mutableCopy.Condition = this.Copy(mutableCopy.Condition);
      return mutableCopy;
    }
コード例 #22
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 /// <summary>
 /// Performs some computation with the given do until statement.
 /// </summary>
 /// <param name="doUntilStatement"></param>
 public virtual void Visit(IDoUntilStatement doUntilStatement)
 {
 }
コード例 #23
0
ファイル: Copier.cs プロジェクト: Refresh06/visualmutator
    /// <summary>
    /// Returns a shallow copy of the given do until statement.
    /// </summary>
    /// <param name="doUntilStatement"></param>
    public DoUntilStatement Copy(IDoUntilStatement doUntilStatement) {
      Contract.Requires(doUntilStatement != null);
      Contract.Ensures(Contract.Result<DoUntilStatement>() != null);

      return new DoUntilStatement(doUntilStatement);
    }
コード例 #24
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 /// <summary>
 /// Traverses the children of the do until statement.
 /// </summary>
 public virtual void TraverseChildren(IDoUntilStatement doUntilStatement)
 {
     Contract.Requires(doUntilStatement != null);
       this.TraverseChildren((IStatement)doUntilStatement);
       if (this.StopTraversal) return;
       this.Traverse(doUntilStatement.Body);
       if (this.StopTraversal) return;
       this.Traverse(doUntilStatement.Condition);
 }
コード例 #25
0
 /// <summary>
 /// Performs some computation with the given do until statement.
 /// </summary>
 /// <param name="doUntilStatement"></param>
 public virtual void Visit(IDoUntilStatement doUntilStatement)
 {
 }
コード例 #26
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 /// <summary>
 /// Performs some computation with the given do until statement.
 /// </summary>
 /// <param name="doUntilStatement"></param>
 public virtual void Visit(IDoUntilStatement doUntilStatement)
 {
     this.Visit((IStatement)doUntilStatement);
 }
コード例 #27
0
ファイル: StatementSourceEmitter.cs プロジェクト: xornand/cci
 public override void TraverseChildren(IDoUntilStatement doUntilStatement) {
   base.TraverseChildren(doUntilStatement);
 }
コード例 #28
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 public void Visit(IDoUntilStatement doUntilStatement)
 {
     throw new NotImplementedException();
 }
コード例 #29
0
ファイル: Copier.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Visits the specified do until statement.
 /// </summary>
 /// <param name="doUntilStatement">The do until statement.</param>
 public override void Visit(IDoUntilStatement doUntilStatement)
 {
     DoUntilStatement mutableDoUntilStatement = new DoUntilStatement(doUntilStatement);
     this.resultStatement = this.myCodeCopier.DeepCopy(mutableDoUntilStatement);
 }
コード例 #30
0
ファイル: Statements.cs プロジェクト: Refresh06/visualmutator
 /// <summary>
 /// 
 /// </summary>
 /// <param name="doUntilStatement"></param>
 public DoUntilStatement(IDoUntilStatement doUntilStatement)
   : base(doUntilStatement) {
   this.body = doUntilStatement.Body;
   this.condition = doUntilStatement.Condition;
 }
コード例 #31
0
ファイル: Copier.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Returns a deep copy of the given do until statement.
 /// </summary>
 /// <param name="doUntilStatement"></param>
 public DoUntilStatement Copy(IDoUntilStatement doUntilStatement)
 {
     var mutableCopy = this.shallowCopier.Copy(doUntilStatement);
       mutableCopy.Body = this.Copy(mutableCopy.Body);
       mutableCopy.Condition = this.Copy(mutableCopy.Condition);
       return mutableCopy;
 }
コード例 #32
0
 public override void TraverseChildren(IDoUntilStatement doUntilStatement)
 {
     MethodEnter(doUntilStatement);
     base.TraverseChildren(doUntilStatement);
     MethodExit();
 }
コード例 #33
0
ファイル: Mutator.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Visits the specified do until statement.
 /// </summary>
 /// <param name="doUntilStatement">The do until statement.</param>
 public override void Visit(IDoUntilStatement doUntilStatement)
 {
     DoUntilStatement mutableDoUntilStatement = doUntilStatement as DoUntilStatement;
     if (mutableDoUntilStatement == null) {
       this.resultStatement = doUntilStatement;
       return;
     }
     this.resultStatement = this.myCodeMutator.Visit(mutableDoUntilStatement);
 }