/* Decoded by unphp.net */ * * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ declare(strict_types=1); namespace Zephir\Optimizers\FunctionCall; use Zephir\Call; use Zephir\CompilationContext; use Zephir\CompiledExpression; use Zephir\Optimizers\OptimizerAbstract; use function count; /** * FeofOptimizer. * * Optimizes calls to 'feof' using internal function */ class FeofOptimizer extends OptimizerAbstract { /** * @param array $expression * @param Call $call * @param CompilationContext $context * * @return bool|CompiledExpression|mixed */ public function optimize(array $expression, Call $call, CompilationContext $context) { if (!isset($expression['parameters'])) { return false; } if (1 != count($expression['parameters'])) { return false; } $context->headersManager->add('kernel/file'); $resolvedParams = $call->getReadOnlyResolvedParams($expression['parameters'], $context, $expression); return new CompiledExpression('bool', 'zephir_feof(' . $resolvedParams[0] . ')', $expression); } } ?>