DIRECTORY Commander USING [CommandProc, Register], ExpertPinRead USING [PinTable, PinInfoList, ReadPinFile], IO USING [GetTokenRope, int, PutF, RIS, rope, STREAM], Rope USING [ROPE], SymTab USING [EachPairAction, Pairs]; ReadPin: CEDAR PROGRAM IMPORTS Commander, ExpertPinRead, IO, SymTab = BEGIN ROPE: TYPE = Rope.ROPE; ReadPinProc: Commander.CommandProc = BEGIN PrintOneLine: SymTab.EachPairAction ~ { pinInfoList: ExpertPinRead.PinInfoList _ NARROW[val]; IF pinInfoList.rest = NIL THEN { IO.PutF[cmd.out, "%g \t%g \tpin %g \tpage %g\n", IO.rope[key], IO.rope[pinInfoList.first.refDes], IO.int[pinInfoList.first.pinNumber], IO.int[pinInfoList.first.pageNumber]]; }; }; pinTable: ExpertPinRead.PinTable; stream: IO.STREAM _ IO.RIS[cmd.commandLine]; inputName: ROPE _ IO.GetTokenRope[stream].token; IO.PutF[cmd.out, "Reading %g\n", IO.rope[inputName]]; pinTable _ ExpertPinRead.ReadPinFile[inputName]; [] _ SymTab.Pairs[pinTable, PrintOneLine]; END; Commander.Register[ key: "ReadPin", proc: ReadPinProc, doc: "Read an Expert .pcb file"]; END. ˆFile: ReadPin.mesa Christophe Cuenod February 2, 1988 1:56:12 pm PST Reads a .pinlist file and output the results on the screen Κ8– "Cedar" style–i(firstHeadersAfterPage) {1} .cvx .def (firstPageNumber) {1} .cvx .def (oneSidedFormat) {.false} .cvx .def˜– "Cedar" stylešΟnœ™Icodešœ1™1—J™Iunit™:šΟk ˜ Kšœ žœ˜(Kšœžœ&˜9Kšžœžœžœžœ˜6Kšœžœžœ˜Kšœžœ˜%—šœžœž˜Kšžœžœ ˜/—Lšž˜Lšžœžœžœ˜K– "cedar" style˜– "cedar" styleš œž˜*K˜š œ˜'Kšœ)žœ˜5šžœžœžœ˜ Kš žœ1žœ žœ!žœ#žœ$˜―K˜—K˜—K˜Kšœ!˜!Kš œžœžœžœžœ˜,Kšœ žœžœ˜0Jšžœžœ˜5Jšœ0˜0šœ*˜*J˜—Jšžœ˜—šœ˜JšœD˜D—Iprocšžœ˜—…—ά