From 32c9b5a9c854996ce7370618c348fcbd842d8d4f Mon Sep 17 00:00:00 2001 From: MrCoderV3 Date: Fri, 25 Apr 2025 13:05:40 +0330 Subject: Added print library --- code/lib/print.felan | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 code/lib/print.felan (limited to 'code/lib') 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 -- cgit v1.2.3