Metadata-Version: 2.4
Name: therl
Version: 0.1.2
Summary: A human readable programming language
Author-email: CyzmiX <itzmedigamingx@gmail.com>
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.13
Description-Content-Type: text/markdown

# Therl

> **T**ruly **H**uman **R**eadaby **L**anguage  
> _(Yes, the acronym is a little cursed. I know.)_

Therl is a human-readable, instruction-based programming language written entirely in pure Python. Its goal is to make code read almost like plain English while remaining predictable and easy to parse.

```therl
set greeting to "hello"

func greet <name>

    say greeting + " " + name + "!"

end

func main

    run greet with <name> as "Jeff"

    set numbers to [1..10]

    say numbers

end

run main
```

Output:

```text
hello Jeff!
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
```

---

## Features

- 📖 Human-readable syntax
- 📝 Instruction-based language design
- 🐍 Written entirely in pure Python
- 🔄 Strictly dynamically typed variables
- 📦 Built-in lists
- 🔢 Integer, float, string and boolean types
- 🧩 Functions with named parameters
- 📢 Simple `say` statement for output
- ✏️ Mutable list elements
- 🔀 Conditional statements with `if`, `else if`, and `else`
- 🚀 Easy to extend

---

## Example

```therl
set greeting to "hello"

func greet <name>

    say greeting + " " + name + "!"

end

func main

    say "Welcome!"

    run greet with <name> as "Jeff"

    set ids to [1..10]

    say ids

    set ids at 0 to 1000

    say ids

    add 10 to ids

    say ids

end

run main
```

Output:

```text
Welcome!
hello Jeff!
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1000, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1000, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10]
```

---

## Conditional Statements

Therl supports `if`  and `else` for conditional logic:

```therl
set name to "bob"

if name == "bob"
    say "Go away bob!"
else

    say "Hello " + name

end
```

Output:

```text
Go away bob!
```

---

## Installation

Therl requires **Python 3.10** or newer.

Install the latest release from PyPI:

```bash
python -m pip install therl
```

Run a Therl program:

```bash
therl hello.therl
```

or

```bash
python -m therl hello.therl
```

---

# Project Status

⚠️ Therl is currently in active development.

Expect missing features, breaking changes, and plenty of experimentation as the language evolves.

---

# Roadmap

- [x] Conditional statements
- [x] Arithmetic expressions
- [ ] Loops
- [ ] Dictionaries / Maps
- [ ] Modules
- [ ] Classes
- [x] Error reporting with line numbers
- [ ] Standard library

---

# Why?

Because making programming languages is fun.

And because writing

```therl
set score to 100

add 10 to score

say score
```

just feels oddly satisfying.

---
