private static function parseSequence($sequence, $flags, &$i = 0, $references = array())
    {
        $output = array();
        $len = \strlen($sequence);
        ++$i;

        // [foo, bar, ...]
        while ($i < $len) {
            if (']' === $sequence[$i]) {
                return $output;
            }
            if (',' === $sequence[$i] || ' ' === $sequence[$i]) {
                ++$i;

                continue;
            }

            $tag = self::parseTag($sequence, $i, $flags);
            switch ($sequence[$i]) {
                case '[':
                    // nested sequence
                    $value = self::parseSequence($sequence, $flags, $i, $references);
                    break;
                case '{':
                    // nested mapping
                    $value = self::parseMapping($sequence, $flags, $i, $references);
                    break;
                default:
                    $isQuoted = \in_array($sequence[$i], array('"', "'"));
                    $value = self::parseScalar($sequence, $flags, array(',', ']'), $i, null === $tag, $references);

                    // the value can be an array if a reference has been resolved to an array var
                    if (\is_string($value) && !$isQuoted && false !== strpos($value, ': ')) {
                        // embedded mapping?
                        try {
                            $pos = 0;
                            $value = self::parseMapping('{'.$value.'}', $flags, $pos, $references);
                        } catch (\InvalidArgumentException $e) {
                            // no, it's not
                        }
                    }

                    --$i;
            }

            if (null !== $tag) {
                $value = new TaggedValue($tag, $value);
            }

            $output[] = $value;

            ++$i;
        }

        throw new ParseException(sprintf('Malformed inline YAML string: %s.', $sequence), self::$parsedLineNumber + 1, null, self::$parsedFilename);
    }
private static function parseSequence($sequence, $flags, &$i = 0, $references = array())
    {
        $output = array();
        $len = \strlen($sequence);
        ++$i;

        // [foo, bar, ...]
        while ($i < $len) {
            if (']' === $sequence[$i]) {
                return $output;
            }
            if (',' === $sequence[$i] || ' ' === $sequence[$i]) {
                ++$i;

                continue;
            }

            $tag = self::parseTag($sequence, $i, $flags);
            switch ($sequence[$i]) {
                case '[':
                    // nested sequence
                    $value = self::parseSequence($sequence, $flags, $i, $references);
                    break;
                case '{':
                    // nested mapping
                    $value = self::parseMapping($sequence, $flags, $i, $references);
                    break;
                default:
                    $isQuoted = \in_array($sequence[$i], array('"', "'"));
                    $value = self::parseScalar($sequence, $flags, array(',', ']'), $i, null === $tag, $references);

                    // the value can be an array if a reference has been resolved to an array var
                    if (\is_string($value) && !$isQuoted && false !== strpos($value, ': ')) {
                        // embedded mapping?
                        try {
                            $pos = 0;
                            $value = self::parseMapping('{'.$value.'}', $flags, $pos, $references);
                        } catch (\InvalidArgumentException $e) {
                            // no, it's not
                        }
                    }

                    --$i;
            }

            if (null !== $tag) {
                $value = new TaggedValue($tag, $value);
            }

            $output[] = $value;

            ++$i;
        }

        throw new ParseException(sprintf('Malformed inline YAML string: %s.', $sequence), self::$parsedLineNumber + 1, null, self::$parsedFilename);
    }
private static function parseSequence ( $ sequence , $ flags , & $ i = 0 , $ references = array ( ) ) { $ output = array ( ) ; $ len = \ strlen ( $ sequence ) ; ++ $ i ; // [foo, bar, ...] while ( $ i < $ len ) { if ( ']' === $ sequence [ $ i ] ) { return $ output ; } if ( ',' === $ sequence [ $ i ] || ' ' === $ sequence [ $ i ] ) { ++ $ i ; continue ; } $ tag = self :: parseTag ( $ sequence , $ i , $ flags ) ; switch ( $ sequence [ $ i ] ) { case '[' : // nested sequence $ value = self :: parseSequence ( $ sequence , $ flags , $ i , $ references ) ; break ; case '{' : // nested mapping $ value = self :: parseMapping ( $ sequence , $ flags , $ i , $ references ) ; break ; default : $ isQuoted = \ in_array ( $ sequence [ $ i ] , array ( '"' , "'" ) ) ; $ value = self :: parseScalar ( $ sequence , $ flags , array ( ',' , ']' ) , $ i , null === $ tag , $ references ) ; // the value can be an array if a reference has been resolved to an array var if ( \ is_string ( $ value ) && ! $ isQuoted && false !== strpos ( $ value , ': ' ) ) { // embedded mapping? try { $ pos = 0 ; $ value = self :: parseMapping ( '{' . $ value . '}' , $ flags , $ pos , $ references ) ; } catch ( \ InvalidArgumentException $ e ) { // no, it's not } } -- $ i ; } if ( null !== $ tag ) { $ value = new TaggedValue ( $ tag , $ value ) ; } $ output [ ] = $ value ; ++ $ i ; } throw new ParseException ( sprintf ( 'Malformed inline YAML string: %s.' , $ sequence ) , self :: $ parsedLineNumber + 1 , null , self :: $ parsedFilename ) ; }
Parses a YAML sequence.

@param string $sequence
@param int    $flags
@param int    &$i
@param array  $references

@return array

@throws ParseException When malformed inline YAML string is parsed
Parses a YAML sequence .