FOR cells:
LIST
OF Core.CellType ← SinixOps.SelectedCellTypes[command.design, Sisyph.mode], cells.rest
WHILE cells#
NIL
DO
record, split: Core.CellType;
name: ROPE = CoreOps.GetCellTypeName[cells.first];
object: CD.Object = CoreGeometry.GetObject[Sisyph.mode.decoration, cells.first];
iconFor: ROPE ← NARROW [CDProperties.GetObjectProp[object, $IconFor]];
TerminalIO.PutF["AttemptSplit for %g.\n", IO.rope[name]];
IF cells.first.class#Sinix.iconClass THEN {TerminalIO.PutF["*** AttemptSplit can only be applied to icons of record cells.\n"]; LOOP};
record ← NARROW [cells.first.data];
split ← SplitCombinatorial[record];
IF NOT Rope.Equal[iconFor, Rope.Cat[name, ".sch"]] THEN {TerminalIO.PutF["*** AttemptSplit can only be applied to icons from schematics.\n"]; LOOP};
Sinix.FlushCache[object];
CDProperties.PutObjectProp[object, $IconFor, NIL];
CDProperties.PutObjectProp[object, $CodeFor, IO.PutFR["IF combinatorial THEN Combinatorial.SplitCombinatorial[Sisyph.ES[\"%g\", cx]] ELSE Sisyph.ES[\"%g\", cx]", IO.rope[iconFor], IO.rope[iconFor]]];
ENDLOOP;