/** * Compile a set of files * * @param xp.compiler.io.Source[] sources * @param xp.compiler.diagnostic.DiagnosticListener listener * @param xp.compiler.io.FileManager manager * @param xp.compiler.emit.Emitter emitter * @return bool success if all files compiled correctly, true, false otherwise */ public function compile(array $sources, DiagnosticListener $listener, FileManager $manager, Emitter $emitter) { $emitter->setTrace($this->cat); $listener->runStarted(); $errors = 0; $done = create('new util.collections.HashTable<xp.compiler.io.Source, xp.compiler.types.Types>()'); foreach ($sources as $source) { try { (new CompilationTask($source, $listener, $manager, $emitter, $done))->run(); } catch (CompilationException $e) { $errors++; } } $listener->runFinished(); return 0 === $errors; }
/** * Constructor. */ public function __construct() { parent::__construct(); if (defined('HHVM_VERSION')) { $this->nativeImporter = new HHVMImporter(); } else { $this->nativeImporter = new NativeImporter(); } }