Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/pyxherb/slake

An embeddable programming language.
https://github.com/pyxherb/slake

c-plus-plus c-plus-plus-17 cpp cpp17 embeddable-language gamedev gamedev-library language programming-language scripting-language

Last synced: 14 days ago
JSON representation

An embeddable programming language.

Awesome Lists containing this project

README

        

# Slake


Slake logo

The object-oriented, type-safe, embeddable programming language

## Introduction

Slake is an object-oriented, type-safe and embeddable programming language for
scripting.

## Development Progress

✅: Completed

🕓: Working In Progress

⏸: Paused/Postponed

❌: Cancelled

* Bytecode Compiler ⏸
* Lexer ⏸
* Parser ⏸

* Core Language Compiler 🕓
* Lexer ✅
* Parser ✅
* Compiler ✅
* Optimizer ❌
* Language Server 🕓
* Linting ✅
* Snippets 🕓
* Formatting 🕓
* Renaming 🕓

* Language Standard 🕓
* Control Flow ✅
* Exception ✅
* OOP Mechanism ✅
* Class ✅
* Interface ✅
* Trait ❌
* Operator ✅
* Accessor ❌
* Coroutine 🕓
* Closure ❌
* Overloading ✅

* Runtime Library 🕓
* Core Library (core) 🕓
* Coroutine (coroutine) 🕓
* Exceptions (except) 🕓
* Reflection (reflect) 🕓
* Standard Library (std) 🕓
* I/O (io) 🕓
* Stream (stream) 🕓
* Mathematic Facilities (math) 🕓
* RNG Facilities (rand) 🕓
* Utilities (utils) 🕓
* Concurrency (concurrent) 🕓
* File System (fs) 🕓
* Hashing (hash) 🕓
* Iterator (iterator) 🕓
* Range (range) 🕓
* String Manipulating (str) 🕓

* Runtime 🕓
* Built-in Compiler ❌
* Exception Mechanism ✅
* Type Checker ✅
* Interpreting ✅
* Generic ✅
* Overloading ✅
* OOP Mechanism ✅
* Class Instantiation ✅
* Class Inheritance ✅
* Interface Implementing ✅
* Closure ❌
* Coroutine 🕓

## Building

To build Slake, you will always need:

* CMake (version > 3.23)
* A C++ compiler with C++17 support
* A C++17 STL

### Runtime

For x86 and x86-64, you will need:

* Netwise Assembler (NASM), or any other compatible assembler.

### Slake Compiler (slkc)

You will need:

* A C++ Compiler with C++17 support
* jsoncpp library (If with language server support enabled)