func Parse(r io.Reader) (node Node, err error) {
	lb := &lineBuffer{
		Reader: bufio.NewReader(r),
	}
	defer func() {
		if r := recover(); r != nil {
			switch r := r.(type) {
			case error:
				err = r
			case string:
				err = errors.New(r)
			default:
				err = fmt.Errorf("%v", r)
			}
		}
	}()
	node = parseNode(lb, 0, nil)
	return
}
Parse returns a root-level Node parsed from the lines read from r.  In
general, this will be done for you by one of the File constructors.
package yaml
import (
	"bufio"
	"bytes"
	"errors"
	"fmt"
	"io"
	"strings"
)