code: func (l *Lexer) consumeComment() {
  	if l.next != '#' {
  		panic("consumeComment used in wrong context")
  	}
  
  	// TODO: count and trim whitespace so we can dedent any following lines.
  	if l.sc.Peek() == ' ' {
  		l.sc.Next()
  	}
  
  	if l.descComment != "" && !l.useStringDescriptions {
  		// TODO: use a bytes.Buffer or strings.Builder instead of this.
  		l.descComment += "\n"
  	}
  
  	for {
  		next := l.sc.Next()
  		if next == '\r' || next == '\n' || next == scanner.EOF {
  			break
  		}
  
  		if !l.useStringDescriptions {
  			// TODO: use a bytes.Buffer or strings.Build instead of this.
  			l.descComment += string(next)
  		}
  	}
  }
docs: // consumeComment consumes all characters from `#` to the first encountered line terminator.
  // The characters are appended to `l.descComment`.