code: func (p *Lexer) Space() (int, byte) {
  
  	// Need a bufio that unreads many bytes for the Block case
  
  	n := 0
  	m := 0
  
  	for {
  		c, _ := p.Byte()
  		if c != '\t' && c != ' ' {
  			break
  		}
  		if c == ' ' {
  			n++
  		} else {
  			m++
  		}
  
  	}
  
  	p.UnreadByte()
  
  	var r byte
  	if m == 0 {
  		r = ' '
  	} else if n == 0 {
  		r = '\t'
  	}
  
  	return n + m, r
  }
docs: // Space is (0x20|0x09)+. It returns a boolean indicating
  // if space has been found, and an integer indicating
  // how many spaces, iff uniform (either all 0x20 or 0x09)