31 lines
628 B
Plaintext
31 lines
628 B
Plaintext
#[extern("vm")] fn vm_strlen(s: *i8) i32;
|
|
#[extern("vm")] fn vm_strcmp(a: *i8, b: *i8) i32;
|
|
|
|
const MAGIC := 42;
|
|
|
|
fn main() i32 {
|
|
/* compile-time constant */
|
|
if MAGIC != 42 { ret 1; }
|
|
|
|
/* block scope */
|
|
var outer := 1;
|
|
{
|
|
var inner := 2;
|
|
if inner != 2 { ret 2; }
|
|
outer = inner;
|
|
}
|
|
if outer != 2 { ret 3; }
|
|
|
|
/* string literal — vm_strlen */
|
|
var len := vm_strlen("hello");
|
|
if len != 5 { ret 4; }
|
|
|
|
/* vm_strcmp */
|
|
var cmp := vm_strcmp("abc", "abc");
|
|
if cmp != 0 { ret 5; }
|
|
|
|
var cmp2 := vm_strcmp("abc", "def");
|
|
if cmp2 == 0 { ret 6; }
|
|
ret 0;
|
|
}
|