Skip to content

Commit 4ff8eb7

Browse files
committed
zynml: add parallel '&' grammar + docs/examples conformance suite
1 parent b993b04 commit 4ff8eb7

12 files changed

Lines changed: 346 additions & 4 deletions
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Hello world without f-strings
2+
import prelude
3+
import tensor
4+
5+
def main() {
6+
println("Hello from ZynML!")
7+
8+
// Create tensors using static methods
9+
let a = Tensor::arange(1.0, 5.0, 1.0) // [1.0, 2.0, 3.0, 4.0]
10+
let b = Tensor::arange(5.0, 9.0, 1.0) // [5.0, 6.0, 7.0, 8.0]
11+
12+
println("Tensor a:")
13+
println_any(a)
14+
15+
println("Tensor b:")
16+
println_any(b)
17+
18+
// Arithmetic operations using operator overloading
19+
let sum = a + b
20+
println("a + b:")
21+
println_any(sum)
22+
23+
let diff = b - a
24+
println("b - a:")
25+
println_any(diff)
26+
27+
let prod = a * b
28+
println("a * b (element-wise):")
29+
println_any(prod)
30+
31+
// Reduction operations
32+
let total = a.sum()
33+
println("Sum of a:")
34+
println_any(total)
35+
36+
let avg = a.mean()
37+
println("Mean of a:")
38+
println_any(avg)
39+
40+
println("Done!")
41+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// Test simple bool return
2+
def main() {
3+
let x = 1
4+
let y = 2
5+
let result = x < y
6+
extern println_int(result)
7+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Test f-string with direct extern call
2+
def main() {
3+
let name = "World"
4+
let result = extern concat("Hello ", name)
5+
extern println_str(result)
6+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// Minimal f-string test without prelude
2+
def main() {
3+
let name = "World"
4+
extern println_str(f"Hello {name}!")
5+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// F-string test with prelude using println_str
2+
import prelude
3+
4+
def main() {
5+
let name = "World"
6+
extern println_str(f"Hello {name}!")
7+
8+
let x = 42
9+
extern println_str(f"The answer is {x}")
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// F-string test using println (should work with dynamic dispatch)
2+
import prelude
3+
4+
def main() {
5+
let name = "World"
6+
println(f"Hello {name}!")
7+
8+
let x = 42
9+
println(f"The answer is {x}")
10+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Simple f-string test using extern println_str
2+
def main() {
3+
let name = "World"
4+
extern println_str(f"Hello {name}!")
5+
6+
let x = 42
7+
extern println_str(f"The answer is {x}")
8+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// F-string test with prelude
2+
import prelude
3+
4+
def main() {
5+
let name = "World"
6+
extern println_str(f"Hello {name}!")
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// Test prelude with f-string
2+
import prelude
3+
4+
def main() {
5+
let x = 42
6+
println(f"Value: {x}")
7+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Test prelude import only
2+
import prelude
3+
4+
def main() {
5+
println("Hello")
6+
}

0 commit comments

Comments
 (0)