86 lines
1.5 KiB
Plaintext
86 lines
1.5 KiB
Plaintext
fn add(a: i32, b: i32) i32 {
|
|
ret a + b;
|
|
}
|
|
|
|
fn main() i32 {
|
|
/* arithmetic */
|
|
var a := 1 + 2 * 3;
|
|
if a != 7 { ret 1; }
|
|
|
|
var b := 10 - 4;
|
|
if b != 6 { ret 2; }
|
|
|
|
var c := 12 / 5;
|
|
if c != 2 { ret 3; }
|
|
|
|
var d := 12 % 5;
|
|
if d != 2 { ret 4; }
|
|
|
|
/* comparison */
|
|
if (1 < 2) {} else { ret 5; }
|
|
if (3 > 1) {} else { ret 6; }
|
|
if (2 == 2) {} else { ret 7; }
|
|
if (2 != 3) {} else { ret 8; }
|
|
if (2 <= 2) {} else { ret 9; }
|
|
if (3 >= 3) {} else { ret 10; }
|
|
|
|
/* function call */
|
|
var s := add(3, 4);
|
|
if s != 7 { ret 11; }
|
|
|
|
/* if/else */
|
|
var x := 0;
|
|
if x == 0 {
|
|
x = 10;
|
|
} else {
|
|
x = 20;
|
|
}
|
|
if x != 10 { ret 12; }
|
|
|
|
/* while */
|
|
var i := 0;
|
|
while i < 5 {
|
|
i = i + 1;
|
|
}
|
|
if i != 5 { ret 13; }
|
|
|
|
/* loop/break */
|
|
var j := 0;
|
|
loop {
|
|
j = j + 1;
|
|
if j >= 3 { break; }
|
|
}
|
|
if j != 3 { ret 14; }
|
|
|
|
/* continue */
|
|
var k := 0;
|
|
var n := 0;
|
|
while k < 5 {
|
|
k = k + 1;
|
|
if k == 3 { continue; }
|
|
n = n + 1;
|
|
}
|
|
if k != 5 { ret 15; }
|
|
if n != 4 { ret 16; }
|
|
|
|
/* compound assignment */
|
|
var y := 5;
|
|
y += 3;
|
|
if y != 8 { ret 17; }
|
|
y -= 2;
|
|
if y != 6 { ret 18; }
|
|
y *= 2;
|
|
if y != 12 { ret 19; }
|
|
|
|
/* logical */
|
|
if (true) {} else { ret 20; }
|
|
if (false) { ret 21; }
|
|
if (!false) {} else { ret 22; }
|
|
|
|
/* bitwise */
|
|
var m := 0xFF & 0x0F;
|
|
if m != 0x0F { ret 23; }
|
|
|
|
ret 0;
|
|
}
|