An open API service indexing awesome lists of open source software.

https://github.com/dan13681989/farsiscript

یک زبان برنامه‌نویسی فارسی با مفسر و کامپایلر به C – FarsiScript
https://github.com/dan13681989/farsiscript

c compiler farsi interpreter persian persian-language programming-language scripting-language

Last synced: 13 days ago
JSON representation

یک زبان برنامه‌نویسی فارسی با مفسر و کامپایلر به C – FarsiScript

Awesome Lists containing this project

README

          

# زبان برنامه‌نویسی فارسی – FarsiScript

![License](https://img.shields.io/badge/license-MIT-blue)
![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey)
![Version](https://img.shields.io/badge/version-1.0.0-brightgreen)
![Build
Status](https://github.com/Dan13681989/farsiscript/actions/workflows/test.yml/badge.svg)

یک زبان برنامه‌نویسی کاملاً فارسی با **مفسر (interpreter)** و **کامپایلر به زبان C**.

## 🚀 شروع سریع

```bash
./fs run برنامه.fs # اجرای مستقیم
./fs compile برنامه.fs # کامپایل به C و اجرا
```

## ✨ قابلیت‌ها

| قابلیت | مثال |
|--------|------|
| متغیرها و عملگرها | `x = 5 + 2 * 3` |
| رشته‌ها و الحاق | `"سلام " + "حسام"` |
| شرط چندگانه | `اگر (نمره > 90) { ... } درغیراینصورت اگر ...` |
| حلقه‌ها | `تاوقتی`, `برای عددی`, `برای روی آرایه/رشته/فرهنگ` |
| توابع | `تابع جمع(a, b) { برگردان a + b; }` |
| آرایه‌ها | `[1, 2, 3]` و `arr[0] = 10` |
| فرهنگ‌ها (دیکشنری) | `{"اسم": "حسام", "سن": 30}` |
| ورودی/خروجی | `خواندن`, `چاپ` |
| کار با فایل | `خواندن_فایل`, `نوشتن_فایل` |
| مدیریت خطا | `سعی کن { ... } بگیر (خطا) { ... }` |
| کلاس‌ها و اشیاء | `کلاس شخص { ... }` |
| کتابخانه استاندارد | `زمان_اکنون()`, `عدد_تصادفی()`, `اجرا()`, `تاریخ_امروز()` |
| اعداد فارسی | `۳.۱۴` و ورودی فارسی |
| نظرات | `// توضیح` |
| کامپایل به C | `./fs compile file.fs` |

## 📦 نصب

```bash
pip install -e .
# یا
python setup.py install
```

پس از نصب، دستور `farsiscript` در دسترس خواهد بود.

## 📖 مثال‌های بیشتر

### کلاس‌ها و اشیاء
```farsi
کلاس شخص {
تابع جدید(نام, سن) {
این.نام = نام;
این.سن = سن;
}
تابع معرفی() {
چاپ "اسم: " + این.نام + " سن: " + این.سن;
}
}
حسام = شخص("حسام", 30);
حسام.معرفی();
```

### مدیریت خطا
```farsi
سعی کن {
خطا_بده("مشکل در برنامه");
} بگیر (خطا) {
چاپ "خطا رخ داد: " + خطا;
}
```

### وارد کردن ماژول
```farsi
استفاده از "کتابخانه.fs";
سلام("حسام");
```

## 📁 ساختار پروژه

- `tokenizer.py` – تحلیل واژگان
- `parser.py` – تحلیل نحوی
- `evaluator.py` – اجرا (مفسر)
- `compiler.py` – تولید کد C و کامپایل
- `main.py` – نقطهٔ شروع مفسر
- `fs` – ابزار خط فرمان یکپارچه

## 🤝 مشارکت

ایده‌ها و پیشنهادها خوش‌آمدند!
برای توسعه، فایل‌های `.py` را ویرایش کنید و با `./fs run` تست بگیرید.

## 📝 مجوز

پروژه به صورت آزاد و رایگان ارائه می‌شود.
هرگونه استفاده، تغییر و انتشار با ذکر منبع مجاز است.

---

ساخته‌شده با عشق به فارسی 💚