From aa58218da7a3ce3587a768f85323c3ce2212f6b2 Mon Sep 17 00:00:00 2001 From: nodist Date: Fri, 22 May 2026 13:13:47 -0400 Subject: add operators for bit type --- docs/type_system/bit.md | 103 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 docs/type_system/bit.md (limited to 'docs/type_system/bit.md') 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` -- cgit v1.2.3