mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 23:04:08 +10:00
90 lines
1.4 KiB
Plaintext
90 lines
1.4 KiB
Plaintext
//single line comment
|
|
|
|
/*
|
|
multi line comment
|
|
*/
|
|
|
|
//test primitive literals
|
|
print "hello world";
|
|
print null;
|
|
print true;
|
|
print false;
|
|
print 42;
|
|
print 3.14;
|
|
print -69;
|
|
print -4.20;
|
|
print 2 + (3 * 3);
|
|
|
|
//test operators (integers)
|
|
print 1 + 1;
|
|
print 1 - 1;
|
|
print 2 * 2;
|
|
print 1 / 2;
|
|
print 4 % 2;
|
|
|
|
//test operators (floats)
|
|
print 1.0 + 1.0;
|
|
print 1.0 - 1.0;
|
|
print 2.0 * 2.0;
|
|
print 1.0 / 2.0;
|
|
|
|
//test scopes
|
|
{
|
|
print "This statement is within a scope.";
|
|
{
|
|
print "This is a deeper scope.";
|
|
}
|
|
}
|
|
print "Back to the outer scope.";
|
|
|
|
//test scope will delegate to higher scope
|
|
var a = 1;
|
|
{
|
|
a = 2;
|
|
print a;
|
|
}
|
|
print a;
|
|
|
|
//test scope will shadow higher scope on redefine
|
|
var b: int = 3;
|
|
{
|
|
var b = 4;
|
|
print b;
|
|
}
|
|
print b;
|
|
|
|
//test compounds, repeatedly
|
|
print [1, 2, 3];
|
|
print [4, 5];
|
|
print ["key":"value"];
|
|
print [1, 2, 3];
|
|
print [4, 5];
|
|
print ["key":"value"];
|
|
|
|
//test empties
|
|
print [];
|
|
print [:];
|
|
|
|
//test nested compounds
|
|
print [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
|
|
|
|
//var declarations
|
|
var x = 31;
|
|
var y : int = 42;
|
|
var arr : [int] = [1, 2, 3, 42];
|
|
var dict : [string:int] = ["hello": 1, "world":2];
|
|
|
|
//printing expressions
|
|
print x;
|
|
print x + y;
|
|
print arr;
|
|
print dict;
|
|
|
|
//test asserts at the end of the file
|
|
assert x, "This won't be seen";
|
|
assert true, "This won't be seen";
|
|
assert false, "This is a failed assert, and will end execution";
|
|
|
|
print "This will not be printed because of the above assert";
|
|
|