summaryrefslogtreecommitdiff
path: root/docs/type_system/bit.md
diff options
context:
space:
mode:
authornodist <kevin.comas.git@gmail.com>2026-05-22 13:13:47 -0400
committernodist <kevin.comas.git@gmail.com>2026-05-22 13:13:47 -0400
commitaa58218da7a3ce3587a768f85323c3ce2212f6b2 (patch)
tree18f49b3d00d946cb4efb1562397b255909670395 /docs/type_system/bit.md
parentc71cd186644570eb25c45ded7837b0e7aa54987a (diff)
add operators for bit type
Diffstat (limited to 'docs/type_system/bit.md')
-rw-r--r--docs/type_system/bit.md103
1 files changed, 103 insertions, 0 deletions
diff --git a/docs/type_system/bit.md b/docs/type_system/bit.md
new file mode 100644
index 0000000..c787ae9
--- /dev/null
+++ b/docs/type_system/bit.md
@@ -0,0 +1,103 @@
+# Bit
+
+---
+
+A sequence of bits that can fit into a register
+
+```text
+Bit_size `alias Enum[.bit_any; .bit8; .bit16; .bit32; .bit64; .bit80; .bit128]
+
+Bit_representation `alias Enum[
+ .numeric; .int; .int_unsiged; .int_signed; .float
+ .utf8; .utf16; .utf32
+ .bool
+ .mask
+]
+
+Bit[Bit_size; Bit_representation]
+```
+
+# Alias
+
+```text
+Number `alias Bit[.bit_any; .numeric]
+
+Int `alias Bit[.bit_any; .int]
+
+Int_unsiged `alias Bit[.bit_any; .int_unsiged]
+
+U8 `alias Bit[.bit8; .int_unsiged]
+U16 `alias Bit[.bit16; .int_unsiged]
+U32 `alias Bit[.bit32; .int_unsiged]
+U64 `alias Bit[.bit64; .int_unsiged]
+
+Int_signed `alias Bit[.bit_any; .int_signed]
+
+I8 `alias Bit[.bit8; .int_signed]
+I16 `alias Bit[.bit16; .int_signed]
+I32 `alias Bit[.bit32; .int_signed]
+I64 `alias Bit[.bit64; .int_signed]
+
+Float `alias Bit[.bit_any; .float]
+
+F32 `alias Bit[.bit32; .float]
+F64 `alias Bit[.bit64; .float]
+
+Char `alias Bit[.bit32; .utf8]
+
+Bool `alias Bit[.bit8; .bool]
+
+Mask `alias Bit[.bit64; .mask]
+```
+
+# Operators
+
+## Arithmetic
+
+### Add `+`
+
+### Sub `-`
+
+### Mul `*`
+
+### Div `/`
+
+### Mod `%`
+
+### ``exp`
+
+### ``ln`
+
+## Boolean
+
+### Not `!`
+
+### Equal `=`
+
+### Not Equal `!=`
+
+### And `&`
+
+### Or `|`
+
+### Greater `>`
+
+### Greater Equal `>=`
+
+### Less `<`
+
+### Less Equal `<=`
+
+## Bitwise
+
+### ``bit_not`
+
+### ``bit_and`
+
+### ``bit_or`
+
+### ``bit_xor`
+
+### ``bit_ls`
+
+### ``bit_rs`