Хорошо, теперь я вижу ...
Я запускаю его как:
$this->parser = (new ParserFactory)->create(ParserFactory::ONLY_PHP7, null, [
'usedAttributes' => [ 'startFilePos', 'endFilePos' ]
]);
Но на самом деле третий параметр не передается в Lexer какЯ ожидал, и он поддерживает только устаревшую опцию throwOnError
.
Поэтому я применил ее непосредственно к Lexer:
$this->parser = (new ParserFactory)->create(ParserFactory::ONLY_PHP7, new Lexer([
'usedAttributes' => [ 'startFilePos', 'endFilePos' ]
]));
Теперь я правильно получаю смещение файла.