home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / XSCHEME2.ZIP / xsbcode.h < prev    next >
Text File  |  1990-01-08  |  2KB  |  49 lines

  1. /* xsbcode.h - xscheme compiler byte code definitions */
  2. /*    Copyright (c) 1988, by David Michael Betz
  3.     All Rights Reserved
  4.     Permission is granted for unrestricted non-commercial use    */
  5.  
  6. #define OP_BRT        0x01    /* branch on true */
  7. #define OP_BRF        0x02    /* branch on false */
  8. #define OP_BR        0x03    /* branch unconditionally */
  9. #define OP_LIT        0x04    /* load literal */
  10. #define OP_GREF        0x05    /* global symbol value */
  11. #define OP_GSET        0x06    /* set global symbol value */
  12. #define OP_EREF        0x09    /* environment variable value */
  13. #define OP_ESET        0x0A    /* set environment variable value */
  14. #define OP_SAVE        0x0B    /* save a continuation */
  15. #define OP_CALL        0x0C    /* call a function */
  16. #define OP_RETURN    0x0D    /* return from a function */
  17. #define OP_T        0x0E    /* load 'val' with t */
  18. #define OP_NIL        0x0F    /* load 'val' with nil */
  19. #define OP_PUSH        0x10    /* push the 'val' register */
  20. #define OP_CLOSE    0x11    /* create a closure */
  21.  
  22. #define OP_FRAME    0x12    /* create a new enviroment frame */
  23. #define OP_MVARG    0x13    /* move required argument to frame slot */
  24. #define OP_MVOARG    0x14    /* move optional argument to frame slot */
  25. #define OP_MVRARG    0x15    /* build rest argument and move to frame slot */
  26. #define OP_ADROP    0x19    /* drop the rest of the arguments */
  27. #define OP_ALAST    0x1A    /* make sure there are no more arguments */
  28. #define OP_DELAY    0x1B    /* create a promise */
  29.  
  30. #define OP_AREF        0x1C    /* access a variable in an environment */
  31. #define OP_ASET        0x1D    /* set a variable in an environment */
  32.  
  33. #define OP_ATOM        0x1E    /* atom predicate */
  34. #define OP_EQ        0x1F    /* eq? predicate */
  35. #define OP_NULL        0x20    /* null? (or not) predicate */
  36. #define OP_CONS        0x21    /* cons */
  37. #define OP_CAR        0x22    /* car */
  38. #define OP_CDR        0x23    /* cdr */
  39. #define OP_SETCAR    0x24    /* set-car! */
  40. #define OP_SETCDR    0x25    /* set-cdr! */
  41.  
  42. #define OP_ADD        0x40    /* add two numeric expressions */
  43. #define OP_SUB        0x41    /* subtract two numeric expressions */
  44. #define OP_MUL        0x42    /* multiply two numeric expressions */
  45. #define OP_QUO        0x43    /* divide two integer expressions */
  46. #define OP_LSS        0x44    /* less than */
  47. #define OP_EQL        0x45    /* equal to */
  48. #define OP_GTR        0x46    /* greater than */
  49.