public override void Cubify(RCCube target, Stack <object> names) { object[] array = names.ToArray(); System.Array.Reverse(array); RCSymbolScalar symbol = RCSymbolScalar.From(array); target.WriteCell(this.TypeCode.ToString(), symbol, Name, -1, true, false); target.Write(symbol); }
public override void Cubify(RCCube target, Stack <object> names) { object[] array = names.ToArray(); System.Array.Reverse(array); RCSymbolScalar symbol = RCSymbolScalar.From(array); for (int i = 0; i < Count; ++i) { T val = this[i]; RCSymbolScalar symboli = new RCSymbolScalar(symbol, (long)i); // Do not try to evaluate incrs during cubification target.WriteCell(this.TypeCode.ToString(), symboli, val, -1, true, false); target.Write(symboli); } }
public override void Cubify(RCCube target, Stack <object> names) { if (this.Left != null) { names.Push("L"); this.Left.Cubify(target, names); names.Pop(); } names.Push("R"); this.Right.Cubify(target, names); names.Pop(); object[] array = names.ToArray(); System.Array.Reverse(array); RCSymbolScalar symbol = RCSymbolScalar.From(array); target.WriteCell("o", symbol, Name); target.Write(symbol); }
public void Operators(RCRunner runner, RCClosure closure, RCBlock right) { RCCube result = new RCCube("S"); result.ReserveColumn("module"); result.ReserveColumn("name"); result.ReserveColumn("method"); result.ReserveColumn("left"); result.ReserveColumn("right"); foreach (KeyValuePair <RCActivator.OverloadKey, RCActivator.OverloadValue> kv in Activator._dispatch) { RCSymbolScalar sym; if (kv.Key.Left == null) { sym = RCSymbolScalar.From("operator", kv.Value.Module.Name, kv.Key.Name, RCValue.TypeNameForType(kv.Key.Right)); } else { sym = RCSymbolScalar.From("operator", kv.Value.Module.Name, kv.Key.Name, RCValue.TypeNameForType(kv.Key.Left), RCValue.TypeNameForType(kv.Key.Right)); } result.WriteCell("name", sym, kv.Key.Name); result.WriteCell("module", sym, kv.Value.Module.Name); result.WriteCell("method", sym, kv.Value.Implementation.Name); if (kv.Key.Left != null) { result.WriteCell("left", sym, RCValue.TypeNameForType(kv.Key.Left)); } result.WriteCell("right", sym, RCValue.TypeNameForType(kv.Key.Right)); result.Axis.Write(sym); } runner.Yield(closure, result); }