Metadata-Version: 2.4
Name: mint-lang
Version: 0.2.1
Summary: Конструктор кастомных языков программирования на Python (с поддержкой if/while, чисел, списков, словарей) + автосборка в exe
Author: Stray_2024
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: build
Requires-Dist: pyinstaller; extra == "build"

# Mint Lang - конструктор кастомных языков программирования

Библиотека для создания СВОИХ языков программирования на Python. Ты описываешь
свои команды, а библиотека даёт тебе бесплатно: `if/else`, `while`, переменные
с реальными типами (числа, строки, списки, словари), обработку ошибок с
подсказками, и автосборку готового языка в `.exe` + инсталлятор.

## Установка

```bash
pip install mint-lang
```

## Быстрый старт

```python
from mintlang.builder import LanguageBuilder

lang = LanguageBuilder("MyLang")

@lang.command("say")
def cmd_say(args):
    print(" ".join(str(a) for a in args))

@lang.command("upload")
def cmd_upload(args):
    print(f"Загружаю библиотеку: {args[0]}")

lang.main()   # запуск как обычный скрипт: python my_lang.py script.mylang
```

## Что умеет твой язык из коробки

Скрипт на твоём языке (`script.mylang`):

```
set x 5
set y 10

if $x < $y
    say x меньше y
else
    say x больше или равно y
end

set i 0
while $i < 5
    say $i
    set i $i + 1
end

set nums [1, 2, 3, 4, 5]
upload discord.py
```

Поддерживаются: числа, строки, списки `[1, 2, 3]`, словари `{a: 1, b: 2}`,
операторы `+ - * / % == != < > <= >= && ||`, подстановка переменных через `$имя`.

## Сборка в exe + инсталлятор

Когда твой язык готов - в конце своего Python-файла вызови:

```python
lang.autobuild()
```

Это соберёт exe через PyInstaller и инсталлятор через Inno Setup
(https://jrsoftware.org/isdl.php должен быть установлен на Windows-машине).

## Базовый язык Mint (если нужен готовый ЯП, а не конструктор)

Библиотека также включает готовый простой язык Mint:

```python
from mintlang import run_source

run_source('''
x = 5
print(x + 1)
''')
```

Или через CLI: `mint script.mint`
