Metadata-Version: 2.4
Name: rff-lang
Version: 0.1.0
Summary: RFF Programming Language - Learn programming with a simple language
Author: yourRoff
Author-email: yourRoff <cryshenka1311@gmail.com>
Keywords: programming,language,interpreter,cyrillic
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: license-file
Dynamic: requires-python

# rff Language

Простой и понятный язык программирования для начинающих.

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

### Требования
- Python 3.7+

### Установка через pip

```bash
pip install rff-lang
```

После установки можно запускать программы на rff:

```bash
rff программа.rff
```

### Установка из исходников

```bash
git clone https://github.com/yourusername/rff_lang.git
cd rff_lang
pip install -e .
```

## 📝 Использование

### Простой пример

Создайте файл `hello.rff`:

```
w "Hello, World!"
```

Запустите:

```bash
rff hello.rff
```

## 📚 Основные команды

- `w` - вывод
- `r` - ввод
- `if` - условие
- `loop` - цикл
- `while` - цикл пока
- `f` - определение функции

## 🔧 Разработка

Клонируйте репозиторий и установите в режиме разработки:

```bash
git clone https://github.com/yourusername/rff_lang.git
cd rff_lang
pip install -e ".[dev]"
```

## 📄 Лицензия

MIT License

rff.bat <file.rff>
```

### Способ 3: Через VS Code tasks
1. Откройте .rff файл в VS Code
2. Нажмите **Ctrl+Shift+B** для запуска задачи
3. Или Ctrl+Shift+P → "Tasks: Run Task" → "Run rff"

### Способ 4: Через exe (Windows)
```
rff.exe <file.rff>
```

### Способ 5: Через VS Code расширение
1. Установите расширение (см. раздел ниже)
2. Откройте .rff файл
3. Нажмите **Ctrl+Shift+R** или используйте кнопку "Run rff"
4. Результат появится в Output панели VS Code

## 📚 Примеры

### На английском языке
```rff
name = Alex
w Hello .name
```

### На русском языке (Кириллица)
```rff
имя = Сергей
возраст = 25

w Привет .имя
w Возраст .возраст
```

Смотрите папку `examples/`:
- `test.rff` - простой пример с циклами
- `add.rff` - функции и арифметика
- `complex.rff` - комплексная программа
- `cyrillic_test.rff` - пример на русском языке

## 📖 Документация

- **Спецификация языка**: [spec/language_spec.md](spec/language_spec.md)
- **Грамматика (BNF)**: [grammar/grammar.bnf](grammar/grammar.bnf)
- **Архитектура интерпретатора**: [interpreter/architecture.md](interpreter/architecture.md)

## 🔧 VS Code Расширение

### Быстрая установка

**Windows:**
```
cd vscode-extension
install.bat
```

**macOS/Linux:**
```
cd vscode-extension
./install.sh
```

### Ручная установка
1. Откройте VS Code
2. Нажмите `Ctrl+Shift+X` (Extensions)
3. Найдите "rff" и нажмите Install

### Особенности расширения
- ✅ Подсвечивание синтаксиса (с поддержкой кириллицы)
- ✅ Кнопка "Run rff" в интерфейсе
- ✅ Сочетание клавиш: `Ctrl+Shift+R`
- ✅ Автодополнение кода (snippets)
- ✅ Вывод результатов в Output панель

## 🔧 Синтаксис

### Вывод
```
w hello
w .name
```

### Переменные
```
name = Alex
age = 25
name = text John
```

### Функции
```
f add(a b)
result = .a + .b
.result
end

x = add(5 3)
w .x
```

### Циклы
```
loop 3
w hello
end

loop i from 1 to 5
w .i
end
```

### Условия
```
if .x == 10
w x is ten
end
```

## 🌍 Поддержка кириллицы

Язык полностью поддерживает русский язык в идентификаторах переменных:

```rff
имя = Иван
возраст = 30
город = Москва

w Добро пожаловать .имя
w Вы из города .город
```

✅ Все компоненты поддерживают UTF-8:
- Идентификаторы переменных (русские буквы)
- Строки и текст (русский текст)
- Вывод (на консоль и VS Code)
- Подсвечивание синтаксиса в VS Code

## 🎯 Философия языка

- **Минимум синтаксиса** - легко читать и писать
- **Короткие команды** - w, r, f, loop, if
- **Дружелюбен к новичкам** - без сложных конструкций
- **Лояльность** - ошибки не прерывают выполнение

## 📦 Распространение

### Для разработчиков
Клонируйте репозиторий и модифицируйте интерпретатор по своим нуждам.

### Для пользователей
- **Вариант 1**: Установите Python и используйте `python interpreter/main.py file.rff`
- **Вариант 2**: Используйте предскомпилированный `rff.exe` (Windows)
- **Вариант 3**: Используйте `rff.bat` (Windows)

## 🛠️ Разработка

### Структура проекта
```
rff_lang/
├── interpreter/       # Исходный код интерпретатора
│   ├── main.py       # Точка входа
│   ├── lexer.py      # Лексер (токенизация)
│   ├── parser.py     # Парсер (построение AST)
│   ├── interpreter.py # Интерпретатор (выполнение)
│   └── ast_nodes.py  # Определение узлов AST
├── examples/         # Примеры программ
├── spec/            # Спецификация языка
├── grammar/         # Грамматика в BNF
├── .vscode/         # Конфигурация VS Code
├── README.md        # Этот файл
└── rff.bat          # Батник для Windows
```

## 📄 Лицензия

MIT License - свободно используйте и модифицируйте!
