A Star Wars inspired by programming language

Overview

The Force

The Force is a gateway to abilities many believe are unnatural...

Getting Started

Install Rust. We also provide a Dev Container if you would prefer to run it that way.

To run the examples:

cargo run examples/hello-there.force

To run with LLVM support (currently a WIP):

cargo run examples/hello-there.force --features llvm

Built With

Thank you to all the projects that helped make this possible!

Contributing

Please read CONTRIBUTING.md for how to contribute to the project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

The Force is in no way affiliated with or endorsed by Lucasfilm Limited or any of its subsidiaries, employees, or associates. All Star Wars quotes and references in this project are copyrighted to Lucasfilm Limited. This project intends to use these strictly within the terms of fair use under United States copyright laws.

Disney please don't sue us.

Comments
  • Support comments

    Support comments

    There might be some clever set of Star Wars comment characters (make it look like an X-Wing, Tie Fighter, Lightsaber, etc). But even without that, we should have some way to add comments

    enhancement 
    opened by mirdaki 1
  • Use actual quotes and match keywords better

    Use actual quotes and match keywords better

    Bunch of things from #13

    • True and false are now both partial quotes
    • Swapped and and or
    • Swapped float and string deceleration
    • Made not void void
    • Verified and fixed all quotes
    • Fixed the examples to work with new keywords
    • Other quote changes
    opened by mirdaki 0
  • Update CI to run Examples

    Update CI to run Examples

    All examples should run without errors. If possible, with correctness too (though that might require recording their output and checking against that, which could muddy the repo some)

    enhancement 
    opened by mirdaki 0
  • Improve CLI experince

    Improve CLI experince

    We should make a simple CLI tool to:

    • [x] run the code from a file (#19)
    • [ ] provide a version number
    • [ ] provide help

    Stretch ideas, not necessary for the first pass

    • ~[ ] Check for errors~
    • ~[ ] REPL experience~
    • ~[ ] Compiler (assuming this works #11)~
    enhancement 
    opened by mirdaki 0
  • Refine language grammar and key words

    Refine language grammar and key words

    Though the language works, some things could probably be improved or changed. We should do the things we know now before we start versioning things (#4). Working list:

    • [x] The True and false quotes should either both be the full quotes or just partial ones #28
    • [x] Reading values is finicky #27
    • [X] Variable types can change at any point, consider restricting that or streamlining process #23
    • [X] Decide if replacing an existing variable is possible #23
    • [x] Consider making true and false values print the quotes, instead of just true or false #29
    • [x] Consider swapping and and or #28
    • [x] Consider making not void a void keyword instead #28
    • ~[ ] Check function returns for edge cases~
    • [x] General look through of operations and statement combinations to see if some might be better suited together (for instance, matching a Yoda quote with a Yoda quote) #28
    enhancement 
    opened by mirdaki 0
  • Update Design to be an Introduction

    Update Design to be an Introduction

    The design file is currently out-of-date, as it was used to help figure out the first iteration of the language. We should use it as an introduction to the language, so people have something more than just the examples and source itself

    documentation 
    opened by mirdaki 0
  • Add more docs and make LLVM support optional

    Add more docs and make LLVM support optional

    Adds more information to the README #2, and other supporting documents, such as the Code of Conduct and Contributing file.

    Also make the LLVM support optional. Especially useful as it doesn't work right now

    documentation enhancement 
    opened by mirdaki 0
  • Fix FizzBuzz

    Fix FizzBuzz

    Fix the FizzBuzz example.

    Requred updateing the grammar and parser to treat escape chracters specially so they are stored properly

    Interpreter no longer automatically adds a new line, which also required some test changes

    enhancement 
    opened by mirdaki 0
  • Bring in example GitHub action

    Bring in example GitHub action

    Based on https://github.com/actions-rs/example/blob/master/.github/workflows/quickstart.yml

    Checks that the code compiles, tests runs, and the linter is happy

    enhancement hacktoberfest-accepted 
    opened by mirdaki 0
  • Add first iteration of the interpreter

    Add first iteration of the interpreter

    Support all the functionality the grammar and parser do. Lots of code changes left, such as resolving some todos, adding error quotes, rethinking the quote mapping to key words, etc.

    enhancement hacktoberfest-accepted 
    opened by mirdaki 0
  • Update with Yoda LICENSE

    Update with Yoda LICENSE

    There is a wonderful quote from Yoda about how to use The Force

    A Jedi uses the Force for knowledge and defense, never for attack.

    We can probably use that, plus some other Yoda-isms to create a fun License we can use as a dual License

    documentation 
    opened by mirdaki 0
  • Add more example programs

    Add more example programs

    There is currently only a hello world and a Fizz Buzz program in our examples folder. It'd be great to provide more examples for people to learn (or just have fun with)!

    Please comment below with the program you are working on and make a separate PR once it's ready! I'm happy to help give suggestions

    help wanted hacktoberfest-accepted 
    opened by mirdaki 0
  • Support converting from

    Support converting from "Real" keywords to quotes

    Writing everything with quotes can be difficult. Add support to convert a file using the key words the quotes represent into The Force. Investigate ways to not have multiple "sources of truth" in the Grammar and in where this is added.

    enhancement help wanted 
    opened by mirdaki 1
Owner
Matthew Booe
Founder of the @ufosc
Matthew Booe
Programming language from down under, inspired by this Reddit post.

aussie++ Programming language from down under, inspired by this Reddit post. View live demo here. Special thanks to MarkWhyBird, louis100, and others

Zack Radisic 562 Dec 27, 2022
Programming Language Inspired by Brainfuck

Brainsuck Brainfuck but not really... like... a better version of it. Installation Requirements: Rust version 1.50 or higher Linux curl https://raw.gi

Derin Önder Eren 27 Nov 18, 2022
tr-lang is a language that aims to bring programming language syntax closer to Turkish.

tr-lang Made with ❤️ in ???? tr-lang is a language that aims to bring programming language syntax closer to Turkish. tr-lang is a stack based language

Kerem Göksu 10 Apr 2, 2022
A simple programming language for everyone.

Slang A simple programming language for everyone, made with Rust. State In very early stages. Plan is to create a byte-code compiler and make that exe

Slang, Inc. 11 Jul 1, 2022
A programming language. Better mantra pending.

Dusk Dusk is a programming language I've been working on on and off for the past while now. It's still very much in its infancy (... a quick look thro

Kaylynn Morgan 14 Oct 24, 2022
Ruxnasm is an assembler for Uxntal — a programming language for the Uxn stack-machine by Hundred Rabbits

Ruxnasm is an assembler for Uxntal — a programming language for the Uxn stack-machine by Hundred Rabbits. Ruxnasm strives to be an alternative to Uxnasm, featuring more user-friendly error reporting, warnings, and helpful hints, reminiscent of those seen in modern compilers for languages such as Rust or Elm.

Karol Belina 44 Oct 4, 2022
Frame is a markdown language for creating state machines (automata) in 7 programming languages as well as generating UML documentation.

Frame Language Transpiler v0.5.1 Hi! So very glad you are interested in Frame. Frame system design markdown language for software architects and engin

Mark Truluck 35 Dec 31, 2022
beat saber is a strongly typed, self-documenting and highly performant programming language

beatsaber beat saber is a strongly typed, self-documenting and highly performant programming language. With beat saber we aimed to create a language t

Untitled 4 Jan 17, 2022
Analogous, indented syntax for the Rust programming language.

Note: After experimenting with this in the wild, I have found representing keywords as symbols to be far less readable in large codebases. Additionall

null 42 Oct 2, 2021
A cell-based esoteric programming language

Tape A cell-based esoteric programming language Tape is a cell-based, brainfuck-like programming language that has a readable syntax and a non-wasted

Gabriel Pacheco 2 Feb 23, 2022
An incremental programming language

Differential Datalog (DDlog) DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously upd

VMware 1.2k Dec 28, 2022
🤯 A brainf*ck-style programming language, but readable

?? Brainease Brainease is a brainf*ck-style programming language, but readable. $ cargo install brainease # brainease -f examples/hello.bz save 'H

Arthur Fiorette 11 Sep 30, 2022
Simple programming language that speaks the ones you already know!

Simple programming language that speaks the ones you already know!

LyonSyonII 2 Feb 12, 2022
simple, C-like programming language

CUP: C(ompiler) U(nder) P(rogress) A badly named, in-progress programming language just to learn how these things work. Wait, doesn't everyone write a

Mustafa Quraish 287 Dec 28, 2022
A fast & light weight Discord Client made with love using the Rust programming language.

LemonCord A fast & light-weight Discord Client written in Rust using the wry crate. Features Fast, light-weight, easy to use. 100% Open sourced. No su

Lemon Rose 5 Jan 30, 2023
A simple interpreter written in Rust programming language.

Interpreter in Rust A simple interpreter written in Rust programming language. Getting Started These instructions will get you a copy of the project u

Ismail Mosleh 5 Feb 17, 2023
Compiler & Interpreter for the (rather new and very experimental) Y programming language.

Y Lang Why would anyone build a new (and rather experimental) language with no real world use case. Design Y (pronounced as why) is based on the idea

Louis Meyer 8 Mar 5, 2023
The official programming language of the Hasso Plattner Institute.

Die HPI Programmiersprache Die offizielle Programmiersprache des HPI. Anmerkung: Dieses Projekt soll niemanden beleidigen oder bloßstellen, alles bitt

null 7 Oct 22, 2023
Opensource diagnostic software for Daimler vehicles, inspired by Xentry and DAS, written in Rust

OPENSTAR An opensource diagnostic application for Daimler vehicles inspired by DAS and Xentry. Some of the work here is based on OpenVehicleDiag If yo

Ashcon Mohseninia 21 Nov 20, 2022