Add examples, update README
This commit is contained in:
@@ -1,11 +1,30 @@
|
||||
|
||||
main :: (): int
|
||||
// Language has a bunch of standard builtin types:
|
||||
// Signed integer types = S64, S32, S16, S8, int
|
||||
// Signed integer types
|
||||
s64val: S64 = 0
|
||||
s32val: S32 = 0
|
||||
s16val: S16 = 0
|
||||
s8val : S8 = 0
|
||||
intval: int = 0
|
||||
|
||||
// Unsigned integer types = U64, U32, U16, U8,
|
||||
u64val: U64 = 0
|
||||
u32val: U32 = 0
|
||||
u16val: U16 = 0
|
||||
u8val : U8 = 0
|
||||
|
||||
// Floating point types = F64, F32
|
||||
f64val: F64 = 0
|
||||
f32val: F32 = 0
|
||||
|
||||
// String type = String
|
||||
// Character type for compatibility with C = char
|
||||
string_val: String = "String type"
|
||||
cstring_val: *char = "CString type"
|
||||
|
||||
assert(s64val == 0 && s32val == 0 && s16val == 0 && s8val == 0 && intval == 0 && u64val == 0 && u32val == 0 && u16val == 0 && u8val == 0 && f64val == 0 && f32val == 0)
|
||||
assert(string_val[0] == 'S) //'
|
||||
// @todo: Fix error here !!
|
||||
// assert(cstring_val[0] == 'C) //'
|
||||
|
||||
// This is how we can assign variables
|
||||
// There is no need for prefixes, compiler figures
|
||||
@@ -29,7 +48,7 @@ main :: (): int
|
||||
|
||||
// There are also constant bindings in the language.
|
||||
// You can bind all sorts of constants to names this way.
|
||||
INT_VALUE :: 10
|
||||
INT_VALUE :: 10
|
||||
FLOAT_VALUE :: 124.125
|
||||
|
||||
// For constants we can mix and match different types
|
||||
@@ -38,9 +57,10 @@ main :: (): int
|
||||
// When it comes to runtime variables it's a bit different
|
||||
// To do this we need a cast
|
||||
combining_types := this_is_s64_by_default->F64 + this_is_f64_by_default
|
||||
combining_s64_and_s32 := signed_variable->S64 + this_is_s64_by_default
|
||||
combining_unsigned_with_signed := unsigned_variable->F64 + combining_types
|
||||
|
||||
// Silence unused variable warning
|
||||
assert(combining_s64_and_s32->F64 + combining_unsigned_with_signed > 0)
|
||||
|
||||
assert(signed_variable == 10 && unsigned_variable == 10)
|
||||
assert(INT_VALUE == 10)
|
||||
assert(FLOAT_VALUE == 124.125)
|
||||
assert(this_is_f64_by_default == 15.1255)
|
||||
assert(combining_types == 15.1255 + 20)
|
||||
|
||||
Reference in New Issue
Block a user