Lambdas, statements, typechecking lambdas
This commit is contained in:
77
globals.kl
Normal file
77
globals.kl
Normal file
@@ -0,0 +1,77 @@
|
||||
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user