public override Expression OnInterleave(InterleaveExp exp)
        {
            Expression e1 = exp.exp1.Visit(this);
            Expression e2 = exp.exp2.Visit(this);

            if (e1 == Expression.NotAllowed)
            {
                return(builder.CreateInterleave(exp.exp1, e2));
            }
            if (e2 == Expression.NotAllowed)
            {
                return(builder.CreateInterleave(e1, exp.exp2));
            }

            return(builder.CreateChoice(
                       builder.CreateInterleave(exp.exp1, e2),
                       builder.CreateInterleave(e1, exp.exp2)));
        }
 public Expression OnInterleave( InterleaveExp exp )
 {
     return builder.CreateChoice(
     builder.CreateInterleave( exp.exp1, exp.exp2.Visit(this) ),
     builder.CreateInterleave( exp.exp1.Visit(this), exp.exp2 ));
 }
 public virtual Expression OnInterleave(InterleaveExp exp)
 {
     return(builder.CreateInterleave(
                exp.exp1.Visit(this), exp.exp2.Visit(this)));
 }
예제 #4
0
 public Expression OnInterleave(InterleaveExp exp)
 {
     return(builder.CreateChoice(
                builder.CreateInterleave(exp.exp1, exp.exp2.Visit(this)),
                builder.CreateInterleave(exp.exp1.Visit(this), exp.exp2)));
 }
 public void OnInterleave( InterleaveExp exp )
 {
     OnBinExp(exp,"&");
 }
 public void OnInterleave(InterleaveExp exp)
 {
     exp.exp1.Visit(this);
     exp.exp2.Visit(this);
 }