original_string: protected function shortenBools($content)
      {
          /*
           * 'true' or 'false' could be used as property names (which may be
           * followed by whitespace) - we must not replace those!
           * Since PHP doesn't allow variable-length (to account for the
           * whitespace) lookbehind assertions, I need to capture the leading
           * character and check if it's a `.`
           */
          $callback = function ($match) {
              if (trim($match[1]) === '.') {
                  return $match[0];
              }
  
              return $match[1].($match[2] === 'true' ? '!0' : '!1');
          };
          $content = preg_replace_callback('/(^|.\s*)\b(true|false)\b(?!:)/', $callback, $content);
  
          // for(;;) is exactly the same as while(true), but shorter :)
          $content = preg_replace('/\bwhile\(!0\){/', 'for(;;){', $content);
  
          // now make sure we didn't turn any do ... while(true) into do ... for(;;)
          preg_match_all('/\bdo\b/', $content, $dos, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
  
          // go backward to make sure positional offsets aren't altered when $content changes
          $dos = array_reverse($dos);
          foreach ($dos as $do) {
              $offsetDo = $do[0][1];
  
              // find all `while` (now `for`) following `do`: one of those must be
              // associated with the `do` and be turned back into `while`
              preg_match_all('/\bfor\(;;\)/', $content, $whiles, PREG_OFFSET_CAPTURE | PREG_SET_ORDER, $offsetDo);
              foreach ($whiles as $while) {
                  $offsetWhile = $while[0][1];
  
                  $open = substr_count($content, '{', $offsetDo, $offsetWhile - $offsetDo);
                  $close = substr_count($content, '}', $offsetDo, $offsetWhile - $offsetDo);
                  if ($open === $close) {
                      // only restore `while` if amount of `{` and `}` are the same;
                      // otherwise, that `for` isn't associated with this `do`
                      $content = substr_replace($content, 'while(!0)', $offsetWhile, strlen('for(;;)'));
                      break;
                  }
              }
          }
  
          return $content;
      }
code: protected function shortenBools($content)
      {
          /*
           * 'true' or 'false' could be used as property names (which may be
           * followed by whitespace) - we must not replace those!
           * Since PHP doesn't allow variable-length (to account for the
           * whitespace) lookbehind assertions, I need to capture the leading
           * character and check if it's a `.`
           */
          $callback = function ($match) {
              if (trim($match[1]) === '.') {
                  return $match[0];
              }
  
              return $match[1].($match[2] === 'true' ? '!0' : '!1');
          };
          $content = preg_replace_callback('/(^|.\s*)\b(true|false)\b(?!:)/', $callback, $content);
  
          // for(;;) is exactly the same as while(true), but shorter :)
          $content = preg_replace('/\bwhile\(!0\){/', 'for(;;){', $content);
  
          // now make sure we didn't turn any do ... while(true) into do ... for(;;)
          preg_match_all('/\bdo\b/', $content, $dos, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
  
          // go backward to make sure positional offsets aren't altered when $content changes
          $dos = array_reverse($dos);
          foreach ($dos as $do) {
              $offsetDo = $do[0][1];
  
              // find all `while` (now `for`) following `do`: one of those must be
              // associated with the `do` and be turned back into `while`
              preg_match_all('/\bfor\(;;\)/', $content, $whiles, PREG_OFFSET_CAPTURE | PREG_SET_ORDER, $offsetDo);
              foreach ($whiles as $while) {
                  $offsetWhile = $while[0][1];
  
                  $open = substr_count($content, '{', $offsetDo, $offsetWhile - $offsetDo);
                  $close = substr_count($content, '}', $offsetDo, $offsetWhile - $offsetDo);
                  if ($open === $close) {
                      // only restore `while` if amount of `{` and `}` are the same;
                      // otherwise, that `for` isn't associated with this `do`
                      $content = substr_replace($content, 'while(!0)', $offsetWhile, strlen('for(;;)'));
                      break;
                  }
              }
          }
  
          return $content;
      }
code_tokens: protected function shortenBools ( $ content ) { /*
           * 'true' or 'false' could be used as property names (which may be
           * followed by whitespace) - we must not replace those!
           * Since PHP doesn't allow variable-length (to account for the
           * whitespace) lookbehind assertions, I need to capture the leading
           * character and check if it's a `.`
           */ $ callback = function ( $ match ) { if ( trim ( $ match [ 1 ] ) === '.' ) { return $ match [ 0 ] ; } return $ match [ 1 ] . ( $ match [ 2 ] === 'true' ? '!0' : '!1' ) ; } ; $ content = preg_replace_callback ( '/(^|.\s*)\b(true|false)\b(?!:)/' , $ callback , $ content ) ; // for(;;) is exactly the same as while(true), but shorter :) $ content = preg_replace ( '/\bwhile\(!0\){/' , 'for(;;){' , $ content ) ; // now make sure we didn't turn any do ... while(true) into do ... for(;;) preg_match_all ( '/\bdo\b/' , $ content , $ dos , PREG_OFFSET_CAPTURE | PREG_SET_ORDER ) ; // go backward to make sure positional offsets aren't altered when $content changes $ dos = array_reverse ( $ dos ) ; foreach ( $ dos as $ do ) { $ offsetDo = $ do [ 0 ] [ 1 ] ; // find all `while` (now `for`) following `do`: one of those must be // associated with the `do` and be turned back into `while` preg_match_all ( '/\bfor\(;;\)/' , $ content , $ whiles , PREG_OFFSET_CAPTURE | PREG_SET_ORDER , $ offsetDo ) ; foreach ( $ whiles as $ while ) { $ offsetWhile = $ while [ 0 ] [ 1 ] ; $ open = substr_count ( $ content , '{' , $ offsetDo , $ offsetWhile - $ offsetDo ) ; $ close = substr_count ( $ content , '}' , $ offsetDo , $ offsetWhile - $ offsetDo ) ; if ( $ open === $ close ) { // only restore `while` if amount of `{` and `}` are the same; // otherwise, that `for` isn't associated with this `do` $ content = substr_replace ( $ content , 'while(!0)' , $ offsetWhile , strlen ( 'for(;;)' ) ) ; break ; } } } return $ content ; }
docstring: Replaces true & false by !0 and !1.
  
  @param string $content
  
  @return string
docstring_tokens: Replaces true & false by !0 and !1 .