about summary refs log tree commit diff
path: root/pkg/lang/vm/code/op.go
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-05-17 23:07:33 +0200
committerMel <einebeere@gmail.com>2022-05-17 23:07:33 +0200
commitec5ee8647bcbf6ab073711c6892710776925c54d (patch)
tree1228a72291123e0f520616b9d21f1e013e49351d /pkg/lang/vm/code/op.go
parentb09a14147d397904722ee7c25e4defc56135b96f (diff)
downloadjinx-ec5ee8647bcbf6ab073711c6892710776925c54d.tar.zst
jinx-ec5ee8647bcbf6ab073711c6892710776925c54d.zip
Lang VM Prototype
Diffstat (limited to 'pkg/lang/vm/code/op.go')
-rw-r--r--pkg/lang/vm/code/op.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/pkg/lang/vm/code/op.go b/pkg/lang/vm/code/op.go
new file mode 100644
index 0000000..ae37603
--- /dev/null
+++ b/pkg/lang/vm/code/op.go
@@ -0,0 +1,34 @@
+package code
+
+type Op uint8
+
+const (
+	OpNop Op = iota
+	OpHalt
+
+	OpPushInt
+	OpPushFloat
+	OpPushString
+	OpPushTrue
+	OpPushFalse
+	OpPushNull
+	OpPushArray
+	OpPushFunction
+	OpPushObject
+
+	OpGetGlobal
+	OpGetLocal
+	OpGetMember
+	OpGetArg
+	OpGetEnv
+
+	OpAdd
+	OpSub
+	OpIndex
+	OpCall
+
+	OpJmp
+	OpJez
+
+	OpRet
+)