############################################################################ # # File: opsyms.icn # # Subject: Procedures to produce table to map opcodes to symbols # # Author: Ralph E. Griswold # # Date: July 10, 1992 # ############################################################################ # # This file is in the public domain. # ############################################################################ # # opsyms() produces a table that maps virtual-machine instruction numbers # for operators to operator symbols. The suffixes 1 and 2 are used # for symbols that have both a unary and binary meaning. # ############################################################################ procedure opsyms() local opmap initial { opmap := table() opmap[1] := ":=" opmap[2] := "!1" opmap[3] := "||" opmap[4] := "~" opmap[5] := "--" opmap[6] := "/1" opmap[7] := "===" opmap[8] := "**" opmap[9] := "|||" opmap[10] := "==" opmap[11] := ">==" opmap[12] := ">>" opmap[13] := "<==" opmap[14] := "<<" opmap[15] := "~==" opmap[16] := "-2" opmap[17] := "%" opmap[18] := "*2" opmap[19] := "-1" opmap[20] := "~===" opmap[21] := "\\1" opmap[22] := "/1" opmap[23] := "+1" opmap[24] := "=2" opmap[25] := ">=" opmap[26] := ">" opmap[27] := "<=" opmap[28] := "<" opmap[29] := "~=" opmap[30] := "+2" opmap[31] := "^2" opmap[32] := "?1" opmap[33] := "<-" opmap[34] := "^1" opmap[35] := "<->" opmap[36] := "[:]" opmap[37] := "*1" opmap[38] := "[]" opmap[39] := ":=:" opmap[40] := "=1" opmap[41] := "..." opmap[42] := "++" opmap[43] := ".1" opmap[44] := "?2" opmap[47] := "@" opmap[57] := ".2" opmap[62] := "&" opmap[63] := "\\2" opmap[65] := "[...]" } return opmap end