original_string: public function getCompiledRoutes(bool $forDump = false): array
      {
          // Group hosts by same-suffix, re-order when possible
          $matchHost = false;
          $routes = new StaticPrefixCollection();
          foreach ($this->getRoutes()->all() as $name => $route) {
              if ($host = $route->getHost()) {
                  $matchHost = true;
                  $host = '/'.strtr(strrev($host), '}.{', '(/)');
              }
  
              $routes->addRoute($host ?: '/(.*)', [$name, $route]);
          }
  
          if ($matchHost) {
              $compiledRoutes = [true];
              $routes = $routes->populateCollection(new RouteCollection());
          } else {
              $compiledRoutes = [false];
              $routes = $this->getRoutes();
          }
  
          list($staticRoutes, $dynamicRoutes) = $this->groupStaticRoutes($routes);
  
          $conditions = [null];
          $compiledRoutes[] = $this->compileStaticRoutes($staticRoutes, $conditions);
          $chunkLimit = \count($dynamicRoutes);
  
          while (true) {
              try {
                  $this->signalingException = new \RuntimeException('preg_match(): Compilation failed: regular expression is too large');
                  $compiledRoutes = array_merge($compiledRoutes, $this->compileDynamicRoutes($dynamicRoutes, $matchHost, $chunkLimit, $conditions));
  
                  break;
              } catch (\Exception $e) {
                  if (1 < $chunkLimit && $this->signalingException === $e) {
                      $chunkLimit = 1 + ($chunkLimit >> 1);
                      continue;
                  }
                  throw $e;
              }
          }
  
          if ($forDump) {
              $compiledRoutes[2] = $compiledRoutes[4];
          }
          unset($conditions[0]);
  
          if ($conditions) {
              foreach ($conditions as $expression => $condition) {
                  $conditions[$expression] = "case {$condition}: return {$expression};";
              }
  
              $checkConditionCode = <<<EOF
      static function (\$condition, \$context, \$request) { // \$checkCondition
          switch (\$condition) {
  {$this->indent(implode("\n", $conditions), 3)}
          }
      }
  EOF;
              $compiledRoutes[4] = $forDump ? $checkConditionCode .= ",\n" : eval('return '.$checkConditionCode.';');
          } else {
              $compiledRoutes[4] = $forDump ? "    null, // \$checkCondition\n" : null;
          }
  
          return $compiledRoutes;
      }
code: public function getCompiledRoutes(bool $forDump = false): array
      {
          // Group hosts by same-suffix, re-order when possible
          $matchHost = false;
          $routes = new StaticPrefixCollection();
          foreach ($this->getRoutes()->all() as $name => $route) {
              if ($host = $route->getHost()) {
                  $matchHost = true;
                  $host = '/'.strtr(strrev($host), '}.{', '(/)');
              }
  
              $routes->addRoute($host ?: '/(.*)', [$name, $route]);
          }
  
          if ($matchHost) {
              $compiledRoutes = [true];
              $routes = $routes->populateCollection(new RouteCollection());
          } else {
              $compiledRoutes = [false];
              $routes = $this->getRoutes();
          }
  
          list($staticRoutes, $dynamicRoutes) = $this->groupStaticRoutes($routes);
  
          $conditions = [null];
          $compiledRoutes[] = $this->compileStaticRoutes($staticRoutes, $conditions);
          $chunkLimit = \count($dynamicRoutes);
  
          while (true) {
              try {
                  $this->signalingException = new \RuntimeException('preg_match(): Compilation failed: regular expression is too large');
                  $compiledRoutes = array_merge($compiledRoutes, $this->compileDynamicRoutes($dynamicRoutes, $matchHost, $chunkLimit, $conditions));
  
                  break;
              } catch (\Exception $e) {
                  if (1 < $chunkLimit && $this->signalingException === $e) {
                      $chunkLimit = 1 + ($chunkLimit >> 1);
                      continue;
                  }
                  throw $e;
              }
          }
  
          if ($forDump) {
              $compiledRoutes[2] = $compiledRoutes[4];
          }
          unset($conditions[0]);
  
          if ($conditions) {
              foreach ($conditions as $expression => $condition) {
                  $conditions[$expression] = "case {$condition}: return {$expression};";
              }
  
              $checkConditionCode = <<<EOF
      static function (\$condition, \$context, \$request) { // \$checkCondition
          switch (\$condition) {
  {$this->indent(implode("\n", $conditions), 3)}
          }
      }
  EOF;
              $compiledRoutes[4] = $forDump ? $checkConditionCode .= ",\n" : eval('return '.$checkConditionCode.';');
          } else {
              $compiledRoutes[4] = $forDump ? "    null, // \$checkCondition\n" : null;
          }
  
          return $compiledRoutes;
      }
code_tokens: public function getCompiledRoutes ( bool $ forDump = false ) : array { // Group hosts by same-suffix, re-order when possible $ matchHost = false ; $ routes = new StaticPrefixCollection ( ) ; foreach ( $ this -> getRoutes ( ) -> all ( ) as $ name => $ route ) { if ( $ host = $ route -> getHost ( ) ) { $ matchHost = true ; $ host = '/' . strtr ( strrev ( $ host ) , '}.{' , '(/)' ) ; } $ routes -> addRoute ( $ host ? : '/(.*)' , [ $ name , $ route ] ) ; } if ( $ matchHost ) { $ compiledRoutes = [ true ] ; $ routes = $ routes -> populateCollection ( new RouteCollection ( ) ) ; } else { $ compiledRoutes = [ false ] ; $ routes = $ this -> getRoutes ( ) ; } list ( $ staticRoutes , $ dynamicRoutes ) = $ this -> groupStaticRoutes ( $ routes ) ; $ conditions = [ null ] ; $ compiledRoutes [ ] = $ this -> compileStaticRoutes ( $ staticRoutes , $ conditions ) ; $ chunkLimit = \ count ( $ dynamicRoutes ) ; while ( true ) { try { $ this -> signalingException = new \ RuntimeException ( 'preg_match(): Compilation failed: regular expression is too large' ) ; $ compiledRoutes = array_merge ( $ compiledRoutes , $ this -> compileDynamicRoutes ( $ dynamicRoutes , $ matchHost , $ chunkLimit , $ conditions ) ) ; break ; } catch ( \ Exception $ e ) { if ( 1 < $ chunkLimit && $ this -> signalingException === $ e ) { $ chunkLimit = 1 + ( $ chunkLimit >> 1 ) ; continue ; } throw $ e ; } } if ( $ forDump ) { $ compiledRoutes [ 2 ] = $ compiledRoutes [ 4 ] ; } unset ( $ conditions [ 0 ] ) ; if ( $ conditions ) { foreach ( $ conditions as $ expression => $ condition ) { $ conditions [ $ expression ] = "case {$condition}: return {$expression};" ; } $ checkConditionCode =  <<<EOF
      static function (\$condition, \$context, \$request) { // \$checkCondition
          switch (\$condition) {
  {$this->indent(implode("\n", $conditions), 3)}
          }
      }
  EOF ; $ compiledRoutes [ 4 ] = $ forDump ? $ checkConditionCode .= ",\n" : eval ( 'return ' . $ checkConditionCode . ';' ) ; } else { $ compiledRoutes [ 4 ] = $ forDump ? "    null, // \$checkCondition\n" : null ; } return $ compiledRoutes ; }
docstring: Generates the arrays for CompiledUrlMatcher's constructor.
docstring_tokens: Generates the arrays for CompiledUrlMatcher s constructor .