<> <> DIRECTORY Convert, FS, IFUPublic, IO, Rope; ListVectors: CEDAR PROGRAM IMPORTS Convert, FS, IO, Rope = BEGIN II: TYPE = IFUPublic.II; <> ListVector: PROC[file: IO.ROPE] = { root: IO.ROPE _ file.Substr[0, file.Index[0, "."]]; in: IO.STREAM _ FS.StreamOpen[file]; out: IO.STREAM _ FS.StreamOpen[root.Cat[".list"], $create]; FOR line: INT _ 1, line+1 DO IF (line-1) MOD 4 = 0 THEN out.PutF["--%12g\n", IO.int[(line-1)/4]]; out.PutF["%4g ", IO.int[line]]; FOR ii: II IN II DO item: IO.ROPE _ in.GetTokenRope[! IO.EndOfStream => GOTO Exit].token; IF ~ item.Equal["agg"] THEN ERROR; item _ in.GetTokenRope[].token; SELECT item.Fetch[] FROM 'f, 'e, 'n => out.PutRope[item]; ENDCASE => ERROR; item _ in.GetTokenRope[].token; SELECT item.Fetch[] FROM 'F, 'T => out.PutF["%g ", IO.rope[item]]; IN ['0..'9] => out.PutF[ format[ii], IO.card[Convert.CardFromRope[item]]]; ENDCASE => ERROR; REPEAT Exit => EXIT ENDLOOP; out.PutChar[IO.CR]; ENDLOOP; out.PutChar[IO.CR]; in.Close[]; out.Close[]}; format: ARRAY II OF Rope.ROPE _ ALL[NIL]; format[IPData ] _ "%8x "; format[KBus ] _ "%8x "; format[DPCmd ] _ "%2x "; format[DPFault ] _ "%1x "; format[EUAluOp ] _ "%1x "; format[EUCondSel ] _ "%1x "; END.