Skip to content

Creepsky/Nexus

Repository files navigation

The Nexus Programming language

Managed with Taiga.io Build Status Waffle.io - Columns and their card count codecov Codacy Badge

A simple yet powerful system programming language.

class My_class {
    int my_int;
    usize my_usize;
}

(int, string) MyClass.create_tuple() {
    return (123, "abc");
}

void MyClass.do_something() {
    auto number, text = create_tuple();
    string [] values;
    auto upper_bound = 10;

    for (auto i : 0..upper_bound) {
        values.add(text);
    }
}

Nexus translates directly to C++ code, which makes interoperabilty with libraries a lot easier, and tries to generate the most performant code, while still being easy to write.

Main Goals

  • write less, do more
  • simple and readable code
  • high level constructs and syntactic sugar
  • built-in asynchronicity through thread pools and channels
  • easy to use library manager
  • type safety

How to use the compiler

dotnet NexusParser.dll <project dir> <output dir>
project dir: root directory of your Nexus project
output dir: root directory for your output C++ project

How to compile the Nexus parser

  1. Install .NET core (tested with 2.1)
  2. Install JDK (or install it from your OS repository)
  3. Download antlr (tested with 4.7.1 complete)
  4. Run antlr.sh on Linux systems or antlr.bat on Windows
  5. Compile with dotnet build NexusParser.sln (or use your favorite IDE)