/** * {var ...} * {default ...} */ public function macroVar(MacroNode $node, PhpWriter $writer) { $out = ''; $var = TRUE; $tokenizer = $writer->preprocess(); while ($token = $tokenizer->fetchToken()) { if ($var && ($token['type'] === Latte\MacroTokenizer::T_SYMBOL || $token['type'] === Latte\MacroTokenizer::T_VARIABLE)) { if ($node->name === 'default') { $out .= "'" . ltrim($token['value'], "\$") . "'"; } else { $out .= '$' . ltrim($token['value'], "\$"); } $var = NULL; } elseif (($token['value'] === '=' || $token['value'] === '=>') && $token['depth'] === 0) { $out .= $node->name === 'default' ? '=>' : '='; $var = FALSE; } elseif ($token['value'] === ',' && $token['depth'] === 0) { $out .= $node->name === 'default' ? ',' : ';'; $var = TRUE; } elseif ($var === NULL && $node->name === 'default' && $token['type'] !== Latte\MacroTokenizer::T_WHITESPACE) { throw new CompileException("Unexpected '{$token['value']}' in {default {$node->args}}"); } else { $out .= $writer->canQuote($tokenizer) ? "'{$token['value']}'" : $token['value']; } } return $node->name === 'default' ? "extract(array({$out}), EXTR_SKIP)" : $out; }
macroDebugbreak(MacroNode$node,PhpWriter$writer){return$writer->write(($node->args==NULL?'':'if (!(%node.args)); else').'if (function_exists("debugbreak")) debugbreak(); elseif (function_exists("xdebug_break")) xdebug_break()');}function macroVar(MacroNode$node,PhpWriter$writer){$out='';$var=TRUE;$tokenizer=$writer->preprocess();while($token=$tokenizer->fetchToken()){if($var&&($token['type']===Latte\MacroTokenizer::T_SYMBOL||$token['type']===Latte\MacroTokenizer::T_VARIABLE)){if($node->name==='default'){$out.="'".ltrim($token['value'],"$")."'";}else{$out.='$'.ltrim($token['value'],"$");}$var=NULL;}elseif(($token['value']==='='||$token['value']==='=>')&&$token['depth']===0){$out.=$node->name==='default'?'=>':'=';$var=FALSE;}elseif($token['value']===','&&$token['depth']===0){$out.=$node->name==='default'?',':';';$var=TRUE;}elseif($var===NULL&&$node->name==='default'&&$token['type']!==Latte\MacroTokenizer::T_WHITESPACE){throw new CompileException("Unexpected '$token[value]' in {default $node->args}");}else{$out.=$writer->canQuote($tokenizer)?"'$token[value]'":$token['value'];}}return$node->name==='default'?"extract(array($out), EXTR_SKIP)":$out;}function