DIRECTORY FS, IO, PascalBasic, PascalWizardFiles, Rope, PLtoTFExternals, PLtoTFPrivate; PLtoTFExternalsImpl: PROGRAM IMPORTS FS, IO, PascalWizardFiles, PascalBasic, Rope EXPORTS PLtoTFExternals = BEGIN OPEN PascalWizardFiles, PascalBasic, PLtoTFPrivate; TtyRewrite: PUBLIC PROC [F: PascalTextFilePtr] = BEGIN PascalOpenTextFileTTYOutput[F]; END; ByteFileReset: PROC [F: LONG POINTER TO ByteFile, Ext: Alfa] = BEGIN inStream: IO.STREAM; so: FS.StreamOptions _ FS.defaultStreamOptions; so[tiogaRead] _ FALSE; inStream _ FS.StreamOpen[fileName: Rope.Cat[FileNameRoot[], ".", RopeFromAlfa[Ext]], streamOptions: so]; PascalOpenFileWithStream[@(F^.baseFile), inStream]; PascalRESET[file: @(F^.baseFile), length: 1, element: @(F^.element)]; END; FileReset: PUBLIC PROC [F: PascalTextFilePtr, Ext: Alfa] = BEGIN inStream: IO.STREAM; inStream _ FS.StreamOpen[Rope.Cat[FileNameRoot[], ".", RopeFromAlfa[Ext]]]; PascalOpenTextFileWithStream[F, inStream]; PascalTextRESET[F]; END; ByteFileRewrite: PUBLIC PROC [F: LONG POINTER TO ByteFile, Ext: Alfa] = BEGIN outStream: IO.STREAM; outStream _ FS.StreamOpen[Rope.Cat[FileNameRoot[], ".", RopeFromAlfa[Ext]], $create]; PascalOpenFileWithStream[@(F^.baseFile), outStream]; END; FileRewrite: PROC [F: PascalTextFilePtr, Ext: Alfa] = BEGIN outStream: IO.STREAM; outStream _ FS.StreamOpen[Rope.Cat[FileNameRoot[], ".", RopeFromAlfa[Ext]], $create]; PascalOpenTextFileWithStream[F, outStream]; PascalTextREWRITE[F]; END; FileClose: PUBLIC PROC [F: PascalTextFilePtr] = BEGIN PascalCloseTextFile[F]; END; ByteFileClose: PUBLIC PROC [F: LONG POINTER TO ByteFile] = BEGIN PascalCloseFile[@(F^.baseFile)]; END; fileNameRootBreak: PRIVATE IO.BreakProc = CHECKED BEGIN RETURN[SELECT char FROM IN ['0..'9], IN ['A..'Z], IN ['a..'z], '-, '+, '# => other, ENDCASE => sepr]; END; FileNameRoot: PROC RETURNS [ROPE] = BEGIN RETURN[IO.RIS[commandLineTail].GetTokenRope[breakProc: fileNameRootBreak].token]; END; RopeFromAlfa: PROC [a: Alfa] RETURNS [r: ROPE] = BEGIN r _ NIL; FOR i:AlfaIndex IN AlfaIndex DO IF a[i] = ' THEN EXIT; r _ Rope.Concat[r, Rope.FromChar[a[i]]]; ENDLOOP; END; END. μPLtoTFExternalsImpl.mesa Edited by Michael Plass on December 30, 1982 4:03 pm Implements those procedures called by PLtoTF as externals. Last Edited by: Ramshaw, October 11, 1983 10:01 am Pavel, October 23, 1985 10:49:19 am PDT Κ΅˜Jšœ™Jšœ5™5Jšœ:™:™2Icode™'—unitšΟk ˜ Jšœ˜Jšœ˜J˜ J˜Jšœ˜Jšœ˜Jšœ˜—šœœ˜Jšœœœ&˜4Jšœ˜Jšœœ/˜9šΟn œœœœ˜0Jš˜Jšœœ˜Jšœ˜—š ž œœœœœœ˜>Jš˜Jšœ œœ˜Jšœœœ˜/Jšœœ˜Jšœ œ[˜hJšœœ˜3Jšœœ#œ ˜EJšœ˜—šž œœœœ!˜:Jš˜Jšœ œœ˜Jšœ œ>˜KJšœœ ˜*Jšœœ˜Jšœ˜—šžœœœœœœœ˜GJš˜Jšœ œœ˜Jšœ œG˜UJšœœ˜4Jšœ˜—šž œœœ!˜5Jš˜Jšœ œœ˜Jšœ œG˜UJšœœ ˜+Jšœœ˜Jšœ˜—šž œœœœ˜/Jš˜Jšœœ˜Jšœ˜—šž œœœœœœœ ˜:Jš˜Jšœœ ˜ Jšœ˜—šœœœ ˜1Jš˜šœœœ˜Jšœ œ œ˜;Jšœ ˜—Jšœ˜—šž œœœœ˜#Jš˜JšœœœD˜QJšœ˜—šž œœ œœ˜0Jš˜Jšœœ˜šœ œ ˜Jšœ œœ˜J˜(—Jšœ˜Jšœ˜—Lšœ˜—J˜J˜—…—D ε