<> <> <> DIRECTORY AMBridge, AMMiniModel, AMTypes, BasicTime, FS, IO, Rope, UserCredentials USING [Get]; GenOpNames: CEDAR PROGRAM IMPORTS AMBridge, AMMiniModel, AMTypes, BasicTime, FS, IO, UserCredentials = BEGIN ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; TV: TYPE = AMTypes.TV; Type: TYPE = AMTypes.Type; Gen: PROC = TRUSTED { iFace: Type = AMMiniModel.AcquireIRType["DragOpsCross.bcd"]; instX: NAT _ AMTypes.NameToIndex[iFace, "Inst"]; eVal: TV _ AMTypes.IndexToDefaultInitialValue[iFace, instX]; eType: Type _ AMTypes.UnderType[AMTypes.TVToType[eVal]]; each: TV _ AMTypes.First[eType]; st: STREAM = FS.StreamOpen["DragOps.names", create]; pos: NAT _ 3; IO.PutRope[st, "-- DragOps.names\n"]; IO.PutF[st, " -- %g: %g\n", [rope[UserCredentials.Get[].name]], [time[BasicTime.Now[]]]]; IO.PutF[st, " -- from DragOpsCross.bcd of %g\n\n", [time[FS.FileInfo["DragOpsCross.bcd"].created]]]; WHILE each # NIL DO name: ROPE _ NIL; val: CARDINAL _ AMBridge.TVToCardinal[each]; name _ AMTypes.TVToName[each ! AMTypes.Error => CONTINUE]; IF name = NIL THEN name _ IO.PutFR["dX%b", [cardinal[val]]]; pos _ pos + 1; IF pos = 4 THEN {pos _ 0; IO.PutRope[st, "\n"]}; IO.PutF[st, " %9g %4bB", [rope[name]], [cardinal[val]]]; each _ AMTypes.Next[each]; ENDLOOP; IO.PutRope[st, "\n "]; IO.Close[st]; }; Gen[]; END.