示例#1
0
 /**
  * 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;
 }
示例#2
0
 /**
  * Constructor.
  */
 public function __construct()
 {
     parent::__construct();
     if (defined('HHVM_VERSION')) {
         $this->nativeImporter = new HHVMImporter();
     } else {
         $this->nativeImporter = new NativeImporter();
     }
 }