code: func (d *decoder) next() {
  	// If there's not buffered line
  	if d.buffered == "" {
  		res := d.scanner.Scan()
  		if true != res {
  			d.err = d.scanner.Err()
  			return
  		}
  		d.line++
  		d.current = d.scanner.Text()
  	} else {
  		d.current = d.buffered
  		d.buffered = ""
  	}
  
  	for d.scanner.Scan() {
  		d.line++
  		line := d.scanner.Text()
  		if strings.HasPrefix(line, " ") || strings.HasPrefix(line, "\t") {
  			d.current = d.current + line[1:]
  		} else {
  			// If is not a continuation line, buffer it, for the
  			// next call.
  			d.buffered = line
  			break
  		}
  	}
  
  	d.err = d.scanner.Err()
  
  	if d.nextFn != nil {
  		d.nextFn(d)
  	}
  }
docs: // Advances a new line in the decoder
  // And calls the next stateFunc
  // checks if next line is continuation line