original_string: public static function parse($uri, $action)
      {
          // If no action is passed in right away, we assume the user will make use of
          // fluent routing. In that case, we set a default closure, to be executed
          // if the user never explicitly sets an action to handle the given uri.
          if (is_null($action)) {
              return static::missingAction($uri);
          }
  
          // If the action is already a Closure instance, we will just set that instance
          // as the "uses" property, because there is nothing else we need to do when
          // it is available. Otherwise we will need to find it in the action list.
          if (is_callable($action, true)) {
              return ! is_array($action) ? ['uses' => $action] : [
                  'uses' => $action[0].'@'.$action[1],
                  'controller' => $action[0].'@'.$action[1],
              ];
          }
  
          // If no "uses" property has been set, we will dig through the array to find a
          // Closure instance within this list. We will set the first Closure we come
          // across into the "uses" property that will get fired off by this route.
          elseif (! isset($action['uses'])) {
              $action['uses'] = static::findCallable($action);
          }
  
          if (is_string($action['uses']) && ! Str::contains($action['uses'], '@')) {
              $action['uses'] = static::makeInvokable($action['uses']);
          }
  
          return $action;
      }
code: public static function parse($uri, $action)
      {
          // If no action is passed in right away, we assume the user will make use of
          // fluent routing. In that case, we set a default closure, to be executed
          // if the user never explicitly sets an action to handle the given uri.
          if (is_null($action)) {
              return static::missingAction($uri);
          }
  
          // If the action is already a Closure instance, we will just set that instance
          // as the "uses" property, because there is nothing else we need to do when
          // it is available. Otherwise we will need to find it in the action list.
          if (is_callable($action, true)) {
              return ! is_array($action) ? ['uses' => $action] : [
                  'uses' => $action[0].'@'.$action[1],
                  'controller' => $action[0].'@'.$action[1],
              ];
          }
  
          // If no "uses" property has been set, we will dig through the array to find a
          // Closure instance within this list. We will set the first Closure we come
          // across into the "uses" property that will get fired off by this route.
          elseif (! isset($action['uses'])) {
              $action['uses'] = static::findCallable($action);
          }
  
          if (is_string($action['uses']) && ! Str::contains($action['uses'], '@')) {
              $action['uses'] = static::makeInvokable($action['uses']);
          }
  
          return $action;
      }
code_tokens: public static function parse ( $ uri , $ action ) { // If no action is passed in right away, we assume the user will make use of // fluent routing. In that case, we set a default closure, to be executed // if the user never explicitly sets an action to handle the given uri. if ( is_null ( $ action ) ) { return static :: missingAction ( $ uri ) ; } // If the action is already a Closure instance, we will just set that instance // as the "uses" property, because there is nothing else we need to do when // it is available. Otherwise we will need to find it in the action list. if ( is_callable ( $ action , true ) ) { return ! is_array ( $ action ) ? [ 'uses' => $ action ] : [ 'uses' => $ action [ 0 ] . '@' . $ action [ 1 ] , 'controller' => $ action [ 0 ] . '@' . $ action [ 1 ] , ] ; } // If no "uses" property has been set, we will dig through the array to find a // Closure instance within this list. We will set the first Closure we come // across into the "uses" property that will get fired off by this route. elseif ( ! isset ( $ action [ 'uses' ] ) ) { $ action [ 'uses' ] = static :: findCallable ( $ action ) ; } if ( is_string ( $ action [ 'uses' ] ) && ! Str :: contains ( $ action [ 'uses' ] , '@' ) ) { $ action [ 'uses' ] = static :: makeInvokable ( $ action [ 'uses' ] ) ; } return $ action ; }
docstring: Parse the given action into an array.
  
  @param  string  $uri
  @param  mixed  $action
  @return array
docstring_tokens: Parse the given action into an array .