Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/budgielang/budgie

A unified syntax that compiles into your favorite OOP languages. 🦜
https://github.com/budgielang/budgie

csharp gls java javascript metaprogramming oop-languages python ruby typescript

Last synced: 30 days ago
JSON representation

A unified syntax that compiles into your favorite OOP languages. 🦜

Awesome Lists containing this project

README

        

# Budgie 🦜

[![NPM version](https://badge.fury.io/js/budgie.svg)](http://badge.fury.io/js/budgie)
[![Greenkeeper badge](https://badges.greenkeeper.io/budgielang/budgie.svg)](https://greenkeeper.io/)
[![Circle CI](https://circleci.com/gh/budgielang/budgie.svg?style=svg)](https://circleci.com/gh/budgielang/budgie)

A unified syntax that compiles into a number of OOP languages.
_Formerly known as General Language Syntax (GLS)._

* 🎭 Try it at **[budgielang.org](https://budgielang.org)** 🎭
* 📚 Read the docs on **[docs.budgielang.org](https://docs.budgielang.org)** 📚

> **Budgie is still under development. Don't expect everything to work!**

## Usage

Budgie can be used as a command-line app or via `import`/`require`.

### CLI

To convert `file.bg` to `file.py`:

```shell
npm install budgie-cli --global

budgie --language Python file.bg
```

See [budgie-cli](https://github.com/budgielang/budgie-cli).

### Code

`npm install budgie`

```javascript
import { Budgie } from "budgie";

const budgie = new Budgie("C#");

// System.Console.WriteLine("Hello world!");
budgie.convert([`print : ("Hello world!")`]);
```

## Why?

No reason in particular!

Budgie is not intended to be a useful language or targeted to any real purpose.
It's a proof-of-concept exploration for the fun of it.

## Status

Budgie is just shy of **0.4**.


Deliverable
Version
Description



C++ Compiler
0.1
Command-line Budgie prototype, written in C++.


TypeScript Compiler draft
0.2
Budgie compiler as a website, written in TypeScript.


TypeScript Compiler + C# Output
0.3
Budgie compiler re-written in TypeScript. Near-working C#, Java, JavaScript, Python, Ruby, and TypeScript output.


Roundtripping Feature Complete
0.4
All features required for roundtripping implemented. Working C# and TypeScript output. Near-working Java, JavaScript, Python, and Ruby output. Switched to a better name.


Full Language Outputs
0.5
Working C#, Java, JavaScript, Ruby, Python, and TypeScript output.


Haxe, Powershell, Misc.
0.6
Onboard or reject those languages and other possibilities.


Language Specification Finalized
0.7
Finalized language spec & cleaned internals of code.


General Release
1.0
Public announcement, glory to everyone.

## Development

If you'd like to contribute to Budgie, see [Development.md](https://github.com/budgielang/budgie/blob/master/docs/development.md).

> Requires Node >=12

💖 Many thanks to [@matthojo](https://github.com/matthojo) for allowing use of the `budgie` npm package name!