From 7ec991b8d6654aaf27a005804347346e16500a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Thu, 14 Jan 2021 21:10:07 +0100 Subject: Start of typesystem There's a type system, that kinda works There needs to be better parsing of types, since not all types are currently parsable. Some of them are, and the simple stuff works! :D --- tests/fun.tdy | 16 ++++++++++++++-- tests/simple.tdy | 44 ++++++++++---------------------------------- 2 files changed, 24 insertions(+), 36 deletions(-) (limited to 'tests') diff --git a/tests/fun.tdy b/tests/fun.tdy index 8b94cad..8dc3b77 100644 --- a/tests/fun.tdy +++ b/tests/fun.tdy @@ -2,13 +2,13 @@ f := fn { print 1 } -f() <=> true +f() // Simple f2 := fn a: int { print a } -f2(2) <=> true +f2(2) // Return value f3 := fn -> int { @@ -39,3 +39,15 @@ g := fn f: int { } g(h) <=> 1 + + +q := fn i: int -> int { + if i == 1 { + ret 2 + } else { + ret 3 + } +} + +q(1) <=> 2 +q(0) <=> 3 diff --git a/tests/simple.tdy b/tests/simple.tdy index 2f0f606..6dde932 100644 --- a/tests/simple.tdy +++ b/tests/simple.tdy @@ -1,38 +1,14 @@ -// 1 + 1 <=> 2 -// // asdlkjasl -// print 1 + 3 -// // OwO - -// a int := 0 -// b int := 1 -// c int := 3 -// d int := 2 +// a := 1 +// a = 2 + 1 +// a = 3 // -// print a -// print b -// print d -// print c +// for i := 0, i < 10, i = i + 1 { +// print i + 1 +// print i + 2 +// } -for a := 0, a < 10, print a { - print a - a = a + 1 +f := fn b: int -> int { + ret b + 1 } -// 1, 2, 3, 4 - - -// -// === main === -// | Constant(Int(0)) -// | ReadLocal(0) -// | Constant(Int(10)) -// | Less -// | JmpFalse(12) -// | Jmp(11) -// | Jmp(1) -// | ReadLocal(0) -// | Constant(Int(1)) -// | Add -// | Assign(0) -// | Jmp(7) -// | Return +f(1) -- cgit v1.2.1