From 9ad5f695a449aa3ea27c308f61349d6650509de7 Mon Sep 17 00:00:00 2001 From: Krzosa Karol Date: Sat, 11 Jun 2022 23:27:15 +0200 Subject: [PATCH] Test new module idea, to first period is package name --- G.globals.kl | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 G.globals.kl diff --git a/G.globals.kl b/G.globals.kl new file mode 100644 index 0000000..d332f37 --- /dev/null +++ b/G.globals.kl @@ -0,0 +1,64 @@ +//----------------------------------------------------------------------------- +// Function types +//----------------------------------------------------------------------------- +test_function :: (thing: S64): *S64 +function_type: test_function +const_function_alias :: test_function +// null_function: (t: S64): *S64 = null + +//----------------------------------------------------------------------------- +// Booleans +//----------------------------------------------------------------------------- +Boolean: Bool = true + +//----------------------------------------------------------------------------- +// Nulls +//----------------------------------------------------------------------------- +// int_null: S64 = null +// str_null: String = null +// Bool_null: Bool = null + +//----------------------------------------------------------------------------- +// Compound expressions +//----------------------------------------------------------------------------- +array1: [4]S64 = {1,2,3,4} +imp_array := [5]S64{1,2} +// imp_array_a := [5]S64{1,2,3,4,5,6} +// imp_array_b: [5]S64 = {1,2,3,4,5,6} +imp_array_c: [5]S64 = {[0] = 1, [2] = 2, [1] = 0} // @todo this should be illegal +// without_size: []S64 = {} // @todo: this should be slice, converting from array should be implicit + +//----------------------------------------------------------------------------- +// Pointers +//----------------------------------------------------------------------------- +pointer_decl : *S64 +variable_from_deref: S64 = *pointer_decl +pointer_from_var : *S64 = &variable_from_deref +Boolean_pointer := &Boolean + +//----------------------------------------------------------------------------- +// Implicit type +//----------------------------------------------------------------------------- +implicit_int :: 10 +implicit_str :: "Hello world" + +//----------------------------------------------------------------------------- +// Pointers +//----------------------------------------------------------------------------- +// pointer1: *S64 = 0 +// pointer2: *S64 = pointer1 +// pointer3: **S64 = 0 + +//----------------------------------------------------------------------------- +// String types +//----------------------------------------------------------------------------- +string1 :: "Test" +string2 :: string1 + +//----------------------------------------------------------------------------- +// Constant S64 variables +//----------------------------------------------------------------------------- +thing0 :: 10 +thing1 :: thing0 + 11 +thing2 :: thing1 + 20 +combin :: thing0 + thing1 + thing2