diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-04-25 22:28:40 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-04-25 22:28:40 +0330 |
commit | 378bd7e143ddde38a070966cc0b61c2f8d5c7ee7 (patch) | |
tree | bdfe66b524fc183b7faf432e3d08d18e6a89b67f /code/lib | |
parent | dc26ae0b913ff49ecbf0f653b4baffa7a37f2303 (diff) | |
parent | 0202e4c30d404e84b0ca37daad0a0c77135bf1a5 (diff) |
Merge branch 'master' of https://github.com/A404M/felan
Diffstat (limited to 'code/lib')
-rw-r--r-- | code/lib/print.felan | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/code/lib/print.felan b/code/lib/print.felan new file mode 100644 index 0000000..fd6663c --- /dev/null +++ b/code/lib/print.felan @@ -0,0 +1,167 @@ +print :: (value:u8)->void{ + putc value; +}; + +print :: (value:[]u8)->void{ + i :u64= 0; + while i < value.length { + putc value[i]; + i += 1; + } +}; + +print_reverse :: (value:[]u8, size:u8)->void{ + size := size; + while size != 0 { + size -= 1; + putc value[size]; + } +}; + +print :: (value:i8)->void { + value := value; + if (value < 0) { + putc '-'; + if (value == -128) { + print("128"); + return; + } + value = -value; + } + + output :[3]u8= undefined; + i :u8= 0; + while { + output[i] = '0' + @cast(value % 10, u8); + i += 1; + value /= 10; + value != 0; + } {} + + print_reverse(output, i - 1); +}; + +print :: (value:i16)->void { + value := value; + if (value < 0) { + putc '-'; + if (value == -32768) { + print("32768"); + return; + } + value = -value; + } + + output :[5]u8= undefined; + i :u8= 0; + while { + output[i] = '0' + @cast(value % 10, u8); + i += 1; + value /= 10; + value != 0; + } {} + + print_reverse(output, i); +}; + +print :: (value:i32)->void { + value := value; + if (value < 0) { + putc '-'; + if (value == -2147483648) { + print("2147483648"); + return; + } + value = -value; + } + + output :[10]u8= undefined; + i :u8= 0; + while { + output[i] = '0' + @cast(value % 10, u8); + i += 1; + value /= 10; + value != 0; + } {} + + print_reverse(output, i - 1); +}; + +print :: (value:i64)->void { + value := value; + if (value < 0) { + putc '-'; + if (value == -9223372036854775808) { + print("9223372036854775808"); + return; + } + value = -value; + } + + output :[19]u8= undefined; + i :u8= 0; + while { + output[i] = '0' + @cast(value % 10, u8); + i += 1; + value /= 10; + value != 0; + } {} + + print_reverse(output, i - 1); +}; + +print :: (value:u8)->void{ + value := value; + result :[3]u8 = undefined; + i :u8= 0; + while { + result[i] = '0' + @cast(value % 10,u8); + i += 1; + value /= 10; + value != 0; + } {} + + print_reverse(result, i - 1); +}; + +print :: (value:u16)->void{ + value := value; + result :[5]u8 = undefined; + i :u8= 0; + while { + result[i] = '0' + @cast(value % 10,u8); + i += 1; + value /= 10; + value != 0; + } {} + + print_reverse(result, i - 1); +}; + +print :: (value:u32)->void{ + value := value; + result :[10]u8 = undefined; + i :u8= 0; + while { + result[i] = '0' + @cast(value % 10,u8); + i += 1; + value /= 10; + value != 0; + } {} + + print_reverse(result, i - 1); +}; + +print :: (value:u64)->void{ + value := value; + result :[20]u8 = undefined; + i :u8= 0; + while { + result[i] = '0' + @cast(value % 10,u8); + i += 1; + value /= 10; + value != 0; + } {} + + print_reverse(result, i - 1); +};
\ No newline at end of file |