You are here

private function ArgvInput::parseArgument in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/console/Input/ArgvInput.php \Symfony\Component\Console\Input\ArgvInput::parseArgument()

Parses an argument.

Parameters

string $token The current token:

Throws

\RuntimeException When too many arguments are given

1 call to ArgvInput::parseArgument()
ArgvInput::parse in vendor/symfony/console/Input/ArgvInput.php
Processes command line arguments.

File

vendor/symfony/console/Input/ArgvInput.php, line 161

Class

ArgvInput
ArgvInput represents an input coming from the CLI arguments.

Namespace

Symfony\Component\Console\Input

Code

private function parseArgument($token) {
  $c = count($this->arguments);

  // if input is expecting another argument, add it
  if ($this->definition
    ->hasArgument($c)) {
    $arg = $this->definition
      ->getArgument($c);
    $this->arguments[$arg
      ->getName()] = $arg
      ->isArray() ? array(
      $token,
    ) : $token;

    // if last argument isArray(), append token to last argument
  }
  elseif ($this->definition
    ->hasArgument($c - 1) && $this->definition
    ->getArgument($c - 1)
    ->isArray()) {
    $arg = $this->definition
      ->getArgument($c - 1);
    $this->arguments[$arg
      ->getName()][] = $token;

    // unexpected argument
  }
  else {
    throw new \RuntimeException('Too many arguments.');
  }
}