1.
Overview
2.
Philosophy
2.1.
Design Decisions
2.2.
Why WebAssembly?
2.3.
Why use Onyx?
2.4.
Memory Management
3.
Syntax
3.1.
Lexical Rules
3.2.
Literals
3.3.
Declarations
3.4.
Blocks
3.5.
Bindings
4.
Program Structure
4.1.
Loading Files
4.2.
Packages
4.3.
Use declarations
5.
Operators
5.1.
Math operators
5.2.
Comparison operators
5.3.
Boolean operators
5.4.
Pointer operators
5.5.
Bitwise operators
5.6.
Try/Coalesce operators
5.7.
Cast operators
5.8.
Procedure calls
5.9.
If/else operator
5.10.
Range operator
5.11.
Pipe operator
5.12.
Method call operator
5.13.
Precedence
6.
Control Flow
6.1.
If
6.2.
While loops
6.3.
Switch
6.4.
Defer
6.5.
For loops
6.6.
Branching
6.7.
Do Blocks
6.8.
Used Locals
7.
Procedures
7.1.
Parameters
7.2.
Return values
7.3.
Automatic-return type
7.4.
Calling procedures
7.5.
Variadic procedures
7.6.
Polymorphic procedures
7.7.
Quick procedures
7.8.
Overloaded procedures
7.9.
Interfaces and where
7.10.
Operator overloading
7.11.
Macros
8.
Types
8.1.
Primitives
8.2.
Pointers
8.3.
Fixed-size Arrays
8.4.
Slices
8.5.
Dynamic Arrays
8.6.
Structures
8.7.
Enumerations
8.8.
Tagged Unions
8.9.
Distinct
8.10.
Procedure types
8.11.
Optional
9.
Directives
9.1.
#inject
9.2.
#if
9.3.
#tag
9.4.
#export
9.5.
#foreign
9.6.
#file_contents
9.7.
#defined
9.8.
#persist
9.9.
#thread_local
9.10.
#doc
9.11.
#deprecated
9.12.
#init
9.13.
#error
9.14.
#this_package
10.
Miscellaneous
10.1.
Format Strings
10.2.
Reflection
10.3.
JS Interop
Light
Rust
Coal
Navy
Ayu
Onyx Documentation
Types