summaryrefslogtreecommitdiff
path: root/test.toc
diff options
context:
space:
mode:
Diffstat (limited to 'test.toc')
-rw-r--r--test.toc84
1 files changed, 18 insertions, 66 deletions
diff --git a/test.toc b/test.toc
index 73d1ad1..532cc56 100644
--- a/test.toc
+++ b/test.toc
@@ -1,70 +1,22 @@
-#include "tests/std/io.toc", io;
-#include "tests/std/mem.toc";
-
-z ::= nms {
- Foo ::= struct(f ::= fn() int { return 7; }) {
- x: int;
- }
-
- Bar ::= fn() &(struct { x, y: int; f ::= fn() int { return 13; } } ) {
- x : u64;
- return &x as &void;
- }
-
-
- foo ::= fn() total : int = 0 {
- f: Foo();
- total += f.f();
- total += Bar().f();
- }
+init(3);
+
+#include "tests/std/io.toc";
+
+/*
+#init(-50) init(1);
+#init(30) init(2);
+#init(-7) init(3);
+#init(-42) init(4);
+*/
+
+x: int;
+init ::= fn(a: int) {
+ writes("Initializing... #");
+ writei(a);
+ x = 5;
}
-
main ::= fn() {
- nums := news(int, 10);
- for x, i := &nums {
- *x = i*i;
- }
- l := slice_to_ll(nums);
- p := &l;
- while p {
- io.puti(p.head);
- p = p.tail;
- }
- f: Foo;
- f.k = -173;
- f.b = new(Bar);
- f.b.f.b = new(Bar);
- f.b.f.b.f.k = 9;
- io.puti(f.k);
- io.puti(f.b.f.k);
- io.puti(f.b.f.b.f.k);
- x := z.foo();
- y ::= z.foo();
- io.puti(x);
- io.puti(y);
-}
-
-slice_to_ll ::= fn(t::=, slice: []t) use ll: LinkedList(t) {
- head = slice[0];
- if slice.len == 1 {
- tail = null;
- } else {
- tail = new(LinkedList(t));
- *tail = slice_to_ll(slice[1:]);
- }
-}
-
-LinkedList ::= struct (of :: Type) {
- head: of;
- tail: &LinkedList(of);
-}
-
-Foo ::= struct {
- k: int;
- b: &Bar;
-}
-
-Bar ::= struct {
- f: Foo;
+ writes("Main's value of x is: ");
+ puti(x);
}