From 43925ae6400ed5712078b4b6da3e9e8f5aa56436 Mon Sep 17 00:00:00 2001 From: bzick Date: Fri, 2 Aug 2013 23:01:06 +0400 Subject: [PATCH] Fix ternary operator --- src/Fenom/Template.php | 4 +--- tests/cases/Fenom/TemplateTest.php | 6 +++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Fenom/Template.php b/src/Fenom/Template.php index c585e75..924dc48 100644 --- a/src/Fenom/Template.php +++ b/src/Fenom/Template.php @@ -907,9 +907,7 @@ class Template extends Render } } else { $expr1 = $this->parseExp($tokens, true); - if (!$tokens->is(":")) { - throw new UnexpectedTokenException($tokens, null, "ternary operator"); - } + $tokens->need(':')->skip(); $expr2 = $this->parseExp($tokens, true); if ($empty) { return '(empty(' . $var . ') ? ' . $expr2 . ' : ' . $expr1 . ')'; diff --git a/tests/cases/Fenom/TemplateTest.php b/tests/cases/Fenom/TemplateTest.php index 8ea7e12..eefe174 100644 --- a/tests/cases/Fenom/TemplateTest.php +++ b/tests/cases/Fenom/TemplateTest.php @@ -404,7 +404,11 @@ class TemplateTest extends TestCase array('{if $nonempty.double!} right {/if}', $a), array('{if $nonempty.bool!} right {/if}', $a), // ! ... : ... + array('{$unexists ! "no way" : "right"}', $a), + array('{$a ! "right" : "no way"}', $a), // !: ... + array('{$unexists !: "right"}', $a), + array('{$a !: "right"}', $a, '1'), ); } @@ -673,7 +677,7 @@ class TemplateTest extends TestCase public function _testSandbox() { try { - var_dump($this->fenom->compileCode('{if 0 is empty} block1 {else} block2 {/if}')->getBody()); + var_dump($this->fenom->compileCode('{$a!"no way":"right"}')->getBody()); } catch (\Exception $e) { print_r($e->getMessage() . "\n" . $e->getTraceAsString()); }