code: func New(src []byte) *Scanner {
  	// even though we accept a src, we read from a io.Reader compatible type
  	// (*bytes.Buffer). So in the future we might easily change it to streaming
  	// read.
  	b := bytes.NewBuffer(src)
  	s := &Scanner{
  		buf: b,
  		src: src,
  	}
  
  	// srcPosition always starts with 1
  	s.srcPos.Line = 1
  	return s
  }
docs: // New creates and initializes a new instance of Scanner using src as
  // its source content.