/* Player :: struct id : int name: String compound_of_struct: Player = { id = 10, name = "Guy", } second_compound_syntax := :Player{...} max :: (a: int, b: int) { if a > b then return a; return b; } max :: (a: int, b: int) if a > b then return a return b ; - treated as new line { and } - treated as new line scope and end of new line scope */ test_function :: (thing: int): ^int //----------------------------------------------------------------------------- // Booleans //----------------------------------------------------------------------------- boolean: bool = true value_of_bool: int = cast(boolean: int) base := null //----------------------------------------------------------------------------- // Compound expressions //----------------------------------------------------------------------------- array1: [4]int = {1,2,3,4} array2: [32]int = {1,2,3,4} array3: [32]int = { [0] = 0, [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 //----------------------------------------------------------------------------- pointer: ^int = cast(null: ^int) pointer2: ^int = null pointer3: ^^int = null //----------------------------------------------------------------------------- // String types //----------------------------------------------------------------------------- string1 :: "Test" string2 :: string1 //----------------------------------------------------------------------------- // Constant int variables //----------------------------------------------------------------------------- thing0 :: 10 thing1 :: thing0 + 11 thing2 :: thing1 + 20 combin :: thing0 + thing1 + thing2