Interpreter.newdef 935 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. DEFINITION MODULE Interpreter; (* gf 29.7.88 *)
  2. EXPORT QUALIFIED INSTR,
  3. Command, maxlev,
  4. Interpret;
  5. CONST maxlev = 15;
  6. TYPE Command = (LI, LIS, LAD, CAL, INT, JMP, JPC, MVB,
  7. RET, NEG, LOD, STO,
  8. ADD, SUB, MUL, DIv,
  9. EQ, NE, LT, GE, GT, LE,
  10. ODd,
  11. ANd, Or, NOt,
  12. INP, WRI, WRC);
  13. TYPE Command = (MSP, LDA, LD, ST, LDI LDIs,
  14. JMP, JMPC, CALL, RET, MV,
  15. NEGi, ODDi,
  16. ADDi, SUBi, MULi, DIVi,
  17. EQ, NE, LT, GE, GT, LE,
  18. ANDb, ORb, NOTb,
  19. INi, OUTi, OUTc);
  20. level = [0..maxlev];
  21. instrKind = (instr, strval);
  22. INSTR = RECORD
  23. CASE instrKind OF
  24. instr:
  25. fct : Command;
  26. lev : level;
  27. val : CARDINAL (* address | offset | lit. value *)
  28. | strval:
  29. par : ARRAY[0..5] OF CHAR; (* string literal *)
  30. END
  31. END;
  32. PROCEDURE Interpret(VAR code : ARRAY OF INSTR);
  33. END Interpreter.