Code Monkey home page Code Monkey logo

theforce's Introduction

The Force

Latest Crates.io Version Latest Crates.io Version MIT license

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

The Force is a Star Wars inspired programming language. All keywords are made up of quotes from the movies and it is fully armed and operational!

Do it!
    The Sacred Jedi Texts! "Hello there\n"
May The Force be with you.

Getting Started

To learn about using The Force, please look at the introduction. We also have some examples of full programs you can use as reference.

Installing

If you have cargo:

cargo install theforce

Or download directly from our releases.

Usage

Run a .force file:

theforce /path/to/file

Developing

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 dual-licensed under the MIT or Yoda License - see the LICENSE.md and YODA-LICENSE.md files 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.

theforce's People

Contributors

forgind avatar mirdaki avatar vritant24 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

theforce's Issues

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

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.

Add some versioning and publish

To avoid unexpected breaking changes, once we have a good handle on the language, we should give it a version number and release it on GitHub

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

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)

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:

  • The True and false quotes should either both be the full quotes or just partial ones #28
  • Reading values is finicky #27
  • Variable types can change at any point, consider restricting that or streamlining process #23
  • Decide if replacing an existing variable is possible #23
  • Consider making true and false values print the quotes, instead of just true or false #29
  • Consider swapping and and or #28
  • Consider making not void a void keyword instead #28
  • [ ] Check function returns for edge cases
  • 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

Improve CLI experince

We should make a simple CLI tool to:

  • 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)

Support LLVM

It would be awesome if we could have the option to compile The Force with LLVM. May need to break this issue down more to be useful

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

Support representing numbers as roman numerals

With inspiration from the Episode numbering, it might be fund to support roman numerals as an option for regular numbers. Their may be a more in-universe syntax or option as well, but I couldn't think of one we could actually enter as text

Expand README

Should describe the project more, with some basic examples, instructions on how to run, a copyright disclaimer that we don't own any of the quotes. Contributing process maybe too. Mention the Licenses too

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.