diff options
author | Kevin Chabowski <kevin@kch42.de> | 2014-05-24 01:29:11 +0200 |
---|---|---|
committer | Kevin Chabowski <kevin@kch42.de> | 2014-05-24 01:29:11 +0200 |
commit | fdbe2e9521aa54ec6e0b70c1cb0f532248e531e4 (patch) | |
tree | 9648d9b90650adcf250c93e14a194ebad0edb7cb | |
parent | 7a8dd0b67c207516ee6c4d597002e26574f5811f (diff) | |
download | ste-fdbe2e9521aa54ec6e0b70c1cb0f532248e531e4.tar.gz ste-fdbe2e9521aa54ec6e0b70c1cb0f532248e531e4.tar.bz2 ste-fdbe2e9521aa54ec6e0b70c1cb0f532248e531e4.zip |
Fixed ste:get
Didn't work at all before. The varname was not passed correctly.
Also added the test case that showed this.
-rw-r--r-- | Transcompiler.php | 3 | ||||
-rw-r--r-- | tests/test.php | 1 | ||||
-rw-r--r-- | tests/test_getset/.gitignore | 3 | ||||
-rw-r--r-- | tests/test_getset/code.php | 5 | ||||
-rw-r--r-- | tests/test_getset/test.tpl | 5 | ||||
-rw-r--r-- | tests/test_getset/want | 4 |
6 files changed, 19 insertions, 2 deletions
diff --git a/Transcompiler.php b/Transcompiler.php index 26011f3..8b52fa2 100644 --- a/Transcompiler.php +++ b/Transcompiler.php @@ -342,8 +342,7 @@ class Transcompiler { } list($val, $pre) = self::_transcompile($ast->params["var"], true); - $code .= $pre; - return "\$outputstack[\$outputstack_i] .= \$ste->get_var_by_name(" . $val . ");"; + return "$pre\$outputstack[\$outputstack_i] .= \$ste->get_var_by_name(" . $val . ");"; }, "calc" => function($ast) { $code = "\$outputstack[] = '';\n\$outputstack_i++;\n"; diff --git a/tests/test.php b/tests/test.php index c765fb4..79fb69d 100644 --- a/tests/test.php +++ b/tests/test.php @@ -19,5 +19,6 @@ class TestStorage implements \ste\StorageAccess { } $ste = new \ste\STECore(new TestStorage()); +$ste->mute_runtime_errors = false; test_func($ste); echo $ste->exectemplate("test.tpl"); diff --git a/tests/test_getset/.gitignore b/tests/test_getset/.gitignore new file mode 100644 index 0000000..de2a41b --- /dev/null +++ b/tests/test_getset/.gitignore @@ -0,0 +1,3 @@ +have +*.ast +*.transc.php diff --git a/tests/test_getset/code.php b/tests/test_getset/code.php new file mode 100644 index 0000000..19a7ecd --- /dev/null +++ b/tests/test_getset/code.php @@ -0,0 +1,5 @@ +<?php + +function test_func($ste) { + $ste->vars["foo"] = "bar"; +} diff --git a/tests/test_getset/test.tpl b/tests/test_getset/test.tpl new file mode 100644 index 0000000..06f865a --- /dev/null +++ b/tests/test_getset/test.tpl @@ -0,0 +1,5 @@ +\$foo = $foo +\$foo = <ste:get var="foo" /> +<ste:set var="foo">baz</ste:set> +\$foo = $foo +\$foo = <ste:get var="foo" /> diff --git a/tests/test_getset/want b/tests/test_getset/want new file mode 100644 index 0000000..567c753 --- /dev/null +++ b/tests/test_getset/want @@ -0,0 +1,4 @@ +$foo = bar +$foo = bar +$foo = baz +$foo = baz |