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

Breadcrumb

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

function AutoEscapeTokenParser::parse

Overrides TokenParserInterface::parse

File

vendor/twig/twig/src/TokenParser/AutoEscapeTokenParser.php, line 27

Class

AutoEscapeTokenParser
Marks a section of a template to be escaped or not.

Namespace

Twig\TokenParser

Code

public function parse(Token $token) : Node {
    $lineno = $token->getLine();
    $stream = $this->parser
        ->getStream();
    if ($stream->test(Token::BLOCK_END_TYPE)) {
        $value = 'html';
    }
    else {
        $expr = $this->parser
            ->getExpressionParser()
            ->parseExpression();
        if (!$expr instanceof ConstantExpression) {
            throw new SyntaxError('An escaping strategy must be a string or false.', $stream->getCurrent()
                ->getLine(), $stream->getSourceContext());
        }
        $value = $expr->getAttribute('value');
    }
    $stream->expect(Token::BLOCK_END_TYPE);
    $body = $this->parser
        ->subparse([
        $this,
        'decideBlockEnd',
    ], true);
    $stream->expect(Token::BLOCK_END_TYPE);
    return new AutoEscapeNode($value, $body, $lineno);
}

API Navigation

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