summaryrefslogtreecommitdiff
path: root/tests/general/coexpr.icn
diff options
context:
space:
mode:
Diffstat (limited to 'tests/general/coexpr.icn')
-rw-r--r--tests/general/coexpr.icn72
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/general/coexpr.icn b/tests/general/coexpr.icn
new file mode 100644
index 0000000..e4fc621
--- /dev/null
+++ b/tests/general/coexpr.icn
@@ -0,0 +1,72 @@
+record array(a,b,c,d,e,f,g)
+
+procedure dummy(u,v,x,y,z)
+ suspend u | v
+ return x
+end
+
+
+procedure f(x,y,z)
+end
+
+procedure main()
+ if not(&features == "co-expressions") then
+ stop("co-expressions not supported")
+ write(image(&main))
+ write(image(&source))
+ write(image(&current))
+ e := create foo
+ write(image(foo))
+ f(&main,&source,e)
+ write(image(x := [array(),table(),write,input,1,"abc",'aa',&null,create 1]) | "failed")
+ write(image(x := sort(x)) | "failed")
+ write(image(every write(image(!x))) | "failed")
+ write(image(e := create 1 to 10) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(e := ^e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(@e) | "failed")
+ write(image(*e) | "failed")
+ write(image(*e) | "failed")
+ write(image(image(e)) | "failed")
+ write(image(tab := create {write("entering tab"); 1 | 2 | 3}) | "failed")
+ write(image(trim := create {write("entering trim"); @tab | (main @:= tab)}) | "failed")
+ write(image(@trim) | "failed")
+ write(image(@trim) | "failed")
+ write(image(write(image(trim))) | "failed")
+ write(image(write(image(tab))) | "failed")
+ write(image(write(image(main))) | "failed")
+ &trace := -1
+ dummy{1,2,3,4}
+ dummy{}
+ dummy(image{1,2,3,4})
+ dummy(put{1,2,3,4})
+ dummy("*"{1,2,3,4})
+ dummy(image("|||"([],[])))
+ dummy("+"(1,2))
+ dummy("+"(1))
+ dummy("image"(image(image)))
+ &trace := 0
+ e := create writer(1 to 4)
+ while write("return value ", @e)
+end
+
+procedure writer(n)
+ return write("in cx write ", n)
+end
+
+invocable "*", "|||", "+", "image"