Metadata-Version: 2.4
Name: eelang
Version: 0.1.0
Summary: eelang — надмножество Python 3.15: паттерн-матчинг в присваиваниях, match def, пайплайны
License-Expression: MIT
Classifier: Programming Language :: Python :: 3.15
Classifier: Operating System :: POSIX :: Linux
Requires-Python: <3.16,>=3.15
Description-Content-Type: text/markdown

# eelang

Надмножество **Python 3.15** (linux x86_64): паттерн-матчинг в присваиваниях и
`assert`, `match def`, пайплайны. Распространяется обычным пакетом, код пишется в
`.eel`-файлах.

## Установка

```sh
pip install eelang
```

Требуется CPython 3.15 (linux x86_64).

## Запуск

```sh
python -m eelang script.eel
```

## Фичи

- **assert-паттерны** — `assert P = e` связывает и проверяет форму; провал → `MatchError`.

  ```python
  assert Point(x, y) = get_point()
  ```

- **match def** — паттерн-матчинг аргументов функции:

  ```python
  match def area(p) -> float:
      case Point(x, y) = p:
          x * y
      else:
          0
  ```

- **Пайплайны** — `..f(...)` (значение — последним аргументом), `..match:`, `..assert:`:

  ```python
  val =
      [1, 2, 3]
      ..map(lambda x: x * x)
  ```

`MatchError` импортируется явно:

```python
from eelang import MatchError
```

## Как устроен

Парсер — C-расширение (`eelang._parser`), собранное из PEG-парсера CPython 3.15 с
eelang-грамматикой. Синтаксис десахарится в стандартные узлы AST; `MatchError` —
обычный Python-класс (`ValueError`) в пакете.
