package asm import "fmt" import "github.com/firestuff/subcoding/vm" import "github.com/pkg/errors" func Disassemble(prog *vm.Program) ([]byte, error) { for f, fnc := range prog.Functions { _, err := disassembleFunction(fnc) if err != nil { return nil, errors.Wrapf(err, "At function index %d", f) } } return nil, nil } func disassembleFunction(fnc *vm.Function) ([]byte, error) { for i, instr := range fnc.Instructions { _, err := disassembleInstruction(instr) if err != nil { return nil, errors.Wrapf(err, "At instruction index %d", i) } } return nil, nil } func disassembleInstruction(in *vm.Instruction) ([]byte, error) { fmt.Printf("%s\n", nameByOpCode[in.OpCode]) return nil, nil }