RFF Programming Language - Learn programming with a simple language
Project description
rff Language
Простой и понятный язык программирования для начинающих.
🚀 Быстрый старт
Требования
- Python 3.7+
Установка через pip
pip install rff-lang
После установки можно запускать программы на rff:
rff программа.rff
Установка из исходников
git clone https://github.com/yourusername/rff_lang.git
cd rff_lang
pip install -e .
📝 Использование
Простой пример
Создайте файл hello.rff:
w "Hello, World!"
Запустите:
rff hello.rff
📚 Основные команды
w- выводr- вводif- условиеloop- циклwhile- цикл покаf- определение функции
🔧 Разработка
Клонируйте репозиторий и установите в режиме разработки:
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
На русском языке (Кириллица)
имя = Сергей
возраст = 25
w Привет .имя
w Возраст .возраст
Смотрите папку examples/:
test.rff- простой пример с цикламиadd.rff- функции и арифметикаcomplex.rff- комплексная программаcyrillic_test.rff- пример на русском языке
📖 Документация
- Спецификация языка: spec/language_spec.md
- Грамматика (BNF): grammar/grammar.bnf
- Архитектура интерпретатора: interpreter/architecture.md
🔧 VS Code Расширение
Быстрая установка
Windows:
cd vscode-extension
install.bat
macOS/Linux:
cd vscode-extension
./install.sh
Ручная установка
- Откройте VS Code
- Нажмите
Ctrl+Shift+X(Extensions) - Найдите "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
🌍 Поддержка кириллицы
Язык полностью поддерживает русский язык в идентификаторах переменных:
имя = Иван
возраст = 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 - свободно используйте и модифицируйте!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rff_lang-0.1.0.tar.gz.
File metadata
- Download URL: rff_lang-0.1.0.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5f88d907faface312e42cbcb4e9f62bd21d9117f6514744fba1557b0080e211
|
|
| MD5 |
ff2be0d2a980a63d9bcc5b8221ca9d9a
|
|
| BLAKE2b-256 |
c087ac1dc1bcb4b323afc6e0abbb2bb361ee2d9f65c63d75ce812c0821ea14f9
|
File details
Details for the file rff_lang-0.1.0-py3-none-any.whl.
File metadata
- Download URL: rff_lang-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f8e664d06e461dc45283a201d9320c215b0c1f68b58b5a2994e5b423a684ada
|
|
| MD5 |
0c4ff3a93bda7217a31638878be4f608
|
|
| BLAKE2b-256 |
916d135643152d211152f82883b5b33aca7beeda1f130df46520a8a6da4bfcda
|