Add docs to lib.rs

This commit is contained in:
Sofia 2025-07-09 20:13:16 +03:00
parent a907fec967
commit f7fa69fbe2

View File

@ -1,3 +1,35 @@
//! Reid is a toy-language compiler I'm working on to learn LLVM (and compiler
//! development).
//!
//! Reid only uses [llvm-sys](https://gitlab.com/taricorp/llvm-sys.rs), which
//! provide very minimal bindings from the LLVM C-API to Rust. `reid_llvm`-crate
//! contains the relevant abstraction to produce a more Rust'y API from that.
//!
//! Much of the syntax in Reid is directly inspired by rust, but mostly it is
//! driven by simplicity.
//!
//! Currently missing relevant features (TODOs) are:
//! - Arrays
//! - Structs (and custom types as such)
//! - Extern functions
//! - Strings
//! - Loops
//!
//! An example program of Reid, that calculates the 5th fibonacci number (and
//! uses Rust for highlighting) is:
//! ```rust
//! fn main() -> u16 {
//! return fibonacci(5);
//! }
//!
//! fn fibonacci(n: u16) -> u16 {
//! if n <= 2 {
//! return 1;
//! }
//! return fibonacci(n-1) + fibonacci(n-2);
//! }
//! ```
use mir::typecheck::TypeCheck;
use reid_lib::Context;
@ -11,13 +43,6 @@ mod pad_adapter;
mod token_stream;
mod util;
// TODO (Missing Relevant Features):
// - Arrays
// - Structs (and custom types as such)
// - Extern functions
// - Strings
// - Loops
#[derive(thiserror::Error, Debug)]
pub enum ReidError {
#[error(transparent)]