Files
spl/stage1/test11.spl

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;
}