Interpreter.def 710 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. DEFINITION MODULE Interpreter; (* gf 06.01.89 *)
  2. (*EXPORT QUALIFIED INSTR,
  3. Command, maxlev,
  4. Interpret;
  5. *)
  6. CONST maxlev = 15;
  7. TYPE Command = ( MSP, LDA, LDI, LDIs,
  8. JMP, JMPC, CALL, RET,
  9. LD, ST, MV, NEGi, ODDi,
  10. ADDi, SUBi, MULi, DIVi,
  11. EQ, NE, LT, GE, GT, LE,
  12. ANDb, ORb, NOTb,
  13. INi, OUTi, OUTc);
  14. level = [0..maxlev];
  15. instrKind = (instr, val);
  16. INSTR = RECORD
  17. CASE :instrKind OF
  18. instr:
  19. cmd : Command;
  20. lev : level;
  21. val : CARDINAL (* address | offset | lit. value *)
  22. | val:
  23. sval: ARRAY[0..5] OF CHAR; (* string literal *)
  24. END
  25. END;
  26. PROCEDURE Interpret(VAR code : ARRAY OF INSTR);
  27. END Interpreter.