Program wrapper struct
This commit is contained in:
@@ -7,27 +7,27 @@ import "strings"
|
||||
import "github.com/firestuff/subcoding/vm"
|
||||
import "github.com/pkg/errors"
|
||||
|
||||
func Assemble(src []byte) ([][]*vm.Instruction, error) {
|
||||
prog, err := parse(src)
|
||||
func Assemble(src []byte) (*vm.Program, error) {
|
||||
parsed, err := parse(src)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
fncs := [][]*vm.Instruction{}
|
||||
ret := &vm.Program{}
|
||||
|
||||
for f, fnc := range prog.Functions {
|
||||
for f, fnc := range parsed.Functions {
|
||||
instrs, err := assembleFunction(fnc)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "At function index %d\n", f)
|
||||
}
|
||||
|
||||
fncs = append(fncs, instrs)
|
||||
ret.Functions = append(ret.Functions, instrs)
|
||||
}
|
||||
|
||||
return fncs, nil
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func AssembleString(src string) ([][]*vm.Instruction, error) {
|
||||
func AssembleString(src string) (*vm.Program, error) {
|
||||
return Assemble([]byte(src))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user