-
-
Notifications
You must be signed in to change notification settings - Fork 120
/
env.go
48 lines (43 loc) · 736 Bytes
/
env.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
package gojq
import "context"
type env struct {
pc int
stack *stack
paths *stack
scopes *scopeStack
values []any
codes []*code
codeinfos []codeinfo
forks []fork
backtrack bool
offset int
expdepth int
label int
args [32]any // len(env.args) > maxarity
ctx context.Context
}
func newEnv(ctx context.Context) *env {
return &env{
stack: newStack(),
paths: newStack(),
scopes: newScopeStack(),
ctx: ctx,
}
}
type scope struct {
id int
offset int
pc int
saveindex int
outerindex int
}
type fork struct {
pc int
stackindex int
stacklimit int
scopeindex int
scopelimit int
pathindex int
pathlimit int
expdepth int
}