fn print_number(n int) {
	if n == 0 {
		println('0')
	}
	if n == 1 {
		println('1')
	}
	if n == 2 {
		println('2')
	}
	if n == 3 {
		println('3')
	}
	if n == 4 {
		println('4')
	}
	if n == 5 {
		println('5')
	}
	if n == 6 {
		println('6')
	}
	if n == 7 {
		println('7')
	}
	if n == 8 {
		println('8')
	}
	if n == 9 {
		println('9')
	}
}

struct User {
	age int
}

fn print_user(u User) {
}

fn test_add() {
	println('test_add()')
	x := 2
	y := 3
	sum := x + y
	product := x * y
	diff := y - x
	div := y / x
	mod := y % x
	bitand := x & y
	bitor := x | y
	bitxor := x ^ y
	lshift := x << x
	rshift := 12 >> x
	print_number(x)
	print_number(y)
	print_number(sum)
	print_number(product)
	print_number(diff)
	print_number(div)
	print_number(mod)
	print_number(bitand)
	print_number(bitor)
	print_number(bitxor)
	print_number(lshift)
	print_number(rshift)
}

fn test_multiple() {
	a := 3
	b := 5
	c := 2
	result := (a * ((a & b) + c) << (b ^ a)) | a - b % (b / c)
	println(result)
}

fn test_prefix() {
	a := 3
	assert -a == -3
	b := true
	assert !b == false
	assert !!b == true
	c := u8(73)
	assert ~c == 182
}

fn main() {
	println('start')
	test_add()
	test_multiple()
	println('end')
}
