From 4241593b42bffac2f8fcb63f1e88621fe025e360 Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Mon, 4 Sep 2023 16:58:15 +0200 Subject: codegen: add interpreter tests Also simplify project structure. The executable is now produced in the root directory. Work in progress. --- testdata/add | 2 ++ testdata/fib | 6 ++++++ testdata/p00 | 1 + testdata/p01 | 2 ++ testdata/p02 | 7 +++++++ testdata/p03 | 3 +++ testdata/p04 | 4 ++++ testdata/p05 | 10 ++++++++++ testdata/p06 | 7 +++++++ testdata/p07 | 5 +++++ 10 files changed, 47 insertions(+) create mode 100644 testdata/add create mode 100644 testdata/fib create mode 100644 testdata/p00 create mode 100644 testdata/p01 create mode 100644 testdata/p02 create mode 100644 testdata/p03 create mode 100644 testdata/p04 create mode 100644 testdata/p05 create mode 100644 testdata/p06 create mode 100644 testdata/p07 (limited to 'testdata') diff --git a/testdata/add b/testdata/add new file mode 100644 index 0000000..a403485 --- /dev/null +++ b/testdata/add @@ -0,0 +1,2 @@ +func add(a int, b int) int { return a + b } +add(4, 3) diff --git a/testdata/fib b/testdata/fib new file mode 100644 index 0000000..654c5c0 --- /dev/null +++ b/testdata/fib @@ -0,0 +1,6 @@ +func fib(i int) int { + if i < 2 { return i } + return fib(i-2) + fib(i-1) +} + +println(fib(6)) diff --git a/testdata/p00 b/testdata/p00 new file mode 100644 index 0000000..19f5084 --- /dev/null +++ b/testdata/p00 @@ -0,0 +1 @@ +1+2 diff --git a/testdata/p01 b/testdata/p01 new file mode 100644 index 0000000..baafaa9 --- /dev/null +++ b/testdata/p01 @@ -0,0 +1,2 @@ +s := "Hello" +println(s, 5+2) diff --git a/testdata/p02 b/testdata/p02 new file mode 100644 index 0000000..1aeb4a9 --- /dev/null +++ b/testdata/p02 @@ -0,0 +1,7 @@ +a := 1 + +if a < 2 { + println("yep") +} + +println("ok") diff --git a/testdata/p03 b/testdata/p03 new file mode 100644 index 0000000..39a3cda --- /dev/null +++ b/testdata/p03 @@ -0,0 +1,3 @@ +func f(a int, b int) int { return a + b } + +println("f:", f(3, 4), f(5, 6)) diff --git a/testdata/p04 b/testdata/p04 new file mode 100644 index 0000000..f2a85c8 --- /dev/null +++ b/testdata/p04 @@ -0,0 +1,4 @@ +func f() int { println(a) } + +a := 4 +f() diff --git a/testdata/p05 b/testdata/p05 new file mode 100644 index 0000000..51c2c9b --- /dev/null +++ b/testdata/p05 @@ -0,0 +1,10 @@ +func f(i int) int { + if i < 2 { + if i == 1 { + return + } } + println("i", i) +} + +f(1) +println("bye") diff --git a/testdata/p06 b/testdata/p06 new file mode 100644 index 0000000..88029cc --- /dev/null +++ b/testdata/p06 @@ -0,0 +1,7 @@ +func f(i int) { + if i < 2 { return } + println("i > 1:", i) +} + +f(1) +println("bye") diff --git a/testdata/p07 b/testdata/p07 new file mode 100644 index 0000000..2fa7ee0 --- /dev/null +++ b/testdata/p07 @@ -0,0 +1,5 @@ +func f1() { println("in f1") } + +func f2() { println("in f2"); f1() } + +f2() -- cgit v1.2.3