func (ins *Open) String() string {
	return fmt.Sprintf("%s = os.Open(%s)", ins.Result, ins.Path)
}
String is the human-readable description of the instruction.
package vm
import (
	"fmt"
	"os"
	"github.com/elliotchance/ok/ast"
	"github.com/elliotchance/ok/types"
)
type Open struct {
	Path, Result Register
}
func (ins *Open) Execute(_ *int, vm *VM) error {
	f, err := os.OpenFile(vm.Get(ins.Path).Value, os.O_RDWR|os.O_CREATE, 0666)
	if err != nil {
		vm.Raise(err.Error())
	}
	vm.Set(ins.Result, &ast.Literal{
		Kind: types.Data,
		File: f,
	})
	return nil
}