DEFINITION MODULE Interpreter;			(* gf	06.01.89 *)
EXPORT QUALIFIED	INSTR,
			Command, maxlev,
			Interpret;

CONST	maxlev = 15;

TYPE	Command = ( msp,  la,	li,   lis,
		    jmp,  jmpc, call, ret,
		    ld,   st,   dup,	
		    mv,   neg,  odd,
		    add,  sub,  mul,  div,
		    eq,   ne,	lt,   ge,   gt,   le,
		    and,  or,	not,
		    ini,  outi, outc);

	level	 = [0..maxlev];

	instrKind = (instr, val);

	INSTR = RECORD
		   CASE :instrKind OF
		     instr:
			  cmd : Command;
			  lev : level;
			  val : INTEGER (* address | offset | lit. value *)
		   | val:
			  sval: ARRAY[0..5] OF CHAR;  (* string literal *)
		   END
		END;



PROCEDURE Interpret(VAR code : ARRAY OF INSTR);


END Interpreter.

