diff options
Diffstat (limited to 'tests/general/coexpr.icn')
-rw-r--r-- | tests/general/coexpr.icn | 72 |
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(¤t)) + 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" |