aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-04-07 01:28:45 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-04-07 01:28:45 +0300
commit170f3ddc3d8967c0b5d4755c0221c396db215b2f (patch)
tree00314209cd7878b9d5b3fe6fc2e0c7297f76dec8 /tests
parent2bdf1f8b1856bca8091d66a7a447e6c90993c297 (diff)
downloadek-170f3ddc3d8967c0b5d4755c0221c396db215b2f.tar.gz
ek-170f3ddc3d8967c0b5d4755c0221c396db215b2f.zip
implement some initial qbt backend stuff
Diffstat (limited to 'tests')
-rw-r--r--tests/if.ek23
-rw-r--r--tests/if2.ek29
-rw-r--r--tests/loop.ek15
-rw-r--r--tests/loops.ek4
-rw-r--r--tests/pointer_literal.ek5
5 files changed, 71 insertions, 5 deletions
diff --git a/tests/if.ek b/tests/if.ek
new file mode 100644
index 0000000..ba8077b
--- /dev/null
+++ b/tests/if.ek
@@ -0,0 +1,23 @@
+typedef i9 {}
+typedef i27 {}
+
+putchar(i9 c)
+{
+ *i9 p = 19683 as *i9;
+ p* = c;
+}
+
+main()
+{
+ if 0 {
+ putchar('0');
+ }
+ else if 1 {
+ putchar('1');
+ }
+ else {
+ putchar('1');
+ }
+
+ putchar('\n');
+}
diff --git a/tests/if2.ek b/tests/if2.ek
new file mode 100644
index 0000000..b41b389
--- /dev/null
+++ b/tests/if2.ek
@@ -0,0 +1,29 @@
+typedef i9 {}
+typedef i27 {}
+
+putchar(i9 c)
+{
+ *i9 p = 19683 as *i9;
+ p* = c;
+}
+
+main()
+{
+ if 0 {
+ for i27 i = 0; i < 5; i = i + 1 {
+ putchar('0' + i);
+ }
+ }
+ else if 1 {
+ for i27 i = 0; i < 5; i = i + 1 {
+ putchar('A' + i);
+ }
+ }
+ else {
+ for i27 i = 0; i < 5; i = i + 1 {
+ putchar('K' + i);
+ }
+ }
+
+ putchar('\n');
+}
diff --git a/tests/loop.ek b/tests/loop.ek
new file mode 100644
index 0000000..301e7ea
--- /dev/null
+++ b/tests/loop.ek
@@ -0,0 +1,15 @@
+typedef i9 {}
+typedef i27 {}
+
+putchar(i9 c)
+{
+ *i9 p = 19683 as *i9;
+ p* = c;
+}
+
+main()
+{
+ for i27 i = 0; i < 5; i = i + 1 {
+ putchar('A' + i);
+ }
+}
diff --git a/tests/loops.ek b/tests/loops.ek
deleted file mode 100644
index 5b6f702..0000000
--- a/tests/loops.ek
+++ /dev/null
@@ -1,4 +0,0 @@
-/* this should error out with some decent message about type loops or something
- * */
-f(=>typeof main()){}
-main(=> typeof f()){}
diff --git a/tests/pointer_literal.ek b/tests/pointer_literal.ek
index 09889d2..dbb2bef 100644
--- a/tests/pointer_literal.ek
+++ b/tests/pointer_literal.ek
@@ -1,5 +1,8 @@
+typedef i9 {}
+typedef i27 {}
+
main()
{
*i9 p = 19683 as *i9;
- *p = 'A' as i9;
+ p* = 'A' as i9;
}