// header comment (the initial space is purposeful) fn blah() { // comment foo = 3; // normal assignment x = 3 * -2; // unary minus y = 3 - -3; blah = foo + 5 * bar / 2; // Complex expr in assignment arr[3] = 7; // Subscript in lvalue arr[n * 2 - 1] = foo + 7; // expr in subscript a[3] = b[70 - foo]; // subscripted rvalues b = foo * (bar + 3); // expr parens x1 = something(); // fn calls something(1); // unary calls, call statements something(1, foo, bar + 7, ha[0]); // exprs in calls s = "hello"; // strings s2 = "hello\n\tthere\0"; print("bah"); f = &x; } // fn with args fn foo(a, b) {} // fn with an annotation fn foo2(x) { return x * x; } fn iftest() { if (blah) { foo(); } else { bar(); } } fn whiletest() { while (foo) { bar(); } } fn repeatTest(x) { repeat(x * 3) a { blah(whatever + a); } } global foo; global bar:Thing; fn varTest(t:Some) { var x; var y = 2 + x; var z:Thingy; } struct Foo {} struct Bar { x, y, name:Str } struct Str { chars[100] } const LEN = 100; const STR = "Hey"; struct What { foo[100] }