コード例 #1
0
 public override Expression Visit(Expression expression)
 {
     if (expression != null)
     {
         bool flag = this.cannotBeEvaluated;
         this.cannotBeEvaluated = false;
         base.Visit(expression);
         if (!this.cannotBeEvaluated)
         {
             if (!this.funcCanBeEvaluated(expression))
             {
                 this.cannotBeEvaluated = true;
             }
             else
             {
                 this.candidates.Add(expression);
             }
         }
         PartialEvaluator.Nominator nominator = this;
         nominator.cannotBeEvaluated = nominator.cannotBeEvaluated | flag;
     }
     return(expression);
 }
コード例 #2
0
ファイル: PartialEvaluator.cs プロジェクト: nickchal/pash
			internal static HashSet<Expression> Nominate(Func<Expression, bool> funcCanBeEvaluated, Expression expression)
			{
				PartialEvaluator.Nominator nominator = new PartialEvaluator.Nominator(funcCanBeEvaluated);
				nominator.Visit(expression);
				return nominator.candidates;
			}
コード例 #3
0
 internal static HashSet <Expression> Nominate(Func <Expression, bool> funcCanBeEvaluated, Expression expression)
 {
     PartialEvaluator.Nominator nominator = new PartialEvaluator.Nominator(funcCanBeEvaluated);
     nominator.Visit(expression);
     return(nominator.candidates);
 }