forked from expr-lang/expr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopcodes.go
71 lines (69 loc) · 806 Bytes
/
opcodes.go
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package vm
type Opcode byte
const (
OpPush Opcode = iota
OpPushInt
OpPop
OpLoadConst
OpLoadField
OpLoadFast
OpLoadMethod
OpLoadFunc
OpFetch
OpFetchField
OpMethod
OpTrue
OpFalse
OpNil
OpNegate
OpNot
OpEqual
OpEqualInt
OpEqualString
OpJump
OpJumpIfTrue
OpJumpIfFalse
OpJumpIfNil
OpJumpIfNotNil
OpJumpIfEnd
OpJumpBackward
OpIn
OpLess
OpMore
OpLessOrEqual
OpMoreOrEqual
OpAdd
OpSubtract
OpMultiply
OpDivide
OpModulo
OpExponent
OpRange
OpMatches
OpMatchesConst
OpContains
OpStartsWith
OpEndsWith
OpSlice
OpCall
OpCall0
OpCall1
OpCall2
OpCall3
OpCallN
OpCallFast
OpCallTyped
OpBuiltin
OpArray
OpMap
OpLen
OpCast
OpDeref
OpIncrementIt
OpIncrementCount
OpGetCount
OpGetLen
OpPointer
OpBegin
OpEnd // This opcode must be at the end of this list.
)