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)); }
public override RCOperator AsOperator(RCActivator activator, RCValue left, RCValue right) { return(activator.New(Name, left, right)); }