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(); }