Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ExpressionParser.php

function ExpressionParser::parseSequenceExpression

1 call to ExpressionParser::parseSequenceExpression()
ExpressionParser::parseArrayExpression in vendor/twig/twig/src/ExpressionParser.php

File

vendor/twig/twig/src/ExpressionParser.php, line 412

Class

ExpressionParser
Parses expressions.

Namespace

Twig

Code

public function parseSequenceExpression() {
    $stream = $this->parser
        ->getStream();
    $stream->expect(Token::PUNCTUATION_TYPE, '[', 'A sequence element was expected');
    $node = new ArrayExpression([], $stream->getCurrent()
        ->getLine());
    $first = true;
    while (!$stream->test(Token::PUNCTUATION_TYPE, ']')) {
        if (!$first) {
            $stream->expect(Token::PUNCTUATION_TYPE, ',', 'A sequence element must be followed by a comma');
            // trailing ,?
            if ($stream->test(Token::PUNCTUATION_TYPE, ']')) {
                break;
            }
        }
        $first = false;
        if ($stream->nextIf(Token::SPREAD_TYPE)) {
            $expr = $this->parseExpression();
            $expr->setAttribute('spread', true);
            $node->addElement($expr);
        }
        else {
            $node->addElement($this->parseExpression());
        }
    }
    $stream->expect(Token::PUNCTUATION_TYPE, ']', 'An opened sequence is not properly closed');
    return $node;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal