$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 */ 3
);
$body =
$this->parser->
subparse([$this, 'decideBlockEnd'
], true
);
$stream->
expect(/* Token::BLOCK_END_TYPE */ 3
);
return new AutoEscapeNode($value,
$body,
$lineno,
$this->
getTag());
} public function decideBlockEnd(Token
$token): bool
{ return $token->
test('endautoescape'
);
} public function getTag(): string
{ return 'autoescape';
}}