Bell is a work in progress programming language that compiles to MCfunction (Minecraft's language for creating datapacks).

Overview

Bell is a work in progress programming language that compiles to MCfunction (Minecraft's language for creating datapacks).

It provides a higher level, smarter workflow for developers writing MCfunction so they can write more code faster, better and in less space. To be able to reason about your code and make changes easily. No more manically going around the datapack updating scoreboard player names or spending a full day translating a complex formula into MCfunction code.

Progress

Bell has finished it's first release. The goal of this release was to provide a simplistic, working version of Bell, to get something out there. There are some parts I am really proud of, others less.

I've learned a lot while developing this release. And there are so many parts I'd like to work on now. Bell will be getting a rewrite in the near future so that it has more features, better and original syntax and produces more optimized code.

Known bugs

It is possible for condition branches to effect other ones. I.E:

if x == 3 {
    println(x);
    x = x + 1;
} else if x == 5 {
    println(x);
} else if x == 4 {
    println(x);   
}

will print:

3
4

This is actually a common bug in many compilers like this (such as Debris and WASMcraft).

A fix will arrive once I redo Bell's MIR. The gist of the fix is to lower if-else-if-else into if-else like so:

if x == 2 {
    // Snip!
} else {
    if x == 3 {
        // Snip!
    } else {
        // Snip!
    }
}

In more detail, the actual fix involves tracking which branch was taken using a special variable.

You might also like...
Abstreet - Transportation planning and traffic simulation software for creating cities friendlier to walking, biking, and public transit
Abstreet - Transportation planning and traffic simulation software for creating cities friendlier to walking, biking, and public transit

A/B Street Ever been stuck in traffic on a bus, wondering why is there legal street parking instead of a dedicated bus lane? A/B Street is a project t

Utilities for creating strictly ordered execution graphs of systems for the Bevy game engine

bevy_system_graph This crate provides the utilities for creating strictly ordered execution graphs of systems for the Bevy game engine. Bevy Version S

Wein2D.js bindings for creating browser games in Rust using WebAssembly.

Wein2D.js-WASM Wein2D.js bindings for creating browser games in Rust using WebAssembly. Wein2D.js-WASM requires Wein2d.js to be loaded in the same doc

Facilitate the process of creating a decompilation project for a given Wii/Gamecube game

dadosod Facilitate the process of creating a decompilation project for a given Wii/Gamecube game Features Disassembly DOL Guess/Calculate common secti

A tool for creating optimised, platform specific glTF files.

Squisher What? squisher is a program that takes a glTF or .glb file with PNG/JPG textures and produces a .glb file where the textures have been replac

A bevy plugin for creating grids, for debugging purposes
A bevy plugin for creating grids, for debugging purposes

Bevy Debug Grid A plugin for creating debug mesh grids in the bevy game engine. The default_cube example Installation To install this plugin, add the

A 3D modeling and rendering programming language utilizing SDFs.
A 3D modeling and rendering programming language utilizing SDFs.

ForgedThoughts is a modeling and rendering programming language utilizing SDFs and is in early development. For documentation and examples see the Web

A programming language designed for the DiamondFire Minecraft server.

Blackstone Blackstone is a programming language designed to help create plots on the MCDiamondFire Minecraft server. Community Links Discord: https://

A Rust wrapper and bindings of Allegro 5 game programming library

RustAllegro A thin Rust wrapper of Allegro 5. Game loop example extern crate allegro; extern crate allegro_font; use allegro::*; use allegro_font::*;

Owner
Yoav
An amateur developer interested in compiler and language design. Enjoys writing in Python, Rust and MCfunction.
Yoav
Work-in-progress Nintendo Switch emulator, written in Rust and slightly less focused on gaming

pegasus Work-in-progress Nintendo Switch emulator, written in pure Rust and slightly less focused on gaming Information This project aims to be a diff

XorTroll 21 Nov 22, 2022
Morphosis is a work-in-progress set of tools to deal with Minecraft metadata, mainly for use with PolyMC.

Morphosis Morphosis is a work-in-progress set of tools to deal with Minecraft metadata, mainly for use with PolyMC. It consists of a library (metamorp

cozyGalvinism 3 May 3, 2022
Work-in-Progress NES / Famicon Image Editor & Map Creator

NESImg An extremely work-in-progress tool for making NES/Famicom-compatible images. When faced with the challenge of formatting artwork in a way that

Katharos Technology 10 Nov 24, 2022
Work-in-Progress, opinionated game framework built on Bevy.

Bones A work-in-progress, opinionated game meta-engine built on Bevy. Under development for future use in the Jumpy game, and possibly other FishFolk

Fish Folk 9 Jan 3, 2023
🚀 A universe in progress

Verse Download Get the latest release! Controls Action Keyboard Controller Thrust W, ↑ RT Turn left A, ← LS ← Turn right D, → LS → Fire Space A/X Paus

Thom Bruce 4 Oct 28, 2023
Creating a simple flappy bird game in Rust language

Creating a simple flappy bird game in Rust language The main goal of this project is to get my hands dirty with rust, while creating something fun. Ex

Sajidur Rahman 1 Feb 10, 2022
Victorem - easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust.

Victorem Easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust. Example Cargo.toml [dependencies] vict

Victor Winbringer 27 Jan 7, 2023
a prototype crate for creating modular and performant 3D CPU particle systems, inspired by Unity's Shuriken Particle System.

bevy_prototype_particles This is a prototype crate for creating modular and performant 3D CPU particle systems, inspired by Unity's Shuriken Particle

James Liu 28 Sep 12, 2022
Engine / framework for creating highly customizable and user modable action RPG's

Rust RPG Toolkit PLEASE NOTE: this in early and very heavy development. API is subject to constant change, as it has newly transitioned from being a g

Ole A. Sjo Fasting 58 Dec 5, 2022
Hotham is a framework for quickly and easily creating amazing standalone VR experiences.

?? Under construction! Please mind the mess! ?? Introduction G'day, and welcome to Hotham! ?? Hotham is an attempt to create a lightweight, high perfo

Let Eyes Equals Two 296 Dec 29, 2022