Example #1
0
 public override Operation Coalesce()
 {
     Block outputBlock = new Block();
       outputBlock.OnTrueHook = OnTrueHook;
       outputBlock.OnFalseHook = OnFalseHook;
       int amountSeen = 0;
       foreach(var v in this)
       {
     if(v is StandardOperation)
     {
       amountSeen++;
     }
     else
     {
       if(amountSeen > 0)
       {
     outputBlock.Add(new StandardOperation());
     amountSeen = 0;
       }
       outputBlock.Add(v.Coalesce());
     }
       }
       if(amountSeen > 0) //final list of operations
     outputBlock.Add(new StandardOperation());
       return outputBlock;
 }
Example #2
0
        public override Operation Coalesce()
        {
            Block outputBlock = new Block();

            outputBlock.OnTrueHook  = OnTrueHook;
            outputBlock.OnFalseHook = OnFalseHook;
            int amountSeen = 0;

            foreach (var v in this)
            {
                if (v is StandardOperation)
                {
                    amountSeen++;
                }
                else
                {
                    if (amountSeen > 0)
                    {
                        outputBlock.Add(new StandardOperation());
                        amountSeen = 0;
                    }
                    outputBlock.Add(v.Coalesce());
                }
            }
            if (amountSeen > 0) //final list of operations
            {
                outputBlock.Add(new StandardOperation());
            }
            return(outputBlock);
        }