code: func (r *importReader) peekByte(skipSpace bool) byte {
  	if r.err != nil {
  		if r.nerr++; r.nerr > 10000 {
  			panic("go/build: import reader looping")
  		}
  		return 0
  	}
  
  	// Use r.peek as first input byte.
  	// Don't just return r.peek here: it might have been left by peekByte(false)
  	// and this might be peekByte(true).
  	c := r.peek
  	if c == 0 {
  		c = r.readByte()
  	}
  	for r.err == nil && !r.eof {
  		if skipSpace {
  			// For the purposes of this reader, semicolons are never necessary to
  			// understand the input and are treated as spaces.
  			switch c {
  			case ' ', '\f', '\t', '\r', '\n', ';':
  				c = r.readByte()
  				continue
  
  			case '/':
  				c = r.readByte()
  				if c == '/' {
  					for c != '\n' && r.err == nil && !r.eof {
  						c = r.readByte()
  					}
  				} else if c == '*' {
  					var c1 byte
  					for (c != '*' || c1 != '/') && r.err == nil {
  						if r.eof {
  							r.syntaxError()
  						}
  						c, c1 = c1, r.readByte()
  					}
  				} else {
  					r.syntaxError()
  				}
  				c = r.readByte()
  				continue
  			}
  		}
  		break
  	}
  	r.peek = c
  	return r.peek
  }
docs: // peekByte returns the next byte from the input reader but does not advance beyond it.
  // If skipSpace is set, peekByte skips leading spaces and comments.