Add annotations (comments) to bytecode. Add strip function to remove symboltable and annotations from bytecode.

This commit is contained in:
Erik Stenman
2019-02-25 07:57:08 +01:00
parent d04a827f05
commit a35307f61b
5 changed files with 115 additions and 35 deletions
+9 -7
View File
@@ -1,9 +1,11 @@
;; CONTRACT jumpif
FUNCTION skip(integer, integer) : integer
PUSH arg1
PUSH 0
EQ a a arg0
JUMPIF a 2
INCA
JUMP 2
RETURN
;; BB : 0
PUSH arg1
PUSH 0
EQ a a arg0
JUMPIF a 2
;; BB : 1
INCA
JUMP 2
RETURN
+5
View File
@@ -1,8 +1,10 @@
FUNCTION make_0tuple():{tuple, []}
;; BB : 0
TUPLE 0
RETURN
FUNCTION make_2tuple(integer, integer):{tuple, [integer, integer]}
;; BB : 0
PUSH arg0
PUSH arg1
TUPLE 2
@@ -10,6 +12,7 @@ FUNCTION make_2tuple(integer, integer):{tuple, [integer, integer]}
FUNCTION make_5tuple(integer, integer, integer, integer, integer):
{tuple, [integer, integer, integer, integer, integer]}
;; BB : 0
PUSH arg0
PUSH arg1
PUSH arg2
@@ -19,6 +22,7 @@ FUNCTION make_5tuple(integer, integer, integer, integer, integer):
RETURN
FUNCTION element1(integer, integer): integer
;; BB : 0
PUSH arg0
PUSH arg1
TUPLE 2
@@ -26,5 +30,6 @@ FUNCTION element1(integer, integer): integer
RETURN
FUNCTION element({tuple, [integer, integer]}, integer): integer
;; BB : 0
ELEMENT integer a arg1 arg0
RETURN