src/Phug/Compiler/Compiler/NodeCompiler/WhenNodeCompiler.php
<?php
namespace Phug\Compiler\NodeCompiler;
use Phug\Compiler\AbstractNodeCompiler;
use Phug\Formatter\Element\CodeElement;
use Phug\Formatter\ElementInterface;
use Phug\Parser\Node\WhenNode;
use Phug\Parser\NodeInterface;
class WhenNodeCompiler extends AbstractNodeCompiler
{
public function compileNode(NodeInterface $node, ElementInterface $parent = null)
{
$this->getCompiler()->assert(
$node instanceof WhenNode,
'Unexpected '.get_class($node).' given to when compiler.',
$node
);
/**
* @var WhenNode $node
*/
$value = $node->getSubject();
if ($value === null) {
$parent->appendChild(new CodeElement('default:', $node));
$this->compileNodeChildren($node, $parent);
return null;
}
$parent->appendChild(new CodeElement('case '.$value.':', $node));
if ($node->hasChildren()) {
$this->compileNodeChildren($node, $parent);
$parent->appendChild(new CodeElement('break;', $node));
}
return null;
}
}