Install
Release installer, source install, supported platforms, and update workflow.
Monster is an experimental low-level, ahead-of-time systems language. These docs are meant to stay close to the implementation: straightforward pages, feature lists, and runnable examples.
.mnst source
-> lexer
-> parser
-> AST
-> semantic analysis
-> LLVM IR
-> opt-18 (default -O2)
-> clang-18
-> native binary
mst.mnstRelease installer, source install, supported platforms, and update workflow.
Core syntax, types, control flow, enums, pointers, imports, and builtins.
init, check, emit-llvm, build, run, project manifests, and debug builds.
Working samples for argv, file I/O, module aliases, enums, match, and byte utilities.
fn, extern fn, const, let, let mut, defer, if, while, break, continue, returni32, u8, usize, bool, str, voidsizeof(T), casts with as, argc/argv, file I/O, string and byte helpers, plus early importable std/mem.mnst, std/str.mnst, and std/vec_i32.mnst modules
The first self-hosting slice lives in selfhost/. It is a Monster-written lexer
prototype that reads Monster source with read_file and builds a token buffer
with token kinds close to the Rust lexer.
mst run selfhost/main.mnst -- exam.mnst
fn main() -> i32 {
print_ln_str("Hello, World!");
return 0;
}