############################################################################
#
#	File:     opnames.icn
#
#	Subject:  Procedure to produce opcode/names table
#
#	Author:   Ralph E. Griswold
#
#	Date:     December 2, 1991
#
############################################################################
#
#   This file is in the public domain.
#
############################################################################
#
#  opnames() produces a table that maps virtual-machine instruction numbers
#  to instruction names.
#
############################################################################

procedure opnames()
   local opmap

   initial {
      opmap := table("")

      opmap[1] := "Asgn"
      opmap[2] := "Bang"
      opmap[3] := "Cat"
      opmap[4] := "Compl"
      opmap[5] := "Diff"
      opmap[6] := "Div"
      opmap[7] := "Eqv"
      opmap[8] := "Inter"
      opmap[9] := "Lconcat"
      opmap[10] := "Lexeq"
      opmap[11] := "Lexge"
      opmap[12] := "Lexgt"
      opmap[13] := "Lexle"
      opmap[14] := "Lexlt"
      opmap[15] := "Lexne"
      opmap[16] := "Minus"
      opmap[17] := "Mod"
      opmap[18] := "Mult"
      opmap[19] := "Neg"
      opmap[20] := "Neqv"
      opmap[21] := "Nonnull"
      opmap[22] := "Null"
      opmap[23] := "Number"
      opmap[24] := "Numeq"
      opmap[25] := "Numge"
      opmap[26] := "Numgt"
      opmap[27] := "Numle"
      opmap[28] := "Numlt"
      opmap[29] := "Numne"
      opmap[30] := "Plus"
      opmap[31] := "Power"
      opmap[32] := "Random"
      opmap[33] := "Rasgn"
      opmap[34] := "Refresh"
      opmap[35] := "Rswap"
      opmap[36] := "Sect"
      opmap[37] := "Size"
      opmap[38] := "Subsc"
      opmap[39] := "Swap"
      opmap[40] := "Tabmat"
      opmap[41] := "Toby"
      opmap[42] := "Unions"
      opmap[43] := "Value"
      opmap[44] := "Bscan"
      opmap[45] := "Ccase"
      opmap[46] := "Chfail"
      opmap[47] := "Coact"
      opmap[48] := "Cofail"
      opmap[49] := "Coret"
      opmap[50] := "Create"
      opmap[51] := "Cset"
      opmap[52] := "Dup"
      opmap[53] := "Efail"
      opmap[54] := "Eret"
      opmap[55] := "Escan"
      opmap[56] := "Esusp"
      opmap[57] := "Field"
      opmap[58] := "Goto"
      opmap[59] := "Init"
      opmap[60] := "Int"
      opmap[61] := "Invoke"
      opmap[62] := "Keywd"
      opmap[63] := "Limit"
      opmap[64] := "Line"
      opmap[65] := "Llist"
      opmap[66] := "Lsusp"
      opmap[67] := "Mark"
      opmap[68] := "Pfail"
      opmap[69] := "Pnull"
      opmap[70] := "Pop"
      opmap[71] := "Pret"
      opmap[72] := "Psusp"
      opmap[73] := "Push1"
      opmap[74] := "Pushn1"
      opmap[75] := "Real"
      opmap[76] := "Sdup"
      opmap[77] := "Str"
      opmap[78] := "Unmark"
      opmap[80] := "Var"
      opmap[81] := "Arg"
      opmap[82] := "Static"
      opmap[83] := "Local"
      opmap[84] := "Global"
      opmap[85] := "Mark0"
      opmap[86] := "Quit"
      opmap[87] := "FQuit"
      opmap[88] := "Tally"
      opmap[89] := "Apply"
      opmap[90] := "Acset"
      opmap[91] := "Areal"
      opmap[92] := "Astr"
      opmap[93] := "Aglobal"
      opmap[94] := "Astatic"
      opmap[95] := "Agoto"
      opmap[96] := "Amark"
      opmap[98] := "Noop"
      opmap[100] := "SymEvents"
      opmap[108] := "Colm"
      }

   return opmap

end
