예제 #1
0
 public function compile(Compiler $compiler)
 {
     /** @var Node[] $tests */
     $tests = $this->getNode(self::NODE_TESTS);
     for ($i = 0; $i < count($tests); $i += 2) {
         $test = $tests[$i];
         $true = $tests[$i + 1];
         if ($i == 0) {
             $compiler->write('if ( ');
         } else {
             $compiler->raw(' elseif ( ');
         }
         $compiler->subcompile($test)->raw(' ) { ' . "\n")->indent()->subcompile($true)->outdent()->write('}');
     }
     if ($this->hasNode(self::NODE_ELSE)) {
         $compiler->raw(' else { ' . "\n")->indent()->subcompile($this->getNode(self::NODE_ELSE))->outdent()->write('}');
     }
     $compiler->line();
 }