home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / historic / v92.tgz / v92.tar / v92 / src / h / opdefs.h < prev    next >
Text File  |  1996-03-22  |  3KB  |  143 lines

  1. /*
  2.  * Opcode definitions used in icode.
  3.  */
  4.  
  5. /*
  6.  * Operators. These must be in the same order as in odefs.h.  Not very nice,
  7.  *  but it'll have to do until we think of another way to do this.  (It's
  8.  *  always been thus.)
  9.  */
  10. #define Op_Asgn          1
  11. #define Op_Bang          2
  12. #define Op_Cat          3
  13. #define Op_Compl      4
  14. #define Op_Diff          5
  15. #define Op_Div          6
  16. #define Op_Eqv          7
  17. #define Op_Inter      8
  18. #define Op_Lconcat      9
  19. #define Op_Lexeq     10
  20. #define Op_Lexge     11
  21. #define Op_Lexgt     12
  22. #define Op_Lexle     13
  23. #define Op_Lexlt     14
  24. #define Op_Lexne     15
  25. #define Op_Minus     16
  26. #define Op_Mod         17
  27. #define Op_Mult         18
  28. #define Op_Neg         19
  29. #define Op_Neqv         20
  30. #define Op_Nonnull     21
  31. #define Op_Null         22
  32. #define Op_Number     23
  33. #define Op_Numeq     24
  34. #define Op_Numge     25
  35. #define Op_Numgt     26
  36. #define Op_Numle     27
  37. #define Op_Numlt     28
  38. #define Op_Numne     29
  39. #define Op_Plus         30
  40. #define Op_Power     31
  41. #define Op_Random     32
  42. #define Op_Rasgn     33
  43. #define Op_Refresh     34
  44. #define Op_Rswap     35
  45. #define Op_Sect         36
  46. #define Op_Size         37
  47. #define Op_Subsc     38
  48. #define Op_Swap         39
  49. #define Op_Tabmat     40
  50. #define Op_Toby         41
  51. #define Op_Unions     42
  52. #define Op_Value     43
  53. /*
  54.  * Other instructions.
  55.  */
  56. #define Op_Bscan     44
  57. #define Op_Ccase     45
  58. #define Op_Chfail     46
  59. #define Op_Coact      47
  60. #define Op_Cofail     48
  61. #define Op_Coret      49
  62. #define Op_Create     50
  63. #define Op_Cset       51
  64. #define Op_Dup        52
  65. #define Op_Efail      53
  66. #define Op_Eret       54
  67. #define Op_Escan      55
  68. #define Op_Esusp      56
  69. #define Op_Field      57
  70. #define Op_Goto       58
  71. #define Op_Init       59
  72. #define Op_Int        60
  73. #define Op_Invoke     61
  74. #define Op_Keywd      62
  75. #define Op_Limit      63
  76. #define Op_Line       64
  77. #define Op_Llist      65
  78. #define Op_Lsusp      66
  79. #define Op_Mark       67
  80. #define Op_Pfail      68
  81. #define Op_Pnull      69
  82. #define Op_Pop        70
  83. #define Op_Pret       71
  84. #define Op_Psusp      72
  85. #define Op_Push1      73
  86. #define Op_Pushn1      74
  87. #define Op_Real        75
  88. #define Op_Sdup        76
  89. #define Op_Str         77
  90. #define Op_Unmark      78
  91. #define Op_Var         80
  92. #define Op_Arg         81
  93. #define Op_Static     82
  94. #define Op_Local     83
  95. #define Op_Global     84
  96. #define Op_Mark0     85
  97. #define Op_Quit         86
  98. #define Op_FQuit     87
  99. #define Op_Tally     88
  100. #define Op_Apply     89
  101.  
  102. /*
  103.  * "Absolute" address operations.  These codes are inserted in the
  104.  * icode at run-time by the interpreter to overwrite operations
  105.  * that initially compute a location relative to locations not known until
  106.  * the icode file is loaded.
  107.  */
  108. #define Op_Acset     90
  109. #define Op_Areal     91
  110. #define Op_Astr         92
  111. #define Op_Aglobal     93
  112. #define Op_Astatic     94
  113. #define Op_Agoto     95
  114. #define Op_Amark     96
  115.  
  116.  
  117. #define Op_Noop         98
  118.  
  119.  
  120. #define Op_Colm        108        /* column number */
  121.  
  122. /*
  123.  * Declarations and such -- used by the linker but not the run-time system.
  124.  */
  125.  
  126. #define Op_Proc        101
  127. #define Op_Declend    102
  128. #define Op_End        103
  129. #define Op_Link        104
  130. #define Op_Version    105
  131. #define Op_Con        106
  132. #define Op_Filen    107
  133.  
  134. /*
  135.  * Global symbol table declarations.
  136.  */
  137. #define Op_Record    105
  138. #define Op_Impl        106
  139. #define Op_Error    107
  140. #define Op_Trace    108
  141. #define Op_Lab       109
  142. #define Op_Invocable    110
  143.