-- TexIODefs.mesa -- last written by Doug Wyatt, November 11, 1979 12:32 AM DIRECTORY TexDefs: FROM "TexDefs", TexMathDefs: FROM "TexMathDefs", StreamDefs: FROM "StreamDefs"; TexIODefs: DEFINITIONS = BEGIN OPEN TexMathDefs,TexDefs; FF: CHARACTER=14C; CR: CHARACTER=15C; LF: CHARACTER=12C; SP: CHARACTER=' ; StreamHandle: TYPE = StreamDefs.StreamHandle; GetStream: PROCEDURE RETURNS[StreamHandle]; SetStream: PROCEDURE[StreamHandle]; UseDisplay: PROCEDURE; -- use the default display stream Wc: PROCEDURE[c: CHARACTER]; -- write a character Cr,Sp,Esc: PROCEDURE; -- write a carriage return or space or escape char SetEsc: PROCEDURE[c: CHARACTER]; -- set the escape character used by Esc Ws: PROCEDURE[s: STRING]; -- write a string Wn: PROCEDURE[n: INTEGER]; -- write a signed decimal number Wnf: PROCEDURE[n: CARDINAL, f: CARDINAL]; -- unsigned decimal, f columns Wo: PROCEDURE[o: CARDINAL]; -- write an unsigned octal number Wss: PROCEDURE[s: STRING, i1,i2: CARDINAL]; -- write a substring Loc: PROCEDURE RETURNS[CARDINAL]; Tab: PROCEDURE[CARDINAL]; -- Pc, Ps, Pn, Po, Pss are the same as Wc, Ws, Wn, Wo, Wss except that they -- first print a "newline" character Pc: PROCEDURE[c: CHARACTER] = INLINE BEGIN Cr;Wc[c] END; Ps: PROCEDURE[s: STRING] = INLINE BEGIN Cr;Ws[s] END; Pn: PROCEDURE[n: INTEGER] = INLINE BEGIN Cr;Wn[n] END; Po: PROCEDURE[o: CARDINAL] = INLINE BEGIN Cr;Wo[o] END; Pss: PROCEDURE[s: STRING, i1,i2: CARDINAL] = INLINE BEGIN Cr;Wss[s,i1,i2] END; -- procedures for writing various Tex objects WFont: PROCEDURE[f: Font]; WFChar: PROCEDURE[fc: FChar]; WMFont: PROCEDURE[m: MFont]; WMChar: PROCEDURE[mchar: MChar]; WMCharOctal: PROCEDURE[mchar: MChar]; WDimn: PROCEDURE[d: Dimn]; -- write value of d in points -- input procedures ReadChar: PROCEDURE RETURNS[CHARACTER]; ReadLine: PROCEDURE[STRING]; TexIO: PROGRAM; END.