about summary refs log tree commit diff
path: root/boot/tests/transpile/expressions.cskt
diff options
context:
space:
mode:
authorMel <mel@rnrd.eu>2026-05-24 20:30:11 +0200
committerMel <mel@rnrd.eu>2026-05-24 20:30:11 +0200
commit7af54064b23efe1f18fab9e7ee20b0fc811c36b5 (patch)
treed8482ce29cdee1892c843f57be881e6fecb98d2d /boot/tests/transpile/expressions.cskt
parent2a893246711442dd8407264c05991b44d1d1f66f (diff)
downloadcatskill-7af54064b23efe1f18fab9e7ee20b0fc811c36b5.tar.zst
catskill-7af54064b23efe1f18fab9e7ee20b0fc811c36b5.zip
Power operator via runtime library implementation
Signed-off-by: Mel <mel@rnrd.eu>
Diffstat (limited to 'boot/tests/transpile/expressions.cskt')
-rw-r--r--boot/tests/transpile/expressions.cskt9
1 files changed, 9 insertions, 0 deletions
diff --git a/boot/tests/transpile/expressions.cskt b/boot/tests/transpile/expressions.cskt
index c127b9a..0ca3c01 100644
--- a/boot/tests/transpile/expressions.cskt
+++ b/boot/tests/transpile/expressions.cskt
@@ -1,5 +1,8 @@
 precedence-aware expression emission only inserts parentheses when the
 child binds more loosely than the parent expects.
+`**` has no c equivalent and is routed through the integer-power
+runtime helper, with right-associative chaining preserved by the
+recursive expansion of the call arguments.
 
 <<<
 
@@ -10,6 +13,9 @@ main = fun () {
     var d int = 10 - (4 - 1)
     var e int = -1 + 2
     var f bool = a == b && c != 0 || d > 0
+    var g int = 2 ** 10
+    var h int = 2 ** 2 ** 3
+    var i int = 1 + 2 ** 3
 }
 
 >>>
@@ -23,5 +29,8 @@ void catskill_main(void) {
     integer d = 10 - (4 - 1);
     integer e = -1 + 2;
     bool f = a == b && c != 0 || d > 0;
+    integer g = pow_integer(2, 10);
+    integer h = pow_integer(2, pow_integer(2, 3));
+    integer i = 1 + pow_integer(2, 3);
 }
 #include "runtime.c"