func (r *Reader) Advance() (rune, error) {
	rn, _, err := r.Source.ReadRune()
	if err == io.EOF {
		return 0, nil
	}
	if err != nil {
		return 0, err
	}
	return rn, nil
}
Advance moves the cursor forward by one position.
package reader
import (
	"io"
)
type Reader struct {
	Source *Buffer
}
func New(contents []byte) *Reader {
	return &Reader{Source: NewBuffer(contents)}
}