mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
Done #97 + tests
This commit is contained in:
@@ -748,13 +748,17 @@ class Compiler
|
||||
$before = "if(!isset($var)) {\n";
|
||||
$after = "\n}";
|
||||
}
|
||||
if ($tokens->is('=')) { // inline tag {var ...}
|
||||
if ($tokens->is(Tokenizer::MACRO_EQUALS, '[')) { // inline tag {var ...}
|
||||
$equal = $tokens->getAndNext();
|
||||
if($equal == '[') {
|
||||
$tokens->need(']')->next()->need('=')->next();
|
||||
$equal = '[]=';
|
||||
}
|
||||
$scope->close();
|
||||
$tokens->next();
|
||||
if ($tokens->is("[")) {
|
||||
return $before.$var . '=' . $scope->tpl->parseArray($tokens) . ';'.$after;
|
||||
return $before.$var . $equal . $scope->tpl->parseArray($tokens) . ';'.$after;
|
||||
} else {
|
||||
return $before.$var . '=' . $scope->tpl->parseExpr($tokens) . ';'.$after;
|
||||
return $before.$var . $equal . $scope->tpl->parseExpr($tokens) . ';'.$after;
|
||||
}
|
||||
} else {
|
||||
$scope["name"] = $var;
|
||||
|
||||
@@ -693,11 +693,15 @@ class Template extends Render
|
||||
$cond = false;
|
||||
}
|
||||
$op = $tokens->getAndNext();
|
||||
} elseif ($tokens->is(Tokenizer::MACRO_EQUALS)) { // assignment operator: $a = 4, $a += 3, ...
|
||||
} elseif ($tokens->is(Tokenizer::MACRO_EQUALS, '[')) { // assignment operator: $a = 4, $a += 3, ...
|
||||
if (!$var) {
|
||||
break;
|
||||
}
|
||||
$op = $tokens->getAndNext();
|
||||
if($op == '[') {
|
||||
$tokens->need(']')->next()->need('=')->next();
|
||||
$op = '[]=';
|
||||
}
|
||||
} elseif ($tokens->is(T_STRING)) { // test or containment operator: $a in $b, $a is set, ...
|
||||
if (!$exp) {
|
||||
break;
|
||||
@@ -866,6 +870,9 @@ class Template extends Render
|
||||
}
|
||||
$var .= $key;
|
||||
} elseif ($t === "[") {
|
||||
if($tokens->isNext(']')) {
|
||||
break;
|
||||
}
|
||||
$tokens->next();
|
||||
if ($tokens->is(Tokenizer::MACRO_STRING)) {
|
||||
if ($tokens->isNext("(")) {
|
||||
|
||||
@@ -241,7 +241,6 @@ class Tokenizer
|
||||
\T_SR_EQUAL => 1,
|
||||
\T_XOR_EQUAL => 1,
|
||||
'=' => 1,
|
||||
// \T_CONCAT_EQUAL => 1,
|
||||
),
|
||||
self::MACRO_SCALAR => array(
|
||||
\T_LNUMBER => 1,
|
||||
|
||||
Reference in New Issue
Block a user