private static function Inline::parseMapping in Translation template extractor 6.3
Same name and namespace in other branches
- 7.3 vendor/Symfony/Component/Yaml/Inline.php \Symfony\Component\Yaml\Inline::parseMapping()
- 7.2 vendor/Symfony/Component/Yaml/Inline.php \Symfony\Component\Yaml\Inline::parseMapping()
Parses a mapping to a YAML string.
Parameters
string $mapping:
integer &$i:
Return value
string A YAML string
Throws
ParseException When malformed inline YAML string is parsed
2 calls to Inline::parseMapping()
- Inline::parse in vendor/
Symfony/ Component/ Yaml/ Inline.php - Converts a YAML string to a PHP array.
- Inline::parseSequence in vendor/
Symfony/ Component/ Yaml/ Inline.php - Parses a sequence to a YAML string.
File
- vendor/
Symfony/ Component/ Yaml/ Inline.php, line 324
Class
- Inline
- Inline implements a YAML parser/dumper for the YAML inline syntax.
Namespace
Symfony\Component\YamlCode
private static function parseMapping($mapping, &$i = 0) {
$output = array();
$len = strlen($mapping);
$i += 1;
// {foo: bar, bar:foo, ...}
while ($i < $len) {
switch ($mapping[$i]) {
case ' ':
case ',':
++$i;
continue 2;
case '}':
return $output;
}
// key
$key = self::parseScalar($mapping, array(
':',
' ',
), array(
'"',
"'",
), $i, false);
// value
$done = false;
while ($i < $len) {
switch ($mapping[$i]) {
case '[':
// nested sequence
$output[$key] = self::parseSequence($mapping, $i);
$done = true;
break;
case '{':
// nested mapping
$output[$key] = self::parseMapping($mapping, $i);
$done = true;
break;
case ':':
case ' ':
break;
default:
$output[$key] = self::parseScalar($mapping, array(
',',
'}',
), array(
'"',
"'",
), $i);
$done = true;
--$i;
}
++$i;
if ($done) {
continue 2;
}
}
}
throw new ParseException(sprintf('Malformed inline YAML string %s', $mapping));
}