mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
Macro accept arguments as variables (starts from $)
This commit is contained in:
parent
8adc2ac55d
commit
11ae49f187
@ -889,7 +889,12 @@ class Compiler
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while ($tokens->is(Tokenizer::MACRO_STRING, T_VARIABLE)) {
|
while ($tokens->is(Tokenizer::MACRO_STRING, T_VARIABLE)) {
|
||||||
$args[] = $param = $tokens->getAndNext();
|
$param = $tokens->current();
|
||||||
|
if($tokens->is(T_VARIABLE)) {
|
||||||
|
$param = ltrim($param, '$');
|
||||||
|
}
|
||||||
|
$tokens->next();
|
||||||
|
$args[] = $param;
|
||||||
if ($tokens->is('=')) {
|
if ($tokens->is('=')) {
|
||||||
$tokens->next();
|
$tokens->next();
|
||||||
if ($tokens->is(T_CONSTANT_ENCAPSED_STRING, T_LNUMBER, T_DNUMBER) || $tokens->isSpecialVal()) {
|
if ($tokens->is(T_CONSTANT_ENCAPSED_STRING, T_LNUMBER, T_DNUMBER) || $tokens->isSpecialVal()) {
|
||||||
|
@ -31,7 +31,7 @@ class MacrosTest extends TestCase
|
|||||||
');
|
');
|
||||||
|
|
||||||
$this->tpl("import_custom.tpl", '
|
$this->tpl("import_custom.tpl", '
|
||||||
{macro minus(x, y)}
|
{macro minus($x, $y)}
|
||||||
new minus macros
|
new minus macros
|
||||||
{/macro}
|
{/macro}
|
||||||
{import [plus, minus] from "math.tpl" as math}
|
{import [plus, minus] from "math.tpl" as math}
|
||||||
@ -88,6 +88,9 @@ class MacrosTest extends TestCase
|
|||||||
$this->assertSame('Imp: x + y = 3 , x - y - z = 3', Modifier::strip($tpl->fetch(array()), true));
|
$this->assertSame('Imp: x + y = 3 , x - y - z = 3', Modifier::strip($tpl->fetch(array()), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group importCustom
|
||||||
|
*/
|
||||||
public function testImportCustom()
|
public function testImportCustom()
|
||||||
{
|
{
|
||||||
$tpl = $this->fenom->compile('import_custom.tpl');
|
$tpl = $this->fenom->compile('import_custom.tpl');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user