aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
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;
}