tokenIteratorFactory = $tokenIteratorFactory; parent::__construct($constExprParser); } public function parse(TokenIterator $tokenIterator) : TypeNode { $betterTokenIterator = $this->tokenIteratorFactory->createFromTokenIterator($tokenIterator); $startPosition = $betterTokenIterator->currentPosition(); $typeNode = parent::parse($betterTokenIterator); $endPosition = $betterTokenIterator->currentPosition(); $startAndEnd = new StartAndEnd($startPosition, $endPosition); $typeNode->setAttribute(PhpDocAttributeKey::START_AND_END, $startAndEnd); return $typeNode; } }