original_string: protected function needDefined()
      {
          if ($this->defined) return;
          $this->defined = true;
  
          $name = $pattern = $note = null;
  
          if (preg_match(PARSER_PATTERN, $this->definition, $matches)) {
              $body = $matches[1];
              $name = $matches[2];
              $note = $matches[3];
  
              $pos = strpos($name, '|');
              if ($pos !== false) {
                  $pattern = $this->assertPattern(trim(substr($name, $pos + 1)));
  
                  $name = trim(substr($name, 0, $pos));
              }
          } else {
              $body = $this->definition;
          }
  
          $this->define($body, $name, $pattern, $note);
      }
code: protected function needDefined()
      {
          if ($this->defined) return;
          $this->defined = true;
  
          $name = $pattern = $note = null;
  
          if (preg_match(PARSER_PATTERN, $this->definition, $matches)) {
              $body = $matches[1];
              $name = $matches[2];
              $note = $matches[3];
  
              $pos = strpos($name, '|');
              if ($pos !== false) {
                  $pattern = $this->assertPattern(trim(substr($name, $pos + 1)));
  
                  $name = trim(substr($name, 0, $pos));
              }
          } else {
              $body = $this->definition;
          }
  
          $this->define($body, $name, $pattern, $note);
      }
code_tokens: protected function needDefined ( ) { if ( $ this -> defined ) return ; $ this -> defined = true ; $ name = $ pattern = $ note = null ; if ( preg_match ( PARSER_PATTERN , $ this -> definition , $ matches ) ) { $ body = $ matches [ 1 ] ; $ name = $ matches [ 2 ] ; $ note = $ matches [ 3 ] ; $ pos = strpos ( $ name , '|' ) ; if ( $ pos !== false ) { $ pattern = $ this -> assertPattern ( trim ( substr ( $ name , $ pos + 1 ) ) ) ; $ name = trim ( substr ( $ name , 0 , $ pos ) ) ; } } else { $ body = $ this -> definition ; } $ this -> define ( $ body , $ name , $ pattern , $ note ) ; }
docstring: Ensure definition has been parsed before actual use.
  It is safe to call it multiple times.
docstring_tokens: Ensure definition has been parsed before actual use . It is safe to call it multiple times .