1<?php declare(strict_types=1); 2 3namespace PhpParser\Lexer\TokenEmulator; 4 5/** @internal */ 6abstract class TokenEmulator 7{ 8 abstract public function getPhpVersion(): string; 9 10 abstract public function isEmulationNeeded(string $code): bool; 11 12 /** 13 * @return array Modified Tokens 14 */ 15 abstract public function emulate(string $code, array $tokens): array; 16 17 /** 18 * @return array Modified Tokens 19 */ 20 abstract public function reverseEmulate(string $code, array $tokens): array; 21 22 public function preprocessCode(string $code, array &$patches): string { 23 return $code; 24 } 25} 26