func Parse()

in pkg/ycd/ycd.go [43:66]


func Parse(reader io.Reader) (*YCDFile, error) {
	br := bufio.NewReader(reader)
	y := new(YCDFile)

	// First parse the header
	if h, err := parseHeader(br); err == nil {
		y.Header = h
	} else {
		return nil, err
	}
	// There is a nil character before the first digit.
	y.FirstDigitOffset = y.Header.Length
	for {
		b, err := br.ReadByte()
		if err != nil {
			return nil, err
		}
		y.FirstDigitOffset++
		if b == 0 {
			break
		}
	}
	return y, nil
}