protected function build($node)
{
$self = $this;
return preg_replace_callback('/\\{\\-(.+?)\\-\\}|\\{\\{(.+?)\\}\\}(\\n+)?|(\\{\\*.*?\\*\\})/s', function ($expr) use($self) {
if ($expr[1]) {
return $expr[1];
}
$str = trim($self->token($expr[2]));
return empty($expr[4]) ? '<?php echo ' . $str . '; ?>' . (isset($expr[3]) ? $expr[3] . "\n" : '') : '';
}, preg_replace_callback('/\\{~(.+?)~\\}/s', function ($expr) use($self) {
return '<?php ' . $self->token($expr[1]) . ' ?>';
}, $node));
}