about summary refs log tree commit diff
path: root/pkg/lang/vm/code/op.go
blob: d0b2555a69c252dc9dbb284daeaa9d354f44536c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package code

type Op uint8

const (
	OpNop Op = iota
	OpHalt

	OpPushInt
	OpPushFloat
	OpPushString
	OpPushTrue
	OpPushFalse
	OpPushNull
	OpPushArray
	OpPushFunction
	OpPushObject
	OpPushType

	OpDrop

	OpGetGlobal
	OpGetLocal
	OpSetLocal
	OpGetMember
	OpSetMember

	OpGetEnv
	OpSetEnv
	OpAddToEnv

	OpAnchorType

	OpAdd
	OpSub
	OpMod
	OpIndex
	OpLt
	OpLte
	OpCall

	OpJmp
	OpJt
	OpJf

	OpRet

	// Temporary operations, which will be removed with the advent of methods.
	OpTempArrLen
	OpTempArrPush
)