#!/usr/bin/env php <?php set_include_path(__DIR__ . '/../../src/' . PATH_SEPARATOR . get_include_path()); require 'phpMorphy.php'; $root_dir = PHPMORPHY_DIR . '/phpMorphy'; $out_dir = PHPMORPHY_DIR; phpMorphy_Util_Fs::applyToEachFile($root_dir, '/\\.php$/', function ($path) use($out_dir) { convert_file($path, $out_dir, 'logger'); }); phpMorphy_Util_Fs::deleteEmptyDirectories($root_dir, 'logger'); function convert_file($path, $outDir, $log) { global $out_dir; $lines = array_map('rtrim', file($path)); try { $descriptor = phpMorphy_Generator_PhpFileParser::parseFile($path); } catch (Exception $e) { throw new phpMorphy_Exception("Can`t parse '{$path}': " . $e->getMessage()); } if (count($descriptor->classes) < 1) { return; } $first_class = $descriptor->classes[0]; $first_significant_line = null === $first_class->phpDoc ? $first_class->startLine : $first_class->phpDoc->startLine; $header = array_slice($lines, 0, $first_significant_line - 1); $header = implode(PHP_EOL, $header); $out_files = array(); $classes_count = count($descriptor->classes); foreach ($descriptor->classes as $class_descriptor) { $class_name = $class_descriptor->name; $out_path = $outDir . DIRECTORY_SEPARATOR . phpMorphy_Loader::classNameToFilePath($class_name);