stage1 部分功能测试00,01,02,06成功
This commit is contained in:
85
stage1/test11.spl
Normal file
85
stage1/test11.spl
Normal file
@@ -0,0 +1,85 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user