AetherX 0.4
The AetherScript Programming Language
License: MIT


---

<div align="center">

![AetherScript](https://raw.githubusercontent.com/ProjectDragonRealms/AetherScript/main/branding/banner.svg)

![[publish status](https://github.com/ProjectDragonRealms/AetherScript/actions/workflows/python-publish.yml)](https://github.com/ProjectDragonRealms/AetherScript/actions/workflows/python-publish.yml/badge.svg)
![[latest release](https://github.com/ProjectDragonRealms/AetherScript/releases/latest)](https://img.shields.io/github/v/release/ProjectDragonRealms/AetherScript)

### Enhance Your Coding Experience

</div>

---

## Introduction

AetherScript is a dynamic and user-friendly programming language based on Python, designed to facilitate seamless application development and enhance the coding experience. It is accessible to both beginners and experienced developers, with a variety of features and workflows to choose from. AetherScript promotes creativity and collaboration, providing an ideal environment for developers to bring their ideas to life.

## Installation

You can use AetherScript in your Python projects with the `AetherX` library.

```sh
$ py -m pip install --upgrade AetherX
$ py
```

```py
>>> from AetherX import AES
>>> AES.run()
```

```aes
<AetherScript> _
```

---

## Documentation

### Aether Chambers

Once AetherScript is activated, the `<AetherScript>` prompt appears. This is the AetherScript workspace, known as an Aether Chamber.

### Built-in functions

| Feature | Description | Example/s |
|:-:|:--|:--|
| Binary operations | Binary operations are supported (addition, subtraction, multiplication, and division). | `2*3`, `1+2`, `24-12`, `121/11` |
| Booleans | Declaring conditions with the `True` and `False` keywords | (Under Development) |
| Comments | AetherScript comments are signified by a tilde (`~`). (Single line Comments) | `~ This is a comment` |
| Comparisons | Symbols like `<` and `>` help to classify values of variables and compare them. `!=` means "not equal to". Values like `MathPi` can be used in calculations. Execution of `MathPi` gives the value of π. | `2<3`, `3>2`, `2!=3`, `MathPi` |
| Decimals | Decimal point numeric values can be operated on | `2.5*3.2` |
| Error handling | AetherScript classifies code into "legal" and "illegal" values. AetherScript will offer suggestions on how to fix misplaced characters. | |
| Function | The `Function` command is used to declare a function prefix, element, or character. | (Partially Developed) |
| Newlines | Newlines can be added with the `->` function. | (Under Development) |
| Null values | A constant having no value. | |
| Output | The `Write` function is used to display text. | `Write("Hello World")` |
| Run | The `Run` function can be used to execute a `.aes` file. | `Run("FILENAME.aes")`|
| Strings | Strings can be declared by with double quotes (`"`). | (Under Development) |
| Variables | The `Variable` function is used to declare a value for further usage. | (Under Development) |

### Writing programs in AetherScript (in 3 steps)

1. Open your IDE and write your AetherScript prompt.
2. Save it as a `.aes` file.
3. Run the Aether Chamber, then use the `Run` function to execute the program.

### Example program

```aes
Write("Hello World")

~ find the circumference of a circle with a radius of using the formula "C = 2πr"
Write(2*MathPi*10)

~ binary operations
Write(2*6.42*24/12*2+100)
```

This program will output the following:

```aes
<AetherScript> Run("example.aes")
Hello World
62.83185307179586
151.35999999999999
0
```

---

## Updates and development
AetherScript will be regularly updated, and community assistance is appreciated. Issues and pull requests are welcomed!

---

<div align="center">

### © Realms - [MIT License](https://github.com/ProjectDragonRealms/AetherScript?tab=MIT-1-ov-file)

Special thanks to [David Callanan](https://david.callanan.ie/) for the theory.

</div>

---