package assembler import "gopkg.in/yaml.v2" type Program struct { Functions []*Function `yaml:"functions"` } type Function []*Instruction type Instruction []string func NewProgramFromBytes(in []byte) (*Program, error) { prog := &Program{} err := yaml.UnmarshalStrict(in, &prog) if err != nil { return nil, err } return prog, nil } func NewProgramFromString(in string) (*Program, error) { return NewProgramFromBytes([]byte(in)) }