returning_void :: (insert: int) return arena_push :: (size: int): int result := size + 10 return result //----------------------------------------------------------------------------- // Function types //----------------------------------------------------------------------------- test_function :: (thing: int): ^int function_type: (thing: int): ^int = test_function const_function_alias :: test_function null_function: (t: int): ^int = null //----------------------------------------------------------------------------- // Booleans //----------------------------------------------------------------------------- boolean: bool = true value_of_bool: int = cast(boolean: int) //----------------------------------------------------------------------------- // Nulls //----------------------------------------------------------------------------- int_null: int = null str_null: String = null bool_null: bool = null //----------------------------------------------------------------------------- // Compound expressions //----------------------------------------------------------------------------- array1: [4]int = {1,2,3,4} array2: [32]int = {1,2,3,4} array3: [32]int = { [0] = null, [1] = 1, [31] = 31, } array_item := array1[0] array_item_imp: int = array2[2] //----------------------------------------------------------------------------- // Pointers //----------------------------------------------------------------------------- pointer_decl : ^int variable_from_deref: int = pointer_decl^ pointer_from_var : ^int = ^variable_from_deref boolean_pointer := ^boolean //----------------------------------------------------------------------------- // Implicit type //----------------------------------------------------------------------------- implicit_int :: 10 implicit_str :: "Hello world" //----------------------------------------------------------------------------- // Pointers //----------------------------------------------------------------------------- pointer1: ^int = null pointer2: ^int = pointer1 pointer3: ^^int = null //----------------------------------------------------------------------------- // String types //----------------------------------------------------------------------------- string1 :: "Test" string2 :: string1 //----------------------------------------------------------------------------- // Constant int variables //----------------------------------------------------------------------------- thing0 :: 10 thing1 :: thing0 + 11 thing2 :: thing1 + 20 combin :: thing0 + thing1 + thing2