/** * @param File * @return bool if file was changed */ public function transpile(File $file) { $oldSource = $source = file_get_contents($file->getFilename()); foreach ($file->getTokens() as $key => $token) { if (isset($this->listeners[$token['code']])) { /** @var Rule $rule */ foreach ($this->listeners[$token['code']] as $rule) { $source = $rule->execute($file, $key); } } } if ($oldSource !== $source) { $this->writer->writeFile($file->getFilename(), $source); return TRUE; } else { $this->writer->writeFile($file->getFilename(), $oldSource); return FALSE; } }