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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
package gojq
type code struct {
v any
op opcode
}
type opcode int
const (
opnop opcode = iota
oppush
oppop
opdup
opconst
opload
opstore
opobject
opappend
opfork
opforktrybegin
opforktryend
opforkalt
opforklabel
opbacktrack
opjump
opjumpifnot
opindex
opindexarray
opcall
opcallrec
oppushpc
opcallpc
opscope
opret
opiter
opexpbegin
opexpend
oppathbegin
oppathend
)
func (op opcode) String() string {
switch op {
case opnop:
return "nop"
case oppush:
return "push"
case oppop:
return "pop"
case opdup:
return "dup"
case opconst:
return "const"
case opload:
return "load"
case opstore:
return "store"
case opobject:
return "object"
case opappend:
return "append"
case opfork:
return "fork"
case opforktrybegin:
return "forktrybegin"
case opforktryend:
return "forktryend"
case opforkalt:
return "forkalt"
case opforklabel:
return "forklabel"
case opbacktrack:
return "backtrack"
case opjump:
return "jump"
case opjumpifnot:
return "jumpifnot"
case opindex:
return "index"
case opindexarray:
return "indexarray"
case opcall:
return "call"
case opcallrec:
return "callrec"
case oppushpc:
return "pushpc"
case opcallpc:
return "callpc"
case opscope:
return "scope"
case opret:
return "ret"
case opiter:
return "iter"
case opexpbegin:
return "expbegin"
case opexpend:
return "expend"
case oppathbegin:
return "pathbegin"
case oppathend:
return "pathend"
default:
panic(op)
}
}
|