Totem-Studios / lotus

Lotus is a type-safe compiled programming languages designed to simplify systems programming, achieving memory safety using RAII.
https://totemstudios.org/lotus
MIT License
4 stars 2 forks source link
An image of the Lotus logo with the text lotus below

Lotus: The Power of Simplicity

Lotus is a type-safe compiled programming language designed to simplify the syntax of C++ and achieve memory safety using ownership and borrowing.

The syntax of Lotus is mainly C/C++ based however adding new features and "syntactic-sugar". The goal of the language is a more elegant approach to high-demand programming. In other words, Lotus has a bias for systems programming.

This repository contains the original compiler for Lotus. It is not yet finished and offers minimal debugging support with unoptimized binary. It is incomplete, as can be said for the Lotus SDL.

Platform Architecture Status
Windows x86_64 Underway
macOS x86_64, ARM Upcoming
Linux x86_64 Upcoming
Phone x86_64, ARM Upcoming

Highlights and roadmap of Lotus

Deep Dive into Lotus

To learn more about Lotus, our comprehensive documentation is the perfect starting point. You can access it on our GitHub page: Lotus Documentation.

Lotus for Visual Studio Code

To enhance the experience of writing and debugging Lotus code, we've developed a Visual Studio Code extension. You can access it here: Lotus VSCode Extension.

Project Structure

Directory Contents
.github/workflow here is the files that provides helps us test the code and more.
.github/ISSUE_TEMPLATE here is the files that are being used as templates when creating an issue on our github repository.
bin/ here is the compiled binary files generated when compiling.
config/ here is the files to easily change modes etc.
grammar/ here is the grammar that is specified for the programming language.
logs/ all of your logs when you execute a Lotus program will be added here.
sdl/ the lotus standard library files will be located here.
src/ here you will find the core of the programming language and this includes the lexer, parser and more.
tests/ here you will find the tests that is made by the development team to test the internal logic.

How to build the Project

First off make sure that you have all prerequisites installed on your machine and that your machine supports x86_64 assembly (AMD_64). This can be done in a terminal or command line interface.

How to run the project

To run a Lotus project, you need to use the lotus command followed by the filename and (optional: a file destination). This can be done in a terminal or command line interface. Here is the basic command structure:

# To run a Lotus program, use the `Lotus` command followed by the filename
# Replace `filename` with the path to your .lts or .lotus file
lotus myProgram.lts myExecutable