代码拉取完成,页面将自动刷新
package exprvm
import (
"fmt"
"strings"
)
type Command struct {
Type Opcode
Operand []interface{}
}
func (self *Command) String() string {
var sb strings.Builder
sb.WriteString(self.Type.String())
if len(self.Operand) > 0 {
sb.WriteString(" ")
for index, operand := range self.Operand {
if index > 0 {
sb.WriteString(", ")
}
sb.WriteString(fmt.Sprintf("%v", operand))
}
}
return sb.String()
}
type Chunk struct {
Commands []Command
}
func (self *Chunk) String() string {
var sb strings.Builder
for _, cmd := range self.Commands {
sb.WriteString(fmt.Sprintf("%s\n", cmd.String()))
}
return sb.String()
}
func (self *Chunk) AddCode(t Opcode) {
self.Commands = append(self.Commands, Command{Type: t})
}
func (self *Chunk) AddCodeOperand(t Opcode, operand ...interface{}) {
self.Commands = append(self.Commands, Command{
Type: t,
Operand: operand,
})
}
func newChunk() *Chunk {
return &Chunk{}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。