Skip to content

Ignis-lang/ignis

Repository files navigation

Ignis Lang

Caution

The outlook for Ignis lang may change as the language is under development and evolving; it is currently in its early stages and, for now, is an experimental language.

Ignis is a general-purpose programming language with strong, static typing, and immutability by default for variables. The languages that inspired Ignis are TypeScript and Rust. The goal of Ignis is not to be used by everyone but to be a language that allows me to learn how programming languages are created and work. And, if in the process I can use it to create scripts that replace code written in Bash or other languages, especially Lua and Python, that would be ideal.

Installation

Requirements

  • Rust/Cargo version 1.74 or higher
cargo install --git https://gitlab.com/Ignis/ignis.git --branch dev
# or
git clone https://gitlab.com/Ignis/ignis.git
cd ignis
cargo install --path . ignis
# Or
cargo build --release

Usage

Important

The only backend that is currently running is the Lua backend.

ignis build main.ign

Example Code

import { io } from "std::io";

function sum(nums: i64[]): i64 {
  let mut total: i64 = 0;

  for (let i = 0; i < nums.length; i++) {
    total = total + nums[i];
  }

  return total;
}

function main(): void {
  let array: i64[] = [1, 2, 3, 4, 5];

  io::println("Lenght: " + array.length.toString());

  io::println(sum(array));
}

Contributions

Ignis lang is an open project for contributions. If you're interested in collaborating, you can:

  • Report bugs or issues.
  • Propose new features.
  • Submit pull requests with improvements or new features.

About

Ignis is a programming language created by me.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages