public function macroEndWhile(MacroNode $node, PhpWriter $writer) { if ($node->data->do) { if ($node->args === '') { throw new CompileException('Missing condition in {while} macro.'); } return $writer->write('} while (%node.args);'); } return '}'; }