Skip to main content

A simple, expressive programming language that transpiles to Python

Project description

Orlang

A simple, expressive programming language that transpiles to Python. Orlang is inspired by the Afaan Oromo language, using its syntax and keywords to create a unique and culturally relevant programming experience.

Features

  • Clean, Afaan Oromo-inspired syntax
  • Support for basic data types (integers, strings, booleans)
  • Variable declarations and assignments
  • Control flow statements (if/else, while loops, for loops)
  • Transpiles to readable Python code

Installation

Using pip

pip install orlang

From Source

Prerequisites

  • Python 3.13 or higher
  • uv package manager (optional)

Setup

  1. Clone the repository:
git clone https://github.com/firo1919/orlang.git
cd orlang
  1. Install the package in development mode:
# Using pip
pip install -e .

# Or using uv
uv pip install -e .

This will install the orlang command-line tool globally.

Usage

Command Line

Run an Orlang file:

orlang path/to/your/file.orl

Example Code

// Variable declaration
bakka count = 0;

// While loop
yeroo (count < 5) {
    barreessi count;
    count = count + 1;
}

// For loop
hama (bakka i = 0; i < 5; i = i + 1) {
    barreessi i;
}

Language Specification

Afaan Oromo Keywords

Orlang uses Afaan Oromo words as keywords to make programming more accessible and culturally relevant:

  • bakka - Variable declaration (meaning "place" or "location")
  • barreessi - Print statement (meaning "write")
  • yoo - If statement (meaning "if")
  • kanbiroo - Else statement (meaning "otherwise")
  • yeroo - While loop (meaning "time" or "when")
  • hama - For loop (meaning "until")
  • dhugaa - True (meaning "true")
  • soba - False (meaning "false")
  • duwwaa - Null (meaning "empty")

Variables

Variables must be declared using the bakka keyword:

bakka name = "value";

Control Flow

If Statements

yoo (condition) {
    // code
} kanbiroo {
    // code
}

While Loops

yeroo (condition) {
    // code
}

For Loops

hama (bakka i = 0; i < limit; i = i + 1) {
    // code
}

Operators

Arithmetic

  • + - Addition
  • - - Subtraction
  • * - Multiplication
  • / - Division

Comparison

  • == - Equal to
  • != - Not equal to
  • > - Greater than
  • < - Less than
  • >= - Greater than or equal to
  • <= - Less than or equal to

Logical

  • fi - Logical AND (meaning "and")
  • ykn - Logical OR (meaning "or")

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orlang-0.1.1.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

orlang-0.1.1-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file orlang-0.1.1.tar.gz.

File metadata

  • Download URL: orlang-0.1.1.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for orlang-0.1.1.tar.gz
Algorithm Hash digest
SHA256 14ac046ec4f090045ed9370835810199f7cfdd0dc76c0c78ed418ee8e9d9f28c
MD5 61d6af786054543b3e1a25e6373db5e2
BLAKE2b-256 4c26c22a00e3dce1979c0ae0407c855e251f87e9bb715330d6b769550ec4ec03

See more details on using hashes here.

File details

Details for the file orlang-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: orlang-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for orlang-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4f4b8f79a03e4536922a33d78232ac80604974ae99d307d23ee4773cd390e9cd
MD5 7362ce8e740daa34bb4bb1f57e994964
BLAKE2b-256 49273f32627316f75dd27d25a00aa9f8f8be9e899c74d46fe0812fc36391c77b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page