summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Chabowski <kevin@kch42.de>2013-10-25 21:43:37 +0200
committerKevin Chabowski <kevin@kch42.de>2013-10-25 21:43:37 +0200
commiteebf5cb885f266104333ac145355ef6e2599e5f6 (patch)
treea86dae876afae2dcea9a3d70e3b513e305b38415
parent6dc747c097e096075b4726eb4aebf1ce0ed71276 (diff)
downloadste-parser2.tar.gz
ste-parser2.tar.bz2
ste-parser2.zip
New Testparser2
-rw-r--r--stupid_template_engine.php2
-rw-r--r--tests/test_escapes/.gitignore3
-rw-r--r--tests/test_escapes/code.php7
-rw-r--r--tests/test_escapes/test.tpl7
-rw-r--r--tests/test_escapes/want7
5 files changed, 25 insertions, 1 deletions
diff --git a/stupid_template_engine.php b/stupid_template_engine.php
index cfb5882..dd90a89 100644
--- a/stupid_template_engine.php
+++ b/stupid_template_engine.php
@@ -196,7 +196,7 @@ class Parser {
$off = $this->off;
$name = $this->take_while(function($c) { return ctype_alnum($c) || ($c == "_"); });
if(mb_strlen($name) == 0) {
- throw new ParseCompileError("Expected a name (alphanumeric chars + '_', at least one char)");
+ throw new ParseCompileError("Expected a name (alphanumeric chars + '_', at least one char)", $this->name, $off);
}
return $name;
}
diff --git a/tests/test_escapes/.gitignore b/tests/test_escapes/.gitignore
new file mode 100644
index 0000000..de2a41b
--- /dev/null
+++ b/tests/test_escapes/.gitignore
@@ -0,0 +1,3 @@
+have
+*.ast
+*.transc.php
diff --git a/tests/test_escapes/code.php b/tests/test_escapes/code.php
new file mode 100644
index 0000000..05984d1
--- /dev/null
+++ b/tests/test_escapes/code.php
@@ -0,0 +1,7 @@
+<?php
+
+function test_func($ste) {
+ $ste->register_tag("my_echo", function($ste, $params, $sub) {
+ return $params["text"];
+ });
+}
diff --git a/tests/test_escapes/test.tpl b/tests/test_escapes/test.tpl
new file mode 100644
index 0000000..5458fde
--- /dev/null
+++ b/tests/test_escapes/test.tpl
@@ -0,0 +1,7 @@
+\\\\\\\$foo
+\${bar}
+\?{foo|bar|baz}
+?{|Foo|Bar\|Baz}
+<ste:my_echo text="foo\\\"bar\$" />
+<ste:my_echo text='\'' />
+\' \ No newline at end of file
diff --git a/tests/test_escapes/want b/tests/test_escapes/want
new file mode 100644
index 0000000..3278c4d
--- /dev/null
+++ b/tests/test_escapes/want
@@ -0,0 +1,7 @@
+\\\$foo
+${bar}
+?{foo|bar|baz}
+Bar|Baz
+foo\"bar$
+'
+\'