コード例 #1
0
 public override void Visit(IDupValue dupValue)
 {
     if (Process(dupValue))
     {
         visitor.Visit(dupValue);
     }
     base.Visit(dupValue);
 }
コード例 #2
0
ファイル: Unstacker.cs プロジェクト: xornand/cci
        public override IExpression Rewrite(IDupValue dupValue)
        {
            var depth = this.locals.Count;
            var t     = dupValue.Type;

            Contract.Assume(0 < this.locals.Count);
            var local = this.locals.Peek();

            this.locals.Push(local);
            var be = new BoundExpression()
            {
                Definition = local, Instance = null, Type = t,
            };

            return(be);
        }
コード例 #3
0
 public override void TraverseChildren(IDupValue dupValue) {
   this.sourceEmitterOutput.Write("dup");
 }
コード例 #4
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 public void Visit(IDupValue dupValue)
 {
     throw new NotImplementedException();
 }
コード例 #5
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 /// <summary>
 /// Performs some computation with the given dup value expression.
 /// </summary>
 /// <param name="dupValue"></param>
 public virtual void Visit(IDupValue dupValue)
 {
     this.Visit((IExpression)dupValue);
 }
コード例 #6
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 /// <summary>
 /// Traverses the children of the dup value expression.
 /// </summary>
 public virtual void TraverseChildren(IDupValue dupValue)
 {
     Contract.Requires(dupValue != null);
       this.TraverseChildren((IExpression)dupValue);
 }
コード例 #7
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 /// <summary>
 /// Performs some computation with the given dup value expression.
 /// </summary>
 /// <param name="dupValue"></param>
 public virtual void Visit(IDupValue dupValue)
 {
 }
コード例 #8
0
        public override void TraverseChildren(IDupValue dupValue)
{ MethodEnter(dupValue);
            base.TraverseChildren(dupValue);
     MethodExit();   }
コード例 #9
0
 public virtual void onASTElement(IDupValue dupValue)
 {
 }
コード例 #10
0
ファイル: Patterns.cs プロジェクト: Refresh06/visualmutator
    //public override void TraverseChildren(IAddressableExpression addressableExpression) {
    //  this.foundProblem = true;
    //  this.StopTraversal = true;
    //}

    public override void TraverseChildren(IDupValue dupValue) {
      this.foundProblem = true;
      this.StopTraversal = true;
    }
コード例 #11
0
 /// <summary>
 /// Rewrites the given dup value expression.
 /// </summary>
 /// <param name="dupValue"></param>
 public virtual IExpression Rewrite(IDupValue dupValue)
 {
     return dupValue;
 }
コード例 #12
0
 public override void Visit(IDupValue dupValue)
 {
     allElements.Add(new InvokInfo(Traverser, "IDupValue", dupValue));
 }
コード例 #13
0
ファイル: Visitor.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Performs some computation with the given dup value expression.
 /// </summary>
 /// <param name="dupValue"></param>
 public override void TraverseChildren(IDupValue dupValue)
 {
     this.generator.Emit(OperationCode.Dup);
       this.StackSize++;
 }
コード例 #14
0
 public override void Visit(IDupValue dupValue)
 {
     if(Process(dupValue)){visitor.Visit(dupValue);}
     base.Visit(dupValue);
 }
コード例 #15
0
ファイル: Mutator.cs プロジェクト: riverar/devtools
 public void Visit(IDupValue dupValue)
 {
     this.result = this.rewriter.Rewrite((DupValue)dupValue);
 }
コード例 #16
0
ファイル: Mutator.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Rewrites the given dup value expression.
 /// </summary>
 /// <param name="dupValue"></param>
 public virtual IExpression Rewrite(IDupValue dupValue)
 {
     var mutableDupValue = dupValue as DupValue;
       if (mutableDupValue == null) return dupValue;
       this.RewriteChildren(mutableDupValue);
       return mutableDupValue;
 }
コード例 #17
0
ファイル: Mutator.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Performs some computation with the given dup value expression.
 /// </summary>
 /// <param name="dupValue"></param>
 public override void Visit(IDupValue dupValue)
 {
     DupValue mutableDupValue = dupValue as DupValue;
     if (alwaysMakeACopy || mutableDupValue == null) mutableDupValue = new DupValue(dupValue);
     this.resultExpression = this.myCodeMutator.Visit(mutableDupValue);
 }
コード例 #18
0
ファイル: Copier.cs プロジェクト: Refresh06/visualmutator
    /// <summary>
    /// Returns a deep copy of the given dup value expression.
    /// </summary>
    /// <param name="dupValue"></param>
    public DupValue Copy(IDupValue dupValue) {
      Contract.Requires(dupValue != null);
      Contract.Ensures(Contract.Result<DupValue>() != null);

      var mutableCopy = this.shallowCopier.Copy(dupValue);
      this.CopyChildren((Expression)mutableCopy);
      return mutableCopy;
    }
コード例 #19
0
ファイル: Unstacker.cs プロジェクト: xornand/cci
 public override IExpression Rewrite(IDupValue dupValue)
 {
     var depth = this.locals.Count;
     var t = dupValue.Type;
     Contract.Assume(0 < this.locals.Count);
     var local = this.locals.Peek();
     this.locals.Push(local);
     var be = new BoundExpression() { Definition = local, Instance = null, Type = t, };
     return be;
 }
コード例 #20
0
ファイル: Copier.cs プロジェクト: Refresh06/visualmutator
    /// <summary>
    /// Returns a shallow copy of the given dup value expression.
    /// </summary>
    /// <param name="dupValue"></param>
    public DupValue Copy(IDupValue dupValue) {
      Contract.Requires(dupValue != null);
      Contract.Ensures(Contract.Result<DupValue>() != null);

      return new DupValue(dupValue);
    }
コード例 #21
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 //^ ensures this.path.Count == old(this.path.Count);
 /// <summary>
 /// Traverses the given dup value expression.
 /// </summary>
 /// <param name="popValue"></param>
 public virtual void Visit(IDupValue popValue)
 {
     if (this.stopTraversal) return;
 }
コード例 #22
0
 /// <summary>
 /// Performs some computation with the given dup value expression.
 /// </summary>
 /// <param name="dupValue"></param>
 public virtual void Visit(IDupValue dupValue)
 {
 }
コード例 #23
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 /// <summary>
 /// Traverses the dup value expression.
 /// </summary>
 public void Traverse(IDupValue dupValue)
 {
     Contract.Requires(dupValue != null);
       if (this.preorderVisitor != null) this.preorderVisitor.Visit(dupValue);
       if (this.StopTraversal) return;
       this.TraverseChildren(dupValue);
       if (this.StopTraversal) return;
       if (this.postorderVisitor != null) this.postorderVisitor.Visit(dupValue);
 }
コード例 #24
0
ファイル: Copier.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Performs some computation with the given dup value expression.
 /// </summary>
 public override void Visit(IDupValue dupValue)
 {
     DupValue mutableDupValue = new DupValue(dupValue);
     this.resultExpression = this.myCodeCopier.DeepCopy(mutableDupValue);
 }
コード例 #25
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 public void Visit(IDupValue dupValue)
 {
     this.traverser.Traverse(dupValue);
 }
コード例 #26
0
ファイル: Copier.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Returns a deep copy of the given dup value expression.
 /// </summary>
 /// <param name="dupValue"></param>
 public DupValue Copy(IDupValue dupValue)
 {
     var mutableCopy = this.shallowCopier.Copy(dupValue);
       this.CopyChildren((Expression)mutableCopy);
       return mutableCopy;
 }
コード例 #27
0
ファイル: Visitors.cs プロジェクト: Refresh06/visualmutator
 public void Visit(IDupValue dupValue)
 {
     Contract.Requires(dupValue != null);
       throw new NotImplementedException();
 }
コード例 #28
0
ファイル: Copier.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Returns a shallow copy of the given dup value expression.
 /// </summary>
 /// <param name="dupValue"></param>
 public DupValue Copy(IDupValue dupValue)
 {
     return new DupValue(dupValue);
 }
コード例 #29
0
ファイル: Expressions.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Allocates a shallow copy of an expression that results in the value on top of the implicit operand stack.
 /// </summary>
 public DupValue(IDupValue dupValue)
     : base(dupValue)
 {
 }
コード例 #30
0
ファイル: Copier.cs プロジェクト: riverar/devtools
 public void Visit(IDupValue dupValue)
 {
     this.result = this.copier.Copy(dupValue);
 }
コード例 #31
0
 public virtual void onASTElement(IDupValue dupValue) { }
コード例 #32
0
 public override void TraverseChildren(IDupValue dupValue) {
   var e = this.sink.operandStack.Peek();
   this.TranslatedExpressions.Push(e);
 }
コード例 #33
0
 public override void TraverseChildren(IDupValue dupValue)
 {
     MethodEnter(dupValue);
     base.TraverseChildren(dupValue);
     MethodExit();
 }
コード例 #34
0
ファイル: Mutator.cs プロジェクト: riverar/devtools
 /// <summary>
 /// Visits the specified DupValue.
 /// </summary>
 /// <param name="dupValue">The DupValue.</param>
 public override void Visit(IDupValue dupValue)
 {
     DupValue mutableDupValue = dupValue as DupValue;
     if (mutableDupValue == null) {
       this.resultExpression = dupValue;
       return;
     }
     this.resultExpression = this.myCodeMutator.Visit(mutableDupValue);
 }