public override void Visit(IStackArrayCreate stackArrayCreate)
 {
     if (Process(stackArrayCreate))
     {
         visitor.Visit(stackArrayCreate);
     }
     base.Visit(stackArrayCreate);
 }
 public virtual void onASTElement(IStackArrayCreate stackArrayCreate) { }
Exemple #3
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="stackArrayCreate"></param>
 public StackArrayCreate(IStackArrayCreate stackArrayCreate)
     : base(stackArrayCreate)
 {
     this.elementType = stackArrayCreate.ElementType;
       this.size = stackArrayCreate.Size;
 }
Exemple #4
0
 public void Visit(IStackArrayCreate stackArrayCreate)
 {
     Contract.Requires(stackArrayCreate != null);
       throw new NotImplementedException();
 }
Exemple #5
0
 public void Visit(IStackArrayCreate stackArrayCreate)
 {
     this.traverser.Traverse(stackArrayCreate);
 }
Exemple #6
0
 /// <summary>
 /// Traverses the stack array create expression.
 /// </summary>
 public void Traverse(IStackArrayCreate stackArrayCreate)
 {
     Contract.Requires(stackArrayCreate != null);
       if (this.preorderVisitor != null) this.preorderVisitor.Visit(stackArrayCreate);
       if (this.StopTraversal) return;
       this.TraverseChildren(stackArrayCreate);
       if (this.StopTraversal) return;
       if (this.postorderVisitor != null) this.postorderVisitor.Visit(stackArrayCreate);
 }
Exemple #7
0
 //^ ensures this.path.Count == old(this.path.Count);
 /// <summary>
 /// Traverses the given stack array create expression.
 /// </summary>
 /// <param name="stackArrayCreate"></param>
 public virtual void Visit(IStackArrayCreate stackArrayCreate)
 {
     if (this.stopTraversal) return;
       //^ int oldCount = this.path.Count;
       this.path.Push(stackArrayCreate);
       this.Visit(stackArrayCreate.ElementType);
       this.Visit(stackArrayCreate.Size);
       //^ assume this.path.Count == oldCount+1; //True because all of the virtual methods of this class promise not to decrease this.path.Count.
       this.path.Pop();
 }
Exemple #8
0
 public virtual void onASTElement(IStackArrayCreate stackArrayCreate)
 {
 }
 /// <summary>
 /// Rewrites the given stack array create expression.
 /// </summary>
 /// <param name="stackArrayCreate"></param>
 public virtual IExpression Rewrite(IStackArrayCreate stackArrayCreate)
 {
     return stackArrayCreate;
 }
Exemple #10
0
 public override void Visit(IStackArrayCreate stackArrayCreate)
 {
     allElements.Add(new InvokInfo(Traverser, "IStackArrayCreate", stackArrayCreate));
 }
Exemple #11
0
 public override void TraverseChildren(IStackArrayCreate stackArrayCreate)
 {
     base.TraverseChildren(stackArrayCreate);
     ((StackArrayCreate)stackArrayCreate).Type = this.platformType.SystemIntPtr;
 }
Exemple #12
0
 /// <summary>
 /// Generates IL for the specified stack array create.
 /// </summary>
 /// <param name="stackArrayCreate">The stack array create.</param>
 public override void TraverseChildren(IStackArrayCreate stackArrayCreate)
 {
     this.Traverse(stackArrayCreate.Size);
       this.generator.Emit(OperationCode.Localloc);
 }
 public override void Visit(IStackArrayCreate stackArrayCreate)
 {
     if(Process(stackArrayCreate)){visitor.Visit(stackArrayCreate);}
     base.Visit(stackArrayCreate);
 }
Exemple #14
0
 public void Visit(IStackArrayCreate stackArrayCreate)
 {
     this.result = this.rewriter.Rewrite(stackArrayCreate);
 }
Exemple #15
0
 /// <summary>
 /// Rewrites the given stack array create expression.
 /// </summary>
 /// <param name="stackArrayCreate"></param>
 public virtual IExpression Rewrite(IStackArrayCreate stackArrayCreate)
 {
     var mutableStackArrayCreate = stackArrayCreate as StackArrayCreate;
       if (mutableStackArrayCreate == null) return stackArrayCreate;
       this.RewriteChildren(mutableStackArrayCreate);
       return mutableStackArrayCreate;
 }
Exemple #16
0
 /// <summary>
 /// Visits the specified stack array create.
 /// </summary>
 /// <param name="stackArrayCreate">The stack array create.</param>
 public override void Visit(IStackArrayCreate stackArrayCreate)
 {
     StackArrayCreate mutableStackArrayCreate = stackArrayCreate as StackArrayCreate;
     if (alwaysMakeACopy || mutableStackArrayCreate == null) mutableStackArrayCreate = new StackArrayCreate(stackArrayCreate);
     this.resultExpression = this.myCodeMutator.Visit(mutableStackArrayCreate);
 }
Exemple #17
0
 public void Visit(IStackArrayCreate stackArrayCreate)
 {
     this.result = this.copier.Copy(stackArrayCreate);
 }
 public override void TraverseChildren(IStackArrayCreate stackArrayCreate) {
   base.TraverseChildren(stackArrayCreate);
   ((StackArrayCreate)stackArrayCreate).Type = this.platformType.SystemIntPtr;
 }
        public override void TraverseChildren(IStackArrayCreate stackArrayCreate)
{ MethodEnter(stackArrayCreate);
            base.TraverseChildren(stackArrayCreate);
     MethodExit();   }
Exemple #20
0
    /// <summary>
    /// Returns a shallow copy of the given stack array create expression.
    /// </summary>
    /// <param name="stackArrayCreate"></param>
    public StackArrayCreate Copy(IStackArrayCreate stackArrayCreate) {
      Contract.Requires(stackArrayCreate != null);
      Contract.Ensures(Contract.Result<StackArrayCreate>() != null);

      return new StackArrayCreate(stackArrayCreate);
    }
Exemple #21
0
 /// <summary>
 /// Performs some computation with the given stack array create expression.
 /// </summary>
 /// <param name="stackArrayCreate"></param>
 public virtual void Visit(IStackArrayCreate stackArrayCreate)
 {
 }
Exemple #22
0
    /// <summary>
    /// Returns a deep copy of the given stack array create expression.
    /// </summary>
    /// <param name="stackArrayCreate"></param>
    public StackArrayCreate Copy(IStackArrayCreate stackArrayCreate) {
      Contract.Requires(stackArrayCreate != null);
      Contract.Ensures(Contract.Result<StackArrayCreate>() != null);

      var mutableCopy = this.shallowCopier.Copy(stackArrayCreate);
      this.CopyChildren((Expression)mutableCopy);
      mutableCopy.ElementType = this.Copy(mutableCopy.ElementType);
      mutableCopy.Size = this.Copy(mutableCopy.Size);
      return mutableCopy;
    }
Exemple #23
0
 /// <summary>
 /// Traverses the children of the stack array create expression.
 /// </summary>
 public virtual void TraverseChildren(IStackArrayCreate stackArrayCreate)
 {
     Contract.Requires(stackArrayCreate != null);
       this.TraverseChildren((IExpression)stackArrayCreate);
       if (this.StopTraversal) return;
       this.Traverse(stackArrayCreate.ElementType);
       if (this.StopTraversal) return;
       this.Traverse(stackArrayCreate.Size);
 }
 /// <summary>
 /// Performs some computation with the given stack array create expression.
 /// </summary>
 /// <param name="stackArrayCreate"></param>
 public virtual void Visit(IStackArrayCreate stackArrayCreate)
 {
 }
Exemple #25
0
 /// <summary>
 /// Performs some computation with the given stack array create expression.
 /// </summary>
 /// <param name="stackArrayCreate"></param>
 public virtual void Visit(IStackArrayCreate stackArrayCreate)
 {
     this.Visit((IExpression)stackArrayCreate);
 }
Exemple #26
0
 /// <summary>
 /// Visits the specified stack array create.
 /// </summary>
 /// <param name="stackArrayCreate">The stack array create.</param>
 public override void Visit(IStackArrayCreate stackArrayCreate)
 {
     StackArrayCreate mutableStackArrayCreate = new StackArrayCreate(stackArrayCreate);
     this.resultExpression = this.myCodeCopier.DeepCopy(mutableStackArrayCreate);
 }
Exemple #27
0
 public void Visit(IStackArrayCreate stackArrayCreate)
 {
     throw new NotImplementedException();
 }
Exemple #28
0
 /// <summary>
 /// Returns a deep copy of the given stack array create expression.
 /// </summary>
 /// <param name="stackArrayCreate"></param>
 public StackArrayCreate Copy(IStackArrayCreate stackArrayCreate)
 {
     var mutableCopy = this.shallowCopier.Copy(stackArrayCreate);
       this.CopyChildren((Expression)mutableCopy);
       mutableCopy.ElementType = this.Copy(mutableCopy.ElementType);
       mutableCopy.Size = this.Copy(mutableCopy.Size);
       return mutableCopy;
 }
 public override void TraverseChildren(IStackArrayCreate stackArrayCreate) {
   base.TraverseChildren(stackArrayCreate);
 }
Exemple #30
0
 /// <summary>
 /// Returns a shallow copy of the given stack array create expression.
 /// </summary>
 /// <param name="stackArrayCreate"></param>
 public StackArrayCreate Copy(IStackArrayCreate stackArrayCreate)
 {
     return new StackArrayCreate(stackArrayCreate);
 }
Exemple #31
0
 public override void TraverseChildren(IStackArrayCreate stackArrayCreate)
 {
     MethodEnter(stackArrayCreate);
     base.TraverseChildren(stackArrayCreate);
     MethodExit();
 }
Exemple #32
0
 /// <summary>
 /// Visits the specified stack array create.
 /// </summary>
 /// <param name="stackArrayCreate">The stack array create.</param>
 public override void Visit(IStackArrayCreate stackArrayCreate)
 {
     StackArrayCreate mutableStackArrayCreate = stackArrayCreate as StackArrayCreate;
     if (mutableStackArrayCreate == null) {
       this.resultExpression = stackArrayCreate;
       return;
     }
     this.resultExpression = this.myCodeMutator.Visit(mutableStackArrayCreate);
 }