summaryrefslogtreecommitdiff
path: root/tests/test_recursive
diff options
context:
space:
mode:
authorKevin Chabowski <kevin@kch42.de>2014-05-24 01:39:33 +0200
committerKevin Chabowski <kevin@kch42.de>2014-05-24 01:39:33 +0200
commit84d815f4e006e02521759070bb89025dab80b219 (patch)
tree418a03f0b8be181cb29230ad5e808d3213b4d3cb /tests/test_recursive
parentfdbe2e9521aa54ec6e0b70c1cb0f532248e531e4 (diff)
downloadste-84d815f4e006e02521759070bb89025dab80b219.tar.gz
ste-84d815f4e006e02521759070bb89025dab80b219.tar.bz2
ste-84d815f4e006e02521759070bb89025dab80b219.zip
Added scoping.
ste:mktag generated tags now have an own scope. They even resemble closures, since they inherit their parent scope. A lot of work was done to keep this compatible with older programs. However: * Templates that relied on the non-scoping behavior of tags will probably fail. * Since $ste->vars is no longer an actual array, things like $ste->vars["foo"]["bar"] = "baz" are no longer possible! A single field access will still work: $ste->vars["foo"] = "bar"
Diffstat (limited to 'tests/test_recursive')
-rw-r--r--tests/test_recursive/.gitignore3
-rw-r--r--tests/test_recursive/code.php5
-rw-r--r--tests/test_recursive/test.tpl11
-rw-r--r--tests/test_recursive/want1
4 files changed, 20 insertions, 0 deletions
diff --git a/tests/test_recursive/.gitignore b/tests/test_recursive/.gitignore
new file mode 100644
index 0000000..de2a41b
--- /dev/null
+++ b/tests/test_recursive/.gitignore
@@ -0,0 +1,3 @@
+have
+*.ast
+*.transc.php
diff --git a/tests/test_recursive/code.php b/tests/test_recursive/code.php
new file mode 100644
index 0000000..4ca3852
--- /dev/null
+++ b/tests/test_recursive/code.php
@@ -0,0 +1,5 @@
+<?php
+
+function test_func($ste) {
+ $ste->mute_runtime_errors = false;
+}
diff --git a/tests/test_recursive/test.tpl b/tests/test_recursive/test.tpl
new file mode 100644
index 0000000..bea3934
--- /dev/null
+++ b/tests/test_recursive/test.tpl
@@ -0,0 +1,11 @@
+<ste:mktag name="fac" mandatory="n">
+ <ste:if>
+ ~{$_tag_parameters[n]|eq|0}
+ <ste:then>1</ste:then>
+ <ste:else>
+ <ste:set var="nextn"><ste:calc>$_tag_parameters[n] - 1</ste:calc></ste:set>
+ <ste:calc><ste:fac n="$nextn" /> * $_tag_parameters[n]</ste:calc>
+ </ste:else>
+ </ste:if>
+</ste:mktag>
+<ste:fac n="10" /> \ No newline at end of file
diff --git a/tests/test_recursive/want b/tests/test_recursive/want
new file mode 100644
index 0000000..3fbd4a8
--- /dev/null
+++ b/tests/test_recursive/want
@@ -0,0 +1 @@
+3628800