home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / historic / v941.tgz / icon.v941src.tar / icon.v941src / src / h / opdefs.h < prev    next >
Text File  |  2001-12-12  |  3KB  |  141 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. #define Op_Noop         98
  117.  
  118. #define Op_Colm        108        /* column number */
  119.  
  120. /*
  121.  * Declarations and such -- used by the linker but not the run-time system.
  122.  */
  123.  
  124. #define Op_Proc        101
  125. #define Op_Declend    102
  126. #define Op_End        103
  127. #define Op_Link        104
  128. #define Op_Version    105
  129. #define Op_Con        106
  130. #define Op_Filen    107
  131.  
  132. /*
  133.  * Global symbol table declarations.
  134.  */
  135. #define Op_Record    105
  136. #define Op_Impl        106
  137. #define Op_Error    107
  138. #define Op_Trace    108
  139. #define Op_Lab        109
  140. #define Op_Invocable    110
  141.