Ejemplo n.º 1
0
        public static RCOperator ReadOperator(RCActivator activator, RCArray <byte> data, ref int start)
        {
            int count = BitConverter.ToInt32(data._source, start);

            start += sizeof(int);

            RCValue left  = null;
            RCValue right = null;
            string  name  = null;

            if (count == 2)
            {
                name  = Binary.ReadScalarString(data, ref start);
                right = Binary.DoParse(activator, data, ref start);
            }
            else if (count == 3)
            {
                left  = Binary.DoParse(activator, data, ref start);
                name  = Binary.ReadScalarString(data, ref start);
                right = Binary.DoParse(activator, data, ref start);
            }
            else
            {
                throw new Exception("count of an operator must always be 2 or 3.");
            }

            return(activator.New(name, left, right));
        }
Ejemplo n.º 2
0
 public override RCOperator AsOperator(RCActivator activator, RCValue left, RCValue right)
 {
     return(activator.New(Name, left, right));
 }