summaryrefslogtreecommitdiff
path: root/ipl/procs/opsyms.icn
diff options
context:
space:
mode:
Diffstat (limited to 'ipl/procs/opsyms.icn')
-rw-r--r--ipl/procs/opsyms.icn82
1 files changed, 82 insertions, 0 deletions
diff --git a/ipl/procs/opsyms.icn b/ipl/procs/opsyms.icn
new file mode 100644
index 0000000..ba49d8e
--- /dev/null
+++ b/ipl/procs/opsyms.icn
@@ -0,0 +1,82 @@
+############################################################################
+#
+# 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