(* Copyright (C) 1989, Digital Equipment Corporation *) (* All rights reserved. *) (* See the file COPYRIGHT for a full description. *) (* File: Emit.i3 *) (* Last Modified On Sat Apr 28 00:28:38 1990 by muller *) (* Modified On Wed Feb 14 08:18:43 1990 by kalsow *) (* All C preprocessing primitives must be issued between the FlushLine character and a \n. This is needed to ensure that they start on at the beginning of a line and are the only material on that line. *) INTERFACE Emit; IMPORT String, Expr, Variable, Value, Temp, Text; CONST Marker = '@'; Indent = '\001'; Outdent = '\002'; FlushLine = '\003'; MaxStream = 1; TYPE Format = Text.T; Stream = [0..MaxStream]; PROCEDURE Op (f: Format); PROCEDURE OpC (f: Format; c: CHAR); PROCEDURE OpQ (f: Format; s: String.T); PROCEDURE OpS (f: Format; s: String.T); PROCEDURE OpSS (f: Format; s1, s2: String.T); PROCEDURE OpSI (f: Format; s: String.T; i: INTEGER); PROCEDURE OpIS (f: Format; i: INTEGER; s: String.T); PROCEDURE OpI (f: Format; i: INTEGER); PROCEDURE OpII (f: Format; i1, i2: INTEGER); PROCEDURE OpIII (f: Format; i1, i2, i3: INTEGER); PROCEDURE OpV (f: Format; v: Variable.T); PROCEDURE OpL (f: Format; v: Variable.T); PROCEDURE OpR (f: Format; r: LONGREAL); PROCEDURE OpN (f: Format; v: Value.T); PROCEDURE OpH (f: Format; h: INTEGER); PROCEDURE OpHH (f: Format; h1, h2: INTEGER); PROCEDURE OpT (f: Format; t: Temp.T); PROCEDURE OpTT (f: Format; t1, t2: Temp.T); PROCEDURE OpTTT (f: Format; t1, t2, t3: Temp.T); PROCEDURE OpTI (f: Format; t: Temp.T; i: INTEGER); PROCEDURE OpIT (f: Format; i: INTEGER; t: Temp.T); PROCEDURE OpX (f: Format; x: Text.T); PROCEDURE OpZ (f: Format; READONLY ss: String.Stack); PROCEDURE OpSZ (f: Format; s: String.T; READONLY ss: String.Stack); PROCEDURE ZeroL (size: INTEGER; f: Format; v: Variable.T); PROCEDURE ZeroT (size: INTEGER; f: Format; t: Temp.T); PROCEDURE ZeroZ (size: INTEGER; f: Format; READONLY ss: String.Stack); PROCEDURE Comment (t: Text.T); PROCEDURE Push (); (* initially in stream 0 *) PROCEDURE Pop (); PROCEDURE Switch (s: Stream): Stream; PROCEDURE Initialize (); END Emit.