Skip to content
/ bang3 Public

My language. A bytecode interpreter written in Rust; with custom garbage-collector, formatter, linter, type-checker, and language server.

License

Notifications You must be signed in to change notification settings

brownben/bang3

Repository files navigation

Bang

My programming language. A strongly typed, functional, bytecode interpreter written in Rust, with its own garbage collector. Based on the syntax and style of the languages I have liked using.

Complete with a custom linter, opinionated code-formatter, type-checker, repl, and language server.

Documentation & Examples

An overview and guide to Bang can be found here.

Documentation for the standard library can be found here.

let fibonacci = n => match n
  | ..2 -> 1
  | n -> fibonacci(n - 1) + fibonacci(n - 2)

fibonacci(10)

More examples can be found in the /examples folder.

Usage

Bang! (v3.0.0)
My language - a strongly typed, functional, bytecode interpreter.

Usage: bang.exe <COMMAND>

Commands:
  run        Runs a Bang program
  repl       Start an interactive Read-Eval-Print Loop (REPL)
  format     Formats source files
  lint       Checks for lint warnings
  typecheck  Checks for type errors
  print      Prints debugging information
  lsp        Run the language server. For editors, not humans

Options:
  -h, --help     Print help
  -V, --version  Print version

Development

# To format the codebase:
cargo fmt

# To lint the codebase:
cargo clippy

# To run the tests:
cargo test --all

# To generate the standard library docs:
cargo run -p bang-interpreter --bin stdlib-docs

# To build Bang:
cargo build --release

Resources

I have been inspired by/ used the following guides/ projects when creating Bang.

Looking for an older version?

I am no longer working on previous versions, but you can find them here:

License

The code in this repository is covered by the Apache License 2.0.

About

My language. A bytecode interpreter written in Rust; with custom garbage-collector, formatter, linter, type-checker, and language server.

Topics

Resources

License

Stars

Watchers

Forks