From 1182e3688f6888673b1fab66f1c26b9cb880e175 Mon Sep 17 00:00:00 2001 From: sofia Date: Sun, 27 Jul 2025 00:55:31 +0300 Subject: [PATCH] Update documentation --- documentation/README.md | 9 +++++++-- documentation/standard_library.md | 32 ++++++++++++++++++------------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/documentation/README.md b/documentation/README.md index a8a7c00..d5101ea 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -7,7 +7,12 @@ motivation to write. Documentation is presented in a formal grammar and an example, syntax-highlighted with Rust, because it's close enough. -## Syntax +## Standard Library + +Reid has a standard library that is referred to as `std` in code. Documentation +about importable types and functions can be found [here](./standard_library.md). + +## Syntax and general information Syntax for Reid is very much inspired by rust, and examples of the language can be found in the [examples](../examples/)-folder. @@ -76,7 +81,7 @@ grammar the syntax for imports is :: "import" "::" ";" ``` -An example importing the `print`-function from `std` would be +An example importing the `print`-function from [`std`](./standard_library.md) would be ``` rust import std::print; ``` diff --git a/documentation/standard_library.md b/documentation/standard_library.md index 5f7cff2..e45748e 100644 --- a/documentation/standard_library.md +++ b/documentation/standard_library.md @@ -1,6 +1,8 @@ # Standard Library -### `pub struct String` +## Strings + +#### `pub struct String` Editable string value that can be printed and extended @@ -8,38 +10,42 @@ Has the following binops defined: - `String` + `*char` = `String` - `String` + `u64` = `String` -### `pub fn print(message: String)` +#### `pub fn print(message: String)` Prints given `message` to the standard output -### `pub fn allocate(size: u64) -> *u8` - -Unsafely allocates `size` bytes of memory from the stack, and returns a pointer to it, which must be manually freed. - -### `pub fn new_string() -> String` +#### `pub fn new_string() -> String` Returns a new empty `String`-object, which must later be manually freed. -### `pub fn from_str(string: *char) -> String` +#### `pub fn from_str(string: *char) -> String` Creates a new `String`-object containing initially data from the given string-literal which must be later freed. -### `pub fn set_char(string: &mut String, c: char, position: u64)` +#### `pub fn set_char(string: &mut String, c: char, position: u64)` Edits given `string` by setting the character at index `position` to be `c`. -### `pub fn add_num_to_string(string: &mut String, num: u64)` +#### `pub fn add_num_to_string(string: &mut String, num: u64)` Formats the given number into the end of the string. -### `pub fn concat_strings(destination: &mut String, source: String)` +#### `pub fn concat_strings(destination: &mut String, source: String)` Concatenates `source` to the end of `destination`. -### `pub fn clamp(min: f32, max: f32, value: f32) -> f32` +## General + +#### `pub fn allocate(size: u64) -> *u8` + +Unsafely allocates `size` bytes of memory from the stack, and returns a pointer to it, which must be manually freed. + +## Maths + +#### `pub fn clamp(min: f32, max: f32, value: f32) -> f32` Returns `value` as clamped between `min` and `max`. Equivalent to `max(min(value, max), min)` -### `pub fn abs(value: f32) -> f32` +#### `pub fn abs(value: f32) -> f32` Returns the absolute value of `value`. \ No newline at end of file