final class EmbedTokenParser extends IncludeTokenParser
{ public function parse(Token
$token): Node
{ $stream =
$this->parser->
getStream();
$parent =
$this->parser->
getExpressionParser()->
parseExpression();
list
($variables,
$only,
$ignoreMissing) =
$this->
parseArguments();
$parentToken =
$fakeParentToken =
new Token(/* Token::STRING_TYPE */ 7, '__parent__',
$token->
getLine());
if ($parent instanceof ConstantExpression
) { $parentToken =
new Token(/* Token::STRING_TYPE */ 7,
$parent->
getAttribute('value'
),
$token->
getLine());
} elseif ($parent instanceof NameExpression
) { $parentToken =
new Token(/* Token::NAME_TYPE */ 5,
$parent->
getAttribute('name'
),
$token->
getLine());
} // inject a fake parent to make the parent() function work
$stream->
injectTokens([ new Token(/* Token::BLOCK_START_TYPE */ 1, '',
$token->
getLine()),