MCPcopy Index your code
hub / github.com/antimony-lang/antimony

github.com/antimony-lang/antimony @v0.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.0 ↗ · + Follow
350 symbols 1,178 edges 32 files 61 documented · 17% updated 2mo agov0.9.0 · 2025-04-18★ 16913 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

The Antimony Programming Language

Continuous integration docs Chat on Matrix

Antimony is a bullshit-free (©) programming language that gets out of your way. It is meant to "just work", without adding unnecessary and bloated language features.

Why yet another language?

The goal of Antimony is to be a simple language that anyone - beginner and expert - can pick up and use. A "bullshit-free programming language" is of course a highly subjective opinion, and this project is my very own attempt at this. There are plenty of great programming languages out there, and Antimony is not meant to replace any of them. Currently, Antimony is just a general-purpose toy language. Its primary goal is to be simple and easy to understand, not to be efficient.

Example

// examples/fib.sb

fn main() {
    let num = 10
    println(fib(num))
}

fn fib(n: int): int {
    if n <= 1 {
        return n
    }

    return fib(n-1) + fib(n-2)
}

// -> 55

State of this project

Antimony is a hobby project created to learn about compiler internals. It is not (yet) intended for production use.

Most algorithms should run fine, but some features may be unstable. Standard library and documentation are still incomplete. See the open issues for upcoming todos.

The Antimony compiler emits JavaScript for the Node.js runtime, and a C backend is currently under development. Backends for WASM and LLVM are planned.

Documentation

Documentation is hosted here.

Getting started

See the installation instructions to get started.

Getting in touch

Join our Matrix room!

License

This software is licensed under the Apache-2.0 license.

Extension points exported contracts — how you extend this code

Generator (Interface)
(no doc) [5 implementers]
src/generator/mod.rs

Core symbols most depended-on inside this repo

tokenize
called by 83
src/lexer/mod.rs
parse
called by 73
src/parser/mod.rs
push
called by 40
src/parser/parser.rs
peek
called by 32
src/parser/parser.rs
bump
called by 30
src/lexer/cursor.rs
match_token
called by 30
src/parser/parser.rs
next
called by 24
src/parser/parser.rs
first
called by 21
src/lexer/cursor.rs

Shape

Function 204
Method 117
Class 18
Enum 10
Interface 1

Languages

Rust99%
TypeScript1%
C1%

Modules by API surface

src/parser/tests.rs66 symbols
src/generator/tests/qbe_tests.rs34 symbols
src/parser/rules.rs29 symbols
src/lexer/mod.rs25 symbols
src/generator/js.rs24 symbols
src/generator/qbe.rs23 symbols
src/generator/c.rs23 symbols
src/generator/tests/c_tests.rs21 symbols
src/parser/parser.rs15 symbols
src/ast/mod.rs12 symbols
src/lexer/tests.rs10 symbols
src/lexer/cursor.rs10 symbols

For agents

$ claude mcp add antimony \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact