Ejemplo n.º 1
0
 /// <summary>
 /// Traverses the expression.
 /// </summary>
 public void Traverse(IExpression expression)
 {
     Contract.Requires(expression != null);
       expression.Dispatch(this.dispatchingVisitor);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Traverses the given expression.
 /// </summary>
 /// <param name="expression"></param>
 public virtual void Visit(IExpression expression)
 {
     if (this.stopTraversal) return;
       expression.Dispatch(this);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// A dispatcher method that calls the type-specific Substitute for <paramref name="expression"/>.
 /// </summary>
 /// <param name="expression"></param>
 /// <returns></returns>
 public virtual IExpression Substitute(IExpression expression)
 {
     expression.Dispatch(this.createMutableType);
       return this.createMutableType.resultExpression;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Returns a shallow copy of the given expression.
 /// </summary>
 /// <param name="expression"></param>
 public Expression Copy(IExpression expression)
 {
     expression.Dispatch(this.Dispatcher);
       return (Expression)this.Dispatcher.result;
 }
Ejemplo n.º 5
0
    /// <summary>
    /// Returns a shallow copy of the given expression.
    /// </summary>
    /// <param name="expression"></param>
    public Expression Copy(IExpression expression) {
      Contract.Requires(expression != null);
      Contract.Ensures(Contract.Result<Expression>() != null);

      expression.Dispatch(this.Dispatcher);
      return (Expression)this.Dispatcher.result;
    }
Ejemplo n.º 6
0
 /// <summary>
 /// Rewrites the given expression.
 /// </summary>
 /// <param name="expression"></param>
 public virtual IExpression Rewrite(IExpression expression)
 {
     expression.Dispatch(this.dispatchingVisitor);
       return (IExpression)this.dispatchingVisitor.result;
 }