aboutsummaryrefslogtreecommitdiff
path: root/testsuite/runnable
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-09-02 13:31:04 +0200
committerEugen Wissner <belka@caraus.de>2026-09-07 10:53:02 +0200
commit47521ad6d85f9bd6caee39696ce40dff82cfa50d (patch)
treecf5813033a440c6ac374948894d5dd70e0712cdb /testsuite/runnable
parent0fada11e99da430e9a056e46da9f0e110df6c45c (diff)
downloadelna-47521ad6d85f9bd6caee39696ce40dff82cfa50d.tar.gz
Implement program entry point
Diffstat (limited to 'testsuite/runnable')
-rw-r--r--testsuite/runnable/aggregate_argument.elna1
-rw-r--r--testsuite/runnable/aggregate_equality.elna1
-rw-r--r--testsuite/runnable/array_constructor.elna1
-rw-r--r--testsuite/runnable/binary_literal.elna1
-rw-r--r--testsuite/runnable/case_constant_label.elna1
-rw-r--r--testsuite/runnable/case_else.elna1
-rw-r--r--testsuite/runnable/case_int.elna1
-rw-r--r--testsuite/runnable/case_multilabel.elna1
-rw-r--r--testsuite/runnable/case_record.elna1
-rw-r--r--testsuite/runnable/compile_time_array_access.elna1
-rw-r--r--testsuite/runnable/const_copy.elna1
-rw-r--r--testsuite/runnable/const_initialization.elna1
-rw-r--r--testsuite/runnable/constant_string_initializer.elna1
-rw-r--r--testsuite/runnable/define_multiple_local_variables.elna1
-rw-r--r--testsuite/runnable/exported_variable/sut.elna1
-rw-r--r--testsuite/runnable/fixed_int_max.elna1
-rw-r--r--testsuite/runnable/fixed_int_min.elna1
-rw-r--r--testsuite/runnable/fixed_word_max.elna1
-rw-r--r--testsuite/runnable/float_arithmetic.elna1
-rw-r--r--testsuite/runnable/for_each_array.elna1
-rw-r--r--testsuite/runnable/for_each_slice.elna1
-rw-r--r--testsuite/runnable/for_with.elna1
-rw-r--r--testsuite/runnable/generic_pointer_arithmetic.elna1
-rw-r--r--testsuite/runnable/hexadecimal_literal.elna1
-rw-r--r--testsuite/runnable/multi_module/sut.elna1
-rw-r--r--testsuite/runnable/procedure_cast.elna1
-rw-r--r--testsuite/runnable/record_base_assignment.elna1
-rw-r--r--testsuite/runnable/record_base_constructor.elna1
-rw-r--r--testsuite/runnable/record_construction.elna1
-rw-r--r--testsuite/runnable/record_extension.elna1
-rw-r--r--testsuite/runnable/record_layout.elna1
-rw-r--r--testsuite/runnable/recursive_record.elna1
-rw-r--r--testsuite/runnable/repeat_loop.elna1
-rw-r--r--testsuite/runnable/return_aggregate.elna1
-rw-r--r--testsuite/runnable/slice_array.elna1
-rw-r--r--testsuite/runnable/slice_cast.elna1
-rw-r--r--testsuite/runnable/slice_equality.elna1
-rw-r--r--testsuite/runnable/slice_pointer.elna1
-rw-r--r--testsuite/runnable/slice_slice.elna1
-rw-r--r--testsuite/runnable/two_fields_same_type.elna2
-rw-r--r--testsuite/runnable/two_parameters_same_type.elna1
-rw-r--r--testsuite/runnable/unary_plus.elna1
-rw-r--r--testsuite/runnable/unicode_escape_character.elna1
-rw-r--r--testsuite/runnable/unicode_escape_string.elna1
44 files changed, 44 insertions, 1 deletions
diff --git a/testsuite/runnable/aggregate_argument.elna b/testsuite/runnable/aggregate_argument.elna
index 875265e..7aa6ea0 100644
--- a/testsuite/runnable/aggregate_argument.elna
+++ b/testsuite/runnable/aggregate_argument.elna
@@ -7,6 +7,7 @@ type
proc f(r: R) -> Bool
return r.a = 1 & r.b = 2
+program()
begin
assert(f(R{a: 1, b: 2}))
end.
diff --git a/testsuite/runnable/aggregate_equality.elna b/testsuite/runnable/aggregate_equality.elna
index bfe2174..b8da9e9 100644
--- a/testsuite/runnable/aggregate_equality.elna
+++ b/testsuite/runnable/aggregate_equality.elna
@@ -7,6 +7,7 @@ type
proc f() -> Bool
return R{a: 1, b: 2} = R{a: 1, b: 2}
+program()
begin
assert(f())
end.
diff --git a/testsuite/runnable/array_constructor.elna b/testsuite/runnable/array_constructor.elna
index 0e7b08b..aa1c43c 100644
--- a/testsuite/runnable/array_constructor.elna
+++ b/testsuite/runnable/array_constructor.elna
@@ -2,6 +2,7 @@ var
a: [3]Int := [1, 2, 3]
b: [2]Int := [4, 0]
+program()
begin
assert(a[1] = 1 & a[2] = 2 & a[3] = 3);
assert(b[1] = 4 & b[2] = 0);
diff --git a/testsuite/runnable/binary_literal.elna b/testsuite/runnable/binary_literal.elna
index 0c2cbd9..6380f24 100644
--- a/testsuite/runnable/binary_literal.elna
+++ b/testsuite/runnable/binary_literal.elna
@@ -1,3 +1,4 @@
+program()
begin
assert(0b11 = 3u);
assert(0B011 = 3u)
diff --git a/testsuite/runnable/case_constant_label.elna b/testsuite/runnable/case_constant_label.elna
index 5d55e9f..2402bf7 100644
--- a/testsuite/runnable/case_constant_label.elna
+++ b/testsuite/runnable/case_constant_label.elna
@@ -4,6 +4,7 @@ var
x: Int := 2
matched: Bool := false
+program()
begin
case x of
1: assert(false)
diff --git a/testsuite/runnable/case_else.elna b/testsuite/runnable/case_else.elna
index dbec6df..b5ab3c0 100644
--- a/testsuite/runnable/case_else.elna
+++ b/testsuite/runnable/case_else.elna
@@ -2,6 +2,7 @@ var
x: Int := 5
matched: Bool := false
+program()
begin
case x of
1: assert(false)
diff --git a/testsuite/runnable/case_int.elna b/testsuite/runnable/case_int.elna
index 3b770a7..ca36fc8 100644
--- a/testsuite/runnable/case_int.elna
+++ b/testsuite/runnable/case_int.elna
@@ -1,6 +1,7 @@
var
x: Int := 2
+program()
begin
case x of
1: assert(false)
diff --git a/testsuite/runnable/case_multilabel.elna b/testsuite/runnable/case_multilabel.elna
index be647d4..083bdb0 100644
--- a/testsuite/runnable/case_multilabel.elna
+++ b/testsuite/runnable/case_multilabel.elna
@@ -1,6 +1,7 @@
var
x: Int := 3
+program()
begin
case x of
1, 2, 3: assert(true)
diff --git a/testsuite/runnable/case_record.elna b/testsuite/runnable/case_record.elna
index 4f65a5b..26436ea 100644
--- a/testsuite/runnable/case_record.elna
+++ b/testsuite/runnable/case_record.elna
@@ -7,6 +7,7 @@ type
var
r: R := R{a: 1, b: 2}
+program()
begin
case r of
R{a: 0, b: 0}: assert(false)
diff --git a/testsuite/runnable/compile_time_array_access.elna b/testsuite/runnable/compile_time_array_access.elna
index 4d59215..b854635 100644
--- a/testsuite/runnable/compile_time_array_access.elna
+++ b/testsuite/runnable/compile_time_array_access.elna
@@ -2,6 +2,7 @@ var
array: const [3]Int := [1, 2, 3]
i: const Int := array[2]
+program()
begin
assert(i = 2)
end.
diff --git a/testsuite/runnable/const_copy.elna b/testsuite/runnable/const_copy.elna
index 5982149..32cee67 100644
--- a/testsuite/runnable/const_copy.elna
+++ b/testsuite/runnable/const_copy.elna
@@ -7,6 +7,7 @@ begin
assert(y = 5)
return
+program()
begin
f()
end.
diff --git a/testsuite/runnable/const_initialization.elna b/testsuite/runnable/const_initialization.elna
index 7f922ff..56a6697 100644
--- a/testsuite/runnable/const_initialization.elna
+++ b/testsuite/runnable/const_initialization.elna
@@ -5,6 +5,7 @@ begin
assert(x = 5)
return
+program()
begin
f()
end.
diff --git a/testsuite/runnable/constant_string_initializer.elna b/testsuite/runnable/constant_string_initializer.elna
index 52ca429..8fd3b78 100644
--- a/testsuite/runnable/constant_string_initializer.elna
+++ b/testsuite/runnable/constant_string_initializer.elna
@@ -1,6 +1,7 @@
var
s: []const Word8 := "String value"
+program()
begin
assert(s = "String value")
end.
diff --git a/testsuite/runnable/define_multiple_local_variables.elna b/testsuite/runnable/define_multiple_local_variables.elna
index 8e44da4..72f0874 100644
--- a/testsuite/runnable/define_multiple_local_variables.elna
+++ b/testsuite/runnable/define_multiple_local_variables.elna
@@ -3,6 +3,7 @@ var
a, b: Int := 5
return a = 5 & b = 5
+program()
begin
assert(f())
end.
diff --git a/testsuite/runnable/exported_variable/sut.elna b/testsuite/runnable/exported_variable/sut.elna
index 52fb291..1fbc6ee 100644
--- a/testsuite/runnable/exported_variable/sut.elna
+++ b/testsuite/runnable/exported_variable/sut.elna
@@ -1,5 +1,6 @@
import helper
+program()
begin
assert(Shared = 42)
end.
diff --git a/testsuite/runnable/fixed_int_max.elna b/testsuite/runnable/fixed_int_max.elna
index 0564dd6..f00fd60 100644
--- a/testsuite/runnable/fixed_int_max.elna
+++ b/testsuite/runnable/fixed_int_max.elna
@@ -1,3 +1,4 @@
+program()
begin
assert(#max(Int8) = 127i8);
assert(#max(Int16) = 32767i16);
diff --git a/testsuite/runnable/fixed_int_min.elna b/testsuite/runnable/fixed_int_min.elna
index de83d1a..fd6b110 100644
--- a/testsuite/runnable/fixed_int_min.elna
+++ b/testsuite/runnable/fixed_int_min.elna
@@ -1,3 +1,4 @@
+program()
begin
assert(#min(Int8) = -128i8);
assert(#min(Int16) = -32768i16);
diff --git a/testsuite/runnable/fixed_word_max.elna b/testsuite/runnable/fixed_word_max.elna
index 76026a2..c657614 100644
--- a/testsuite/runnable/fixed_word_max.elna
+++ b/testsuite/runnable/fixed_word_max.elna
@@ -1,3 +1,4 @@
+program()
begin
assert(#max(Word8) = 255u8);
assert(#max(Word16) = 65535u16);
diff --git a/testsuite/runnable/float_arithmetic.elna b/testsuite/runnable/float_arithmetic.elna
index 73072f2..f792b04 100644
--- a/testsuite/runnable/float_arithmetic.elna
+++ b/testsuite/runnable/float_arithmetic.elna
@@ -1,3 +1,4 @@
+program()
begin
assert(6.0 / 2.0 = 3.0);
assert(5.0 / 2.0 = 2.5);
diff --git a/testsuite/runnable/for_each_array.elna b/testsuite/runnable/for_each_array.elna
index c6cba41..806a84b 100644
--- a/testsuite/runnable/for_each_array.elna
+++ b/testsuite/runnable/for_each_array.elna
@@ -3,6 +3,7 @@ var
input: [4]Word := [2u, 4u, 6u, 8u]
i: Word := 1u
+program()
begin
for element of input do
actual[i] := element^ * 2u;
diff --git a/testsuite/runnable/for_each_slice.elna b/testsuite/runnable/for_each_slice.elna
index 5356bc8..ecd3cc3 100644
--- a/testsuite/runnable/for_each_slice.elna
+++ b/testsuite/runnable/for_each_slice.elna
@@ -4,6 +4,7 @@ var
slice: []Word
i: Word := 1u
+program()
begin
slice := input[1u to input.length];
diff --git a/testsuite/runnable/for_with.elna b/testsuite/runnable/for_with.elna
index 22ccb13..582a641 100644
--- a/testsuite/runnable/for_with.elna
+++ b/testsuite/runnable/for_with.elna
@@ -1,6 +1,7 @@
var
actual: [3]Word := [0u, 0u, 0u]
+program()
begin
for element of [1u, 2u, 3u] with i do
actual[i] := i * element^
diff --git a/testsuite/runnable/generic_pointer_arithmetic.elna b/testsuite/runnable/generic_pointer_arithmetic.elna
index c737c7d..9aad7d6 100644
--- a/testsuite/runnable/generic_pointer_arithmetic.elna
+++ b/testsuite/runnable/generic_pointer_arithmetic.elna
@@ -4,6 +4,7 @@ var
first: Pointer
second: Pointer
+program()
begin
element := base.ptr;
first := element;
diff --git a/testsuite/runnable/hexadecimal_literal.elna b/testsuite/runnable/hexadecimal_literal.elna
index 71fd2da..a168bd2 100644
--- a/testsuite/runnable/hexadecimal_literal.elna
+++ b/testsuite/runnable/hexadecimal_literal.elna
@@ -1,3 +1,4 @@
+program()
begin
assert(0xff = 255u);
assert(0X0f = 15u)
diff --git a/testsuite/runnable/multi_module/sut.elna b/testsuite/runnable/multi_module/sut.elna
index fb26a26..666f82a 100644
--- a/testsuite/runnable/multi_module/sut.elna
+++ b/testsuite/runnable/multi_module/sut.elna
@@ -1,5 +1,6 @@
import helper
+program()
begin
assert(multiply(3, 4) = 12)
end.
diff --git a/testsuite/runnable/procedure_cast.elna b/testsuite/runnable/procedure_cast.elna
index ee97a6b..11e0e72 100644
--- a/testsuite/runnable/procedure_cast.elna
+++ b/testsuite/runnable/procedure_cast.elna
@@ -3,6 +3,7 @@ var cb: proc(x: ^Char) -> Int
proc probe_int(x: ^Int) -> Int
return 42
+program()
begin
cb := cast(probe_int: proc(x: ^Char) -> Int);
assert(cb(nil) = 42)
diff --git a/testsuite/runnable/record_base_assignment.elna b/testsuite/runnable/record_base_assignment.elna
index 2a15d0f..81ee7cf 100644
--- a/testsuite/runnable/record_base_assignment.elna
+++ b/testsuite/runnable/record_base_assignment.elna
@@ -16,6 +16,7 @@ begin
assert(r.x = 3u & r.y = 2u)
return
+program()
begin
f()
end.
diff --git a/testsuite/runnable/record_base_constructor.elna b/testsuite/runnable/record_base_constructor.elna
index 86da08a..1ca3214 100644
--- a/testsuite/runnable/record_base_constructor.elna
+++ b/testsuite/runnable/record_base_constructor.elna
@@ -12,6 +12,7 @@ type
var
g: Grandchild := Grandchild{a: 3, b: 5, c: 7}
+program()
begin
assert(g.a = 3);
assert(g.b = 5);
diff --git a/testsuite/runnable/record_construction.elna b/testsuite/runnable/record_construction.elna
index 2bbc493..31fc21f 100644
--- a/testsuite/runnable/record_construction.elna
+++ b/testsuite/runnable/record_construction.elna
@@ -6,6 +6,7 @@ type
var
r: R := R{x: 1, y: 2}
+program()
begin
assert(r.x = 1 & r.y = 2)
end.
diff --git a/testsuite/runnable/record_extension.elna b/testsuite/runnable/record_extension.elna
index 7d8dc61..b195759 100644
--- a/testsuite/runnable/record_extension.elna
+++ b/testsuite/runnable/record_extension.elna
@@ -10,6 +10,7 @@ var
token_memory: ElnaLexerStringToken
current_token: ^ElnaLexerToken
+program()
begin
current_token := @token_memory;
cast(current_token: ^ElnaLexerStringToken)^.value := "Some string";
diff --git a/testsuite/runnable/record_layout.elna b/testsuite/runnable/record_layout.elna
index 180d7bc..b94f18a 100644
--- a/testsuite/runnable/record_layout.elna
+++ b/testsuite/runnable/record_layout.elna
@@ -50,6 +50,7 @@ begin
assert(array_record_c_offset = 3u * int_size)
return
+program()
begin
f()
end.
diff --git a/testsuite/runnable/recursive_record.elna b/testsuite/runnable/recursive_record.elna
index 237eece..c940da9 100644
--- a/testsuite/runnable/recursive_record.elna
+++ b/testsuite/runnable/recursive_record.elna
@@ -27,6 +27,7 @@ begin
end;
return result
+program()
begin
first := malloc(#size(Node));
second := malloc(#size(Node));
diff --git a/testsuite/runnable/repeat_loop.elna b/testsuite/runnable/repeat_loop.elna
index 71554f0..ea50884 100644
--- a/testsuite/runnable/repeat_loop.elna
+++ b/testsuite/runnable/repeat_loop.elna
@@ -2,6 +2,7 @@ var
actual: [4]Word := [0u, 0u, 0u, 0u]
i: Word := 0u
+program()
begin
repeat
i := i + 1u;
diff --git a/testsuite/runnable/return_aggregate.elna b/testsuite/runnable/return_aggregate.elna
index fbc1a08..ad3ec65 100644
--- a/testsuite/runnable/return_aggregate.elna
+++ b/testsuite/runnable/return_aggregate.elna
@@ -7,6 +7,7 @@ type
proc f() -> R
return R{ a: 1, b: 2 }
+program()
begin
assert(f() = R{ a: 1, b: 2 })
end.
diff --git a/testsuite/runnable/slice_array.elna b/testsuite/runnable/slice_array.elna
index 8baaff3..2b747ea 100644
--- a/testsuite/runnable/slice_array.elna
+++ b/testsuite/runnable/slice_array.elna
@@ -2,6 +2,7 @@ var
array: [3]Int := [2, 4, 6]
slice: []Int
+program()
begin
slice := array[1 to 3];
diff --git a/testsuite/runnable/slice_cast.elna b/testsuite/runnable/slice_cast.elna
index ca093db..d11f80a 100644
--- a/testsuite/runnable/slice_cast.elna
+++ b/testsuite/runnable/slice_cast.elna
@@ -1,6 +1,7 @@
var
ints: [4]Int32 := [1i32, 2i32, 3i32, 4i32]
+program()
begin
assert(cast(ints[1u to 4u]: []Int8).length = #size(Int32) * ints.length)
end.
diff --git a/testsuite/runnable/slice_equality.elna b/testsuite/runnable/slice_equality.elna
index e34981a..08eb4f2 100644
--- a/testsuite/runnable/slice_equality.elna
+++ b/testsuite/runnable/slice_equality.elna
@@ -2,6 +2,7 @@ var
lhs_payload, rhs_payload: [3]Int := [2, 4, 6]
lhs, rhs: []Int
+program()
begin
lhs := lhs_payload[1 to 3];
rhs := rhs_payload[1 to 3];
diff --git a/testsuite/runnable/slice_pointer.elna b/testsuite/runnable/slice_pointer.elna
index 1ab367e..6ebcec9 100644
--- a/testsuite/runnable/slice_pointer.elna
+++ b/testsuite/runnable/slice_pointer.elna
@@ -2,6 +2,7 @@ var
array: [3]Int := [2, 4, 6]
slice: []Int
+program()
begin
slice := array.ptr[1 to 3];
diff --git a/testsuite/runnable/slice_slice.elna b/testsuite/runnable/slice_slice.elna
index f5e0eba..459cf51 100644
--- a/testsuite/runnable/slice_slice.elna
+++ b/testsuite/runnable/slice_slice.elna
@@ -2,6 +2,7 @@ var
array: [5]Int := [2, 4, 6, 8, 10]
slice1, slice2: []Int
+program()
begin
slice1 := array[1 to array.length];
slice2 := slice1[2 to 4];
diff --git a/testsuite/runnable/two_fields_same_type.elna b/testsuite/runnable/two_fields_same_type.elna
index 71dcbee..7d7292d 100644
--- a/testsuite/runnable/two_fields_same_type.elna
+++ b/testsuite/runnable/two_fields_same_type.elna
@@ -8,7 +8,7 @@ var
r: R := R{x: 3, y: 2}
return r.x + r.y
-
+program()
begin
assert(f() = 5)
end.
diff --git a/testsuite/runnable/two_parameters_same_type.elna b/testsuite/runnable/two_parameters_same_type.elna
index 105a40c..41d688c 100644
--- a/testsuite/runnable/two_parameters_same_type.elna
+++ b/testsuite/runnable/two_parameters_same_type.elna
@@ -1,6 +1,7 @@
proc f(x, y: Int) -> Int
return x + y
+program()
begin
assert(f(2, 3) = 5)
end.
diff --git a/testsuite/runnable/unary_plus.elna b/testsuite/runnable/unary_plus.elna
index bfd59d6..e4b3762 100644
--- a/testsuite/runnable/unary_plus.elna
+++ b/testsuite/runnable/unary_plus.elna
@@ -1,6 +1,7 @@
proc f(x: Int) -> Int
return +x
+program()
begin
assert(+3 = 3);
assert(f(5) = 5);
diff --git a/testsuite/runnable/unicode_escape_character.elna b/testsuite/runnable/unicode_escape_character.elna
index d49910c..0cfd3e2 100644
--- a/testsuite/runnable/unicode_escape_character.elna
+++ b/testsuite/runnable/unicode_escape_character.elna
@@ -1,3 +1,4 @@
+program()
begin
assert(`\{U+E9}` = `é`);
assert(`\{U+1F600}` = `😀`)
diff --git a/testsuite/runnable/unicode_escape_string.elna b/testsuite/runnable/unicode_escape_string.elna
index 5905eda..bec794a 100644
--- a/testsuite/runnable/unicode_escape_string.elna
+++ b/testsuite/runnable/unicode_escape_string.elna
@@ -1,3 +1,4 @@
+program()
begin
assert("caf\{U+E9}" = "café");
assert("Hi \{U+1F600}!" = "Hi 😀!")