summaryrefslogtreecommitdiff
path: root/tests/defer.toc
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2020-03-18 18:12:13 -0400
committerLeo Tenenbaum <pommicket@gmail.com>2020-03-18 18:12:13 -0400
commit3755ea8479b54cd823a6151e230e6cda8894d69a (patch)
treecd88d7d6b3bf55aabb54b6aabe49e79e70da4f4b /tests/defer.toc
parent729531697131582f4bc992be886e7a4c6030fbc7 (diff)
defer seems to be fully working
Diffstat (limited to 'tests/defer.toc')
-rw-r--r--tests/defer.toc36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/defer.toc b/tests/defer.toc
new file mode 100644
index 0000000..77a4c4e
--- /dev/null
+++ b/tests/defer.toc
@@ -0,0 +1,36 @@
+#include "io.toc", io;
+
+main ::= fn() {
+ defer io.puts("deferred from main()");
+ for i := 1..10 {
+ defer io.puts("deferred from for");
+ io.puti(i);
+ if i == 2 {
+ defer io.puts("deferred from if1");
+ defer io.puts("deferred from if2");
+ defer io.puts("deferred from if3");
+ defer io.puts("deferred from if4");
+ defer io.puts("deferred from if5");
+ defer io.puts("deferred from if6");
+ defer io.puts("deferred from if7");
+ defer io.puts("deferred from if8");
+ continue;
+ }
+ if i == 8 {
+ break;
+ }
+ }
+ i := 0;
+ while {
+ defer io.puts("deferred from while");
+ i += 1;
+ io.puti(i);
+ if i % 2 == 0 { continue; }
+ if i == 7 {
+ defer io.puts("deferred from if");
+ break;
+ }
+
+ }
+ io.puts("end of main()");
+}