forked from expr-lang/expr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopcodes.go
87 lines (85 loc) · 991 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package vm
type Opcode byte
const (
OpInvalid Opcode = iota
OpPush
OpInt
OpPop
OpStore
OpLoadVar
OpLoadConst
OpLoadField
OpLoadFast
OpLoadMethod
OpLoadFunc
OpLoadEnv
OpFetch
OpFetchField
OpOptionalFetch
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
OpCallSafe
OpCallTyped
OpCallBuiltin1
OpArray
OpMap
OpLen
OpCast
OpDeref
OpIncrementIndex
OpDecrementIndex
OpIncrementCount
OpGetIndex
OpGetCount
OpGetLen
OpGetAcc
OpSetAcc
OpSetIndex
OpPointer
OpThrow
OpCreate
OpGroupBy
OpSortBy
OpSort
OpBegin
OpEnd // This opcode must be at the end of this list.
)