original_string: public function valid() {
          if (!isset($this->za)) {
              return false;
          }
  
          // Skip over unwanted system files (get_info will return false).
          while (!$this->get_info($this->pos) && $this->pos < $this->za->numFiles) {
              $this->next();
          }
  
          // No files left - we're at the end.
          if ($this->pos >= $this->za->numFiles) {
              return false;
          }
  
          return true;
      }
code: public function valid() {
          if (!isset($this->za)) {
              return false;
          }
  
          // Skip over unwanted system files (get_info will return false).
          while (!$this->get_info($this->pos) && $this->pos < $this->za->numFiles) {
              $this->next();
          }
  
          // No files left - we're at the end.
          if ($this->pos >= $this->za->numFiles) {
              return false;
          }
  
          return true;
      }
code_tokens: public function valid ( ) { if ( ! isset ( $ this -> za ) ) { return false ; } // Skip over unwanted system files (get_info will return false). while ( ! $ this -> get_info ( $ this -> pos ) && $ this -> pos < $ this -> za -> numFiles ) { $ this -> next ( ) ; } // No files left - we're at the end. if ( $ this -> pos >= $ this -> za -> numFiles ) { return false ; } return true ; }
docstring: Did we reach the end?
  
  @return bool
docstring_tokens: Did we reach the end?