Ejemplo n.º 1
0
 /**
  * {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;
 }
Ejemplo n.º 2
0
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