phug-php/compiler

View on GitHub
Compiler/NodeCompiler/WhenNodeCompiler.php

Summary

Maintainability
A
0 mins
Test Coverage
<?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;
}
}