private static function Inline::parseQuotedScalar

Parses a quoted scalar to YAML.

Parameters

string $scalar:

integer &$i:

Return value

string A YAML string

Throws

ParseException When malformed inline YAML string is parsed

1 call to Inline::parseQuotedScalar()
Inline::parseScalar in drupal/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
Parses a scalar to a YAML string.

File

drupal/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php, line 210

Class

Inline
Inline implements a YAML parser/dumper for the YAML inline syntax.

Namespace

Symfony\Component\Yaml

Code

private static function parseQuotedScalar($scalar, &$i) {

  // Only check the current item we're dealing with (for sequences)
  $subject = substr($scalar, $i);
  $items = preg_split('/[\'"]\\s*(?:[,:]|[}\\]]\\s*,)/', $subject);
  $subject = substr($subject, 0, strlen($items[0]) + 1);
  if (!preg_match('/' . self::REGEX_QUOTED_STRING . '/Au', substr($scalar, $i), $match)) {
    throw new ParseException(sprintf('Malformed inline YAML string (%s).', substr($scalar, $i)));
  }
  $output = substr($match[0], 1, strlen($match[0]) - 2);
  $unescaper = new Unescaper();
  if ('"' == $scalar[$i]) {
    $output = $unescaper
      ->unescapeDoubleQuotedString($output);
  }
  else {
    $output = $unescaper
      ->unescapeSingleQuotedString($output);
  }
  $i += strlen($match[0]);
  return $output;
}