if (!
$stream->
test(/* Token::BLOCK_END_TYPE */ 3
)) { $variables =
$this->parser->
getExpressionParser()->
parseExpression();
$only =
(bool) $stream->
nextIf(/* Token::NAME_TYPE */ 5, 'only'
);
} $stream->
expect(/* Token::BLOCK_END_TYPE */ 3
);
$body =
$this->parser->
subparse([$this, 'decideWithEnd'
], true
);
$stream->
expect(/* Token::BLOCK_END_TYPE */ 3
);
return new WithNode($body,
$variables,
$only,
$token->
getLine(),
$this->
getTag());
} public function decideWithEnd(Token
$token): bool
{ return $token->
test('endwith'
);
} public function getTag(): string
{ return 'with';
}}