예제 #1
0
 public static StripeItem OLO(StripeItem item, Stream o, Stream i)
 {
     item.Stripe.CallProcedure(item, o, i, item.Current);
     return null;
 }
예제 #2
0
        public StripeItem CallProcedure(StripeItem item, Stream output, Stream input, byte index)
        {
            if (!Procedures.ContainsKey(index))
                throw new BrainfuckProcedureCallException(index);

            if (item == null)
                throw new ArgumentNullException("item");

            if (output == null)
                throw new ArgumentNullException("output");

            if (!output.CanWrite)
                throw new InvalidOperationException("output must support writing");

            if (!input.CanRead)
                throw new InvalidOperationException("input must support reading");

            return Procedures[index](item, output, input);
        }