Metadata-Version: 2.4
Name: tirotir
Version: 2.0.2
Summary: زبان برنامه‌نویسی فارسی تیروتیر
Author: Tirotir Team
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: LICENSE.md
License-File: AUTHORS.md
Dynamic: license-file

<p align="center">
  <img src="assets/logo/tirotir-logo.png" alt="نشان زبان برنامه‌نویسی تیروتیر" width="180">
</p>

<h1 align="center">تیروتیر | Tirotir 2</h1>

<p dir="rtl" align="center"><strong>یک زبان برنامه‌نویسی متنی فارسی و مفسری</strong><br>برای یادگیری مفاهیم محاسباتی، آموزش برنامه‌نویسی و ساخت برنامه‌های واقعی</p>

<p align="center">
  <a href="https://tirotir.ir/">وب‌سایت</a> •
  <a href="https://tirotir.com/">Tirotir.com</a> •
  <a href="https://github.com/worker2025/tirotir">مخزن GitHub</a> •
  <a href="https://doi.org/10.5281/zenodo.22874866">DOI</a>
</p>

---

<h2 dir="rtl" align="right">دربارهٔ تیروتیر</h2>

<p dir="rtl" align="right"><strong>تیروتیر</strong> یک زبان برنامه‌نویسی متنی فارسی و مفسری است که برای <strong>یادگیری برنامه‌نویسی، آموزش مفاهیم محاسباتی و ساخت برنامه‌های واقعی</strong> طراحی شده است.</p>

<p dir="rtl" align="right">می‌توان با یک دستور ساده شروع کرد:</p>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>چاپ -سلام دنیا-</code></pre>

<p dir="rtl" align="right">و سپس به مفاهیمی مانند:</p>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>متغیر</li>

<li>شرط</li>

<li>حلقه</li>

<li>تابع</li>

<li>فهرست</li>

<li>فرهنگ</li>

<li>ورودی و خروجی</li>

<li>پروژه‌های چندفایلی</li>

<li>Module System</li>
</ul>

<p dir="rtl" align="right">رسید.</p>

<p dir="rtl" align="right">تیروتیر همچنین ابزارها و قابلیت‌های پیرامونی برای <strong>Graphics، Audio و GUI</strong> ارائه می‌کند.</p>

<p dir="rtl" align="right">🌐 <a href="https://tirotir.ir/">tirotir.ir</a> 🌐 <a href="https://tirotir.com/">tirotir.com</a> 💻 <a href="https://github.com/worker2025/tirotir">GitHub</a></p>

---

<h2 dir="rtl" align="right">DOI و استناد</h2>

<p dir="rtl" align="right"><strong>DOI:</strong></p>
<p dir="rtl" align="right"><a href="https://doi.org/10.5281/zenodo.22874866">https://doi.org/10.5281/zenodo.22874866</a></p>

<p dir="rtl" align="right">اگر از تیروتیر در یک مقاله، پژوهش، پروژهٔ دانشگاهی یا آموزشی استفاده می‌کنید، لطفاً به پروژه استناد کنید:</p>

> Alipour, Daryoush. *Tirotir — Persian Programming Language*.
<p dir="rtl" align="right"><a href="https://doi.org/10.5281/zenodo.22874866">https://doi.org/10.5281/zenodo.22874866</a></p>

---

<h2 dir="rtl" align="right">🤖 مشاور هوشمند زبان برنامه‌نویسی — Tirotir AI</h2>

<p dir="rtl" align="right"><strong>به Tirotir AI خوش آمدید</strong></p>

<p dir="rtl" align="right">مشاور فارسی‌زبان شما برای یادگیری و ساخت با زبان برنامه‌نویسی Tirotir؛ از کدهای <code dir="ltr">.t</code> تا GUI، Graphics، Audio، VS Code و EXE Builder.</p>

<p dir="rtl" align="right">🌐 <strong>دسترسی:</strong> <a href="https://ai.tirotir.com/">https://ai.tirotir.com/</a></p>

---

<h1 dir="rtl" align="right">وضعیت فعلی</h1>

<h2 dir="rtl" align="right">Tirotir 2.0.2 — رلیز پایدار نسخهٔ ۲</h2>

<p dir="rtl" align="right">برای وضعیت، قرارداد نسخه‌ها و شواهد اعتبارسنجی، <a href="docs/tirotir-2-stable-release-fa.md">گزارش رسمی رلیز پایدار Tirotir 2</a> را ببینید.</p>

<p dir="rtl" align="right">نسخهٔ <strong>2.0.2</strong> رلیز پایدار فعلی بستهٔ Python تیروتیر ۲ است و از GitHub Release قابل دریافت و نصب است. افزونهٔ VS Code این رلیز در نسخهٔ <strong>2.0.6</strong> ارائه می‌شود. full suite فعلی checkout برابر <strong>۲۹۱ تست موفق</strong> است.</p>

<p dir="rtl" align="right">ویژگی‌های اصلی نسخهٔ ۲:</p>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>زبان برنامه‌نویسی مفسری فارسی</li>

<li>پسوند رسمی فایل: <code dir="ltr">.t</code></li>

<li>پشتیبانی از شناسه‌های فارسی و Unicode</li>

<li>Lexer</li>

<li>Parser</li>

<li>AST</li>

<li>Semantic Analyzer</li>

<li>Diagnostics ساختاریافته</li>

<li>پیام‌های خطای فارسی</li>

<li>CLI</li>

<li>REPL</li>

<li>Project System</li>

<li>Module System چندفایلی</li>

<li>Graphics با خروجی SVG</li>

<li>Audio با تولید WAV</li>

<li>GUI مبتنی بر Tkinter</li>

<li>افزونهٔ VS Code</li>

<li>Builder برای ساخت EXE در Windows</li>

<li>Runtime با قابلیت‌های کنترل‌شده</li>

<li><strong>۲۹۱ تست موفق در full suite فعلی نسخهٔ ۲</strong>؛ آمار تاریخی baseline نسخهٔ ۱٫۱٫۰ برابر <strong>۲۴۴ تست موفق</strong> بوده است.</li>
</ul>

<p dir="rtl" align="right">پسوند قدیمی نسخهٔ ۱:</p>

```
.tirotir
```

<p dir="rtl" align="right">نیز برای سازگاری با پروژه‌های قدیمی حفظ شده است.</p>

<blockquote dir="rtl" align="right"><p><strong>یادداشت تاریخی:</strong> نسخهٔ ۱٫۱٫۰ یک baseline قدیمی پروژه است و نباید به‌عنوان وضعیت فعلی یا آخرین رلیز تفسیر شود. آمار ۲۴۴ تست فقط به همان baseline تاریخی مربوط است.</p></blockquote>

---

<h2 dir="rtl" align="right">نصب رسمی Tirotir 2.0</h2>

<p dir="rtl" align="right">نسخهٔ پایدار فعلی <code dir="ltr">2.0.2</code> است و بستهٔ رسمی آن در GitHub Release قرار دارد. روش نصب پیشنهادی از wheel:</p>

```bash
python -m pip install /path/to/tirotir-2.0.2-py3-none-any.whl
```

<p dir="rtl" align="right">برای نصب آفلاین یا توسعه، wheel یا source archive رسمی GitHub Release نیز قابل استفاده است:</p>

```powershell
py -3.11 -m venv .venv
.venv\Scripts\Activate.ps1
py -3.11 -m pip install .\tirotir-2.0.2-py3-none-any.whl
tirotir version
```

<p dir="rtl" align="right">در دستور بالا برای اطمینان از interpreter درست در Windows از <code dir="ltr">py -3.11 -m pip show tirotir</code> و <code dir="ltr">Get-Command tirotir -All</code> استفاده کنید. راهنمای مثال‌های قابل‌اجرا در <a href="examples2/README-fa.md">examples2/README-fa.md</a> و راهنمای جامع نسخهٔ ۲ قرار دارد.</p>

<h2 dir="rtl" align="right">وضعیت توسعهٔ Tirotir 2.0</h2>

<p dir="rtl" align="right">نسخهٔ رسمی <strong>Tirotir 2</strong> بر پایهٔ شاخهٔ توسعهٔ اعتبارسنجی‌شده منتشر شده است و patch releaseهای <code dir="ltr">2.0.1</code> و <code dir="ltr">2.0.2</code> اصلاحات بسته‌بندی و examples را اضافه می‌کند. full suite فعلی checkout برابر <strong>۲۹۱ تست موفق</strong> است؛ این عدد شامل regressionهای version/EOF، GUI، security boundary، ورودی تعاملی، VSIX و اسنیپت‌هاست. baseline تاریخی نسخهٔ ۱٫۱٫۰ جداگانه <strong>۲۴۴ تست موفق</strong> داشته است؛ این آمارها با هم جمع یا جایگزین نمی‌شوند.</p>

<h3 dir="rtl" align="right">قابلیت‌های پیاده‌سازی‌شده و آزموده‌شده در checkpoint فعلی</h3>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>رفتار حسابی فشردهٔ جدید: <code dir="ltr">چاپ ۵-۳+۲-۱</code> خروجی <code dir="ltr">3</code> می‌دهد؛</li>
<li>حفظ literalهای فارسی و نیم‌فاصلهٔ U+200C در متن؛</li>
<li>حفظ escapeهای مستندشده، import ماژول و بازگشت مقدار از تابع؛</li>
<li>اولویت تابع کاربر بر primitive گرافیکی هم‌نام؛</li>
<li>enforcement قابلیت‌های <code dir="ltr">graphics</code>، <code dir="ltr">audio</code> و <code dir="ltr">gui</code> در مسیرهای مستقیم، CLI، project و builder launcher که آزموده شده‌اند؛</li>
<li>پذیرش U+200C در شناسه‌ها با حفظ قرارداد normalization به underscore؛ شش مثال رسمی مرتبط اکنون parse و اجرا می‌شوند؛</li>
<li>هستهٔ lexer، parser، interpreter، CLI و module system موجود در baseline؛</li>
<li>تولید SVG، تولید WAV و GUI مبتنی بر Tkinter، با محدودیت‌های محیطی و release که در اسناد آمده‌اند.</li>
</ul>

<h3 dir="rtl" align="right">قابلیت‌های ناتمام یا برنامه‌ریزی‌شده</h3>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>enforcement مستقل <code dir="ltr">project-files</code> و <code dir="ltr">network</code> و بررسی همهٔ launcherهای خارجی هنوز انجام نشده است؛ کنترل graphics/audio/gui به‌تنهایی sandbox سیستم‌عامل نیست؛</li>
<li>اصلاح شناسه‌های دارای نیم‌فاصله در release 2.0.0 ثبت و آزموده شده است؛</li>
<li>metadata candidate، حداقل Python <code dir="ltr">>=3.11</code> و مدیریت EOF CLI هماهنگ و آزموده شده‌اند؛</li>
<li>GUI با Tkinter و Xvfb به‌صورت واقعی smoke شده است، اما اجرای desktop فیزیکی و Windows هنوز تأیید نشده‌اند؛</li>
<li>traversal و symlink escape در ModuleSandbox آزموده شده و برای <code dir="ltr">network</code> و <code dir="ltr">project-files</code> نبود backend زبانی عمداً صریح ثبت شده است؛</li>
<li>CI لینوکس برای Python 3.11 و 3.12 در <code dir="ltr">.github/workflows/ci.yml</code> اضافه شده است؛</li>
<li>namespace کامل ماژول، event syntax، LSP، debugger، object model، تست native ویندوز، GUI روی desktop واقعی و پخش صوت روی دستگاه واقعی هنوز نهایی یا آزموده نشده‌اند؛</li>
<li>بستهٔ Python نسخهٔ <code dir="ltr">2.0.2</code> در GitHub Release و افزونهٔ VS Code مستقل نسخهٔ <code dir="ltr">2.0.6</code> در VSIX آماده شده‌اند؛ این release به‌عنوان framework کامل GUI/بازی یا release cross-platform معرفی نمی‌شود.</li>
</ul>

<p dir="rtl" align="right">رفتار arithmetic فشرده یک تغییر سازگاری‌پذیر مهم است. رفتار تاریخی baseline چنین بود:</p>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>baseline: چاپ ۵-۳+۲-۱ → 5
Tirotir 2.0.0/2.0.1/2.0.2: چاپ ۵-۳+۲-۱ → 3</code></pre>

<p dir="rtl" align="right">برای قرارداد KI-1 به <a href="docs/tirotir-2-ki1-acceptance-plan-fa.md">برنامهٔ پذیرش KI-1</a>، برای مهاجرت به <a href="docs/tirotir-2-migration-guide-fa.md">راهنمای مهاجرت ۲٫۰</a>، برای شروع آزمایش به <a href="docs/tirotir-2-experimental-testing-fa.md">راهنمای فارسی آزمایش</a> و <a href="docs/tirotir-2-experimental-testing-en.md">راهنمای انگلیسی آزمایش</a>، برای معماری به <a href="docs/tirotir-2-architecture-roadmap-fa.md">نقشهٔ معماری ۲٫۰</a>، برای ردیابی مسائل به <a href="docs/tirotir-2-known-issues-traceability.md">سند traceability</a>، و برای تغییرات ثبت‌شده به <a href="CHANGELOG.md">CHANGELOG</a> مراجعه کنید.</p>

---

<h2 dir="rtl" align="right">📚 مستندات HTML</h2>

<p dir="rtl" align="right">در ریشهٔ مخزن دو سند مستقل HTML قرار دارد که برای مطالعه در مرورگر مناسب‌اند:</p>

| سند | توضیح |
| --- | --- |
| [`report.html`](report.html) | گزارش جامع پروژهٔ Tirotir 1.1.0 |
| [`faq.html`](faq.html) | پرسش‌های پرتکرار تیروتیر (FAQ) |

---

<h3 dir="rtl" align="right">📊 گزارش جامع پروژه — [`report.html`](report.html)</h3>

<p dir="rtl" align="right">گزارش فنی و اجرایی کامل <strong>Tirotir 1.1.0</strong> شامل:</p>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>خلاصهٔ اجرایی و هویت محصول</li>
<li>معماری، هستهٔ زبان، تحلیل معنایی و قراردادها</li>
<li>CLI، REPL، AST، پروژه و ماژول</li>
<li>Runtime، امنیت و Capabilityها</li>
<li>Graphics، Audio و GUI</li>
<li>VS Code، Builder و EXE</li>
<li>نصب، انتشار، مثال‌ها، تست‌ها و محدودیت‌ها</li>
<li>جدول فرمان‌های CLI و نقشهٔ فایل‌های مهم</li>
</ul>

<p dir="rtl" align="right">برای مشاهده، فایل <a href="report.html"><code dir="ltr">report.html</code></a> را دانلود یا در مرورگر باز کنید.</p>

---

<h3 dir="rtl" align="right">❓ پرسش‌های پرتکرار — [`faq.html`](faq.html)</h3>

<p dir="rtl" align="right">FAQ فارسی <strong>Tirotir 1.1.0</strong> شامل ۶۱ پرسش در ۹ بخش:</p>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>شروع سریع</li>
<li>آشنایی با تیروتیر</li>
<li>ساختار و نحو زبان</li>
<li>معماری و اصطلاحات فنی</li>
<li>قابلیت‌ها، نصب و امنیت</li>
<li>محدودیت‌ها و مسیر آینده</li>
<li>پرسش‌های مصاحبهٔ فنی</li>
<li>واژه‌نامهٔ کوتاه</li>
<li>منابع و مشارکت</li>
</ul>

<p dir="rtl" align="right">این صفحه دارای جستجوی زنده، کپی کد و طراحی واکنش‌گرا است.</p>

<p dir="rtl" align="right">برای مشاهده، فایل <a href="faq.html"><code dir="ltr">faq.html</code></a> را دانلود یا در مرورگر باز کنید.</p>

<h1 dir="rtl" align="right">نصب</h1>

<h2 dir="rtl" align="right">Windows — نصب نسخهٔ ۲ برای کاربران عادی</h2>

<p dir="rtl" align="right">برای نسخهٔ ۲، نصب رسمی CLI در Windows از PyPI انجام می‌شود:</p>

```powershell
py -3.11 -m pip install .\tirotir-2.0.2-py3-none-any.whl
```

<p dir="rtl" align="right">پس از نصب، یک <strong>PowerShell</strong> یا <strong>Command Prompt</strong> جدید باز کنید:</p>

```
tirotir version
```

<p dir="rtl" align="right">خروجی:</p>

```
Tirotir 2.0.1
```

<p dir="rtl" align="right">برای بررسی interpreter و محل نصب:</p>

```
py -3.11 -m pip show tirotir
```

---

<h2 dir="rtl" align="right">نصب برای توسعه‌دهندگان</h2>

<p dir="rtl" align="right">Python 3.11 یا جدیدتر مورد نیاز است.</p>

```bash
python -m pip install .
```

<p dir="rtl" align="right">بررسی نصب:</p>

```bash
tirotir version
```

<p dir="rtl" align="right">برای نصب در حالت توسعه:</p>

```bash
python -m pip install -e .
```

<p dir="rtl" align="right">اجرای تست‌ها:</p>

```bash
python -m pytest -q
```

---

<h1 dir="rtl" align="right">اولین برنامه</h1>

<p dir="rtl" align="right">یک فایل با نام <code dir="ltr">hello.t</code> ایجاد کنید:</p>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>چاپ -سلام دنیا-</code></pre>

<p dir="rtl" align="right">اجرا:</p>

```bash
tirotir run hello.t
```

<p dir="rtl" align="right">خروجی:</p>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>سلام دنیا</code></pre>

<p dir="rtl" align="right">برای بررسی برنامه بدون اجرای عملیات اصلی:</p>

```bash
tirotir check hello.t
```

---

<h1 dir="rtl" align="right">مبانی زبان</h1>

<h2 dir="rtl" align="right">متغیر</h2>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>بگذار سن برابر ۲۰
بگذار نام برابر -سارا-

چاپ نام
چاپ سن</code></pre>

<h2 dir="rtl" align="right">شرط</h2>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>بگذار سن برابر ۲۰

اگر سن بزرگتر یا مساوی ۱۸
    چاپ -بزرگسال-
وگرنه
    چاپ -نابالغ-</code></pre>

<h2 dir="rtl" align="right">حلقه</h2>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>تکرار ۴ بار
    چاپ -سلام-</code></pre>

<h2 dir="rtl" align="right">تابع</h2>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>تابع مربع با عدد
    بازگردان عدد * عدد

چاپ مربع با ۵</code></pre>

<p dir="rtl" align="right">فهرست، فرهنگ، ورودی و خروجی نیز در هستهٔ زبان پشتیبانی می‌شوند.</p>

---

<h1 dir="rtl" align="right">پروژهٔ چندفایلی</h1>

<p dir="rtl" align="right">ساختار یک پروژهٔ نمونه:</p>

```
my-project/
├── tirotir.toml
├── main.t
└── lib/
    └── tools.t
```

<p dir="rtl" align="right">نمونهٔ <code dir="ltr">tirotir.toml</code>:</p>

```
[project]
name = "my-project"
entry = "main.t"
language = "2.0"

[capabilities]
graphics = false
audio = false
gui = false
project-files = false
network = false
```

<p dir="rtl" align="right">وارد کردن یک ماژول:</p>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>وارد کن -lib/tools-</code></pre>

<p dir="rtl" align="right">اجرای پروژه از ریشهٔ پروژه:</p>

```bash
tirotir run
```

---

<h1 dir="rtl" align="right">قابلیت‌های پیرامونی</h1>

<p dir="rtl" align="right">قابلیت‌هایی مانند <strong>Graphics، Audio و GUI</strong> بخشی از زبان پایه نیستند؛ بلکه ابزارها و سرویس‌های پیرامونی اکوسیستم Tirotir هستند.</p>

---

<h2 dir="rtl" align="right">Graphics</h2>

<p dir="rtl" align="right">نمونه:</p>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>پنجره بازکن با ۸۰۰ و ۶۰۰
رنگ قلم برابر -آبی-
ضخامت قلم برابر ۳
مربع با ۱۲۰</code></pre>

<p dir="rtl" align="right">اجرا:</p>

```bash
tirotir graphics examples2/graphics/hello_shape.t --scene scene.svg
```

<p dir="rtl" align="right">Graphics در نسخهٔ ۲ از renderer مبتنی بر <strong>SVG</strong> استفاده می‌کند.</p>

<blockquote dir="rtl" align="right"><p>Animation کامل در این نسخه هنوز وجود ندارد.</p></blockquote>

---

<h2 dir="rtl" align="right">Audio</h2>

<p dir="rtl" align="right">نمونه:</p>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>نت بنواز با ۲۶۲ و ۰٫۰۲
نت بنواز با ۲۹۴ و ۰٫۰۲
نت بنواز با ۳۳۰ و ۰٫۰۲</code></pre>

<p dir="rtl" align="right">اجرا:</p>

```bash
tirotir audio examples2/audio/scale.t
```

<p dir="rtl" align="right">برای پخش Audio:</p>

```bash
tirotir audio examples2/audio/scale.t --play-audio
```

<p dir="rtl" align="right">تولید WAV مستقل از backend پخش سیستم‌عامل انجام می‌شود.</p>

---

<h2 dir="rtl" align="right">GUI</h2>

<p dir="rtl" align="right">نمونه:</p>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>پنجره بساز با -برنامهٔ من- و ۶۰۰ و ۴۰۰
برچسب بساز با -به تیروتیر خوش آمدید-
دکمه بساز با -اجرا-
ورودی بساز
نمایش پنجره</code></pre>

<p dir="rtl" align="right">اجرا:</p>

```bash
tirotir gui examples2/gui/hello_window.t
```

<p dir="rtl" align="right">GUI فعلی بر پایهٔ <strong>Tkinter</strong> است.</p>

<blockquote dir="rtl" align="right"><p>GUI در نسخهٔ ۲ هنوز یک framework کامل GUI محسوب نمی‌شود و به Tkinter و desktop/display نیاز دارد.</p></blockquote>

---

<h1 dir="rtl" align="right">VS Code</h1>

<p dir="rtl" align="right">افزونهٔ VS Code:</p>

```
tirotirlang-2.0.6.vsix
```

<p dir="rtl" align="right">برای نصب از داخل VS Code:</p>

```
Ctrl + Shift + P
```

<p dir="rtl" align="right">سپس:</p>

```
Extensions: Install from VSIX
```

<p dir="rtl" align="right">یا از خط فرمان:</p>

```bash
code --install-extension tirotirlang-2.0.6.vsix
```

<p dir="rtl" align="right">امکانات فعلی شامل:</p>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>شناسایی فایل‌های <code dir="ltr">.t</code></li>

<li>Syntax Highlighting</li>

<li>اجرای برنامه</li>

<li>Check</li>

<li>AST</li>

<li>خروجی RTL فارسی</li>

<li>Live Scene</li>
</ul>

<p dir="rtl" align="right">است.</p>

<p dir="rtl" align="right">موارد زیر هنوز در نسخهٔ ۲ کامل نیستند:</p>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>LSP کامل</li>

<li>Completion پیشرفته</li>

<li>Hover کامل</li>

<li>DAP</li>

<li>Debugger حرفه‌ای</li>
</ul>

<h2 dir="rtl" align="right">محدودیت‌ها و مسائل شناخته‌شده</h2>

<p dir="rtl" align="right">نسخهٔ <strong>Tirotir 2</strong> یک release واقعی و قابل استفاده است، اما همهٔ قراردادهای زبان، ابزارهای توسعه و بسته‌بندی آن هنوز نهایی نشده‌اند. برخی موارد، مانند ابهام متن با خط تیره و عملگر تفریق، تکمیل import و namespace، اجرای native Windows، LSP، debugger و اعتبارسنجی کامل بستهٔ Windows، همچنان محدودیت یا کار آینده هستند.</p>

<p dir="rtl" align="right">در حال حاضر نباید قابلیت‌های ناتمام یا ادعاهای آموزشی بدون مطالعهٔ کاربر به‌عنوان نتیجهٔ قطعی معرفی شوند. برای فهرست کامل موارد، شواهد، اثر هر مشکل و برنامهٔ اصلاح، به سند زیر مراجعه کنید:</p>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li><a href="known-issues-fa.md">فهرست کامل محدودیت‌ها و مسائل شناخته‌شده</a></li>
</ul>

<blockquote dir="rtl" align="right"><p>این بخش وضعیت نسخهٔ ۲ را شفاف گزارش می‌کند؛ موارد ذکرشده هنوز قابلیت کامل یا cross-platform تضمین‌شده محسوب نمی‌شوند و اصلاح آن‌ها باید همراه با تست regression و مستندات به‌روز انجام شود.</p></blockquote>

<h2 dir="rtl" align="right">قابلیت‌های افزوده‌شدهٔ افزونهٔ TirotirLang در نسخهٔ ۲</h2>

<p dir="rtl" align="right">افزونهٔ TirotirLang برای VS Code علاوه بر قابلیت‌های پایهٔ اجرای فایل، Check، AST، خروجی راست‌به‌چپ و Live Scene، امکانات تعاملی زیر را نیز فراهم می‌کند. این قابلیت‌ها در افزونه ارائه می‌شوند و هستهٔ زبان را از قراردادهای ثبت‌شدهٔ نسخهٔ ۲ خارج نمی‌کنند.</p>

<h3 dir="rtl" align="right">اجرای زندهٔ تعاملی و دریافت ورودی</h3>

<p dir="rtl" align="right">برنامه‌هایی که از <code dir="ltr">بخوان</code> استفاده می‌کنند، می‌توانند ورودی را مستقیماً از پنل اجرای زندهٔ فارسی دریافت کنند. پنل با <code dir="ltr">dir="rtl"</code> نمایش داده می‌شود و ورودی با دکمهٔ «ارسال ورودی» یا کلید Enter به برنامه فرستاده می‌شود.</p>

<p dir="rtl" align="right">نمونه:</p>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>بگذار ورودی_فارنهایت برابر بخوان

اگر (طول با ورودی_فارنهایت ) == ۰
    چاپ -خطا: ورودی خالی است؛ لطفاً یک عدد برای فارنهایت وارد کنید.-
وگرنه
    بگذار فارنهایت برابر به_عدد با ورودی_فارنهایت
    بگذار سانتیگراد برابر (فارنهایت - ۳۲) * ۵ / ۹
    چاپ -دمای واردشده بر حسب فارنهایت:-
    چاپ فارنهایت
    چاپ -دمای معادل بر حسب سانتیگراد:-
    چاپ سانتیگراد</code></pre>

<p dir="rtl" align="right">در پنل اجرای زنده، مقدار فارنهایت را در کادر ورودی بنویسید و روی «ارسال ورودی» یا کلید Enter بزنید. افزونه برای اجرای زندهٔ Windows از UTF-8 استفاده می‌کند تا ورودی فارسی به شکل خراب‌شده‌ای مانند <code dir="ltr">Û¸...</code> به interpreter نرسد.</p>

<h3 dir="rtl" align="right">ساخت فایل جدید `.t` از Status Bar</h3>

<p dir="rtl" align="right">وقتی یک فایل <code dir="ltr">.t</code> فعال باشد، دکمهٔ ساخت فایل جدید فقط در <strong>Status Bar پایین VS Code</strong> نمایش داده می‌شود. با کلیک روی آن، افزونه ابتدا فایل را واقعاً روی دیسک می‌سازد و سپس آن را در VS Code باز می‌کند.</p>

<p dir="rtl" align="right">شماره‌گذاری به‌صورت خودکار ادامه پیدا می‌کند:</p>

```
program-001.t
program-002.t
program-003.t
```

<p dir="rtl" align="right">فایل‌های قبلی حذف یا بازنویسی نمی‌شوند. این دکمه در WebView، منوی راست‌کلیک یا نوار عنوان قرار ندارد.</p>

<h3 dir="rtl" align="right">Snippetهای آموزشی</h3>

<p dir="rtl" align="right">افزونه ۱۴ snippet آموزشی دارد. در فایل <code dir="ltr">.t</code>، prefix را بنویسید و <code dir="ltr">Ctrl+Space</code> بزنید؛ سپس با <code dir="ltr">Tab</code> درج کنید. نسخهٔ ۲.۰.۵ علاوه بر contribution استاندارد، completion provider پشتیبان دارد:</p>

| نام | Prefix | کاربرد کوتاه |
| --- | --- | --- |
| سلام دنیا | `سلام` | چاپ پیام ساده |
| متغیر | `متغیر` | ساخت متغیر |
| چاپ | `چاپ` | چاپ متن |
| اگر وگرنه | `اگر` | ساخت شرط دوشاخه |
| تکرار | `تکرار` | تکرار تعداد مشخص |
| تاوقتی | `تاوقتی` | ساخت حلقهٔ شرطی |
| برای | `برای` | پیمایش فهرست |
| تابع | `تابع` | ساخت تابع و بازگردان مقدار |
| فهرست | `فهرست` | ساخت فهرست نمونه |
| فرهنگ | `فرهنگ` | ساخت فرهنگ نمونه |
| ورودی | `ورودی` | گرفتن و چاپ ورودی |
| پنجره | `پنجره` | ساخت پنجرهٔ GUI |
| نت صوتی | `نت` | ساخت دستور نت صوتی |
| گرافیک مربع | `مربع` | رسم مربع SVG |

<p dir="rtl" align="right">فرمان‌های قبلی افزونه در منوی راست‌کلیک فایل‌های <code dir="ltr">.t</code> حفظ شده‌اند. این قابلیت‌های افزونه، زبان پایه و قراردادهای Audio و GUI را تغییر نمی‌دهند؛ ساخت EXE همچنان به Windows واقعی نیاز دارد.</p>

---

<h1 dir="rtl" align="right">ساخت EXE</h1>

<p dir="rtl" align="right">Builder را اجرا کنید:</p>

```bash
tirotir builder
```

<p dir="rtl" align="right">ساخت Native Windows EXE باید روی <strong>Windows</strong> انجام شود.</p>

<p dir="rtl" align="right">سه فایل مهم را از هم متمایز کنید:</p>

<h3 dir="rtl" align="right">`tirotir.exe`</h3>

<p dir="rtl" align="right">اجرایی اصلی زبان و CLI.</p>

<h3 dir="rtl" align="right">`program.exe`</h3>

<p dir="rtl" align="right">خروجی برنامه‌ای که کاربر با Tirotir ساخته است.</p>

<h3 dir="rtl" align="right">`Tirotir-1.1.0-Setup.exe` — installer تاریخی</h3>

<p dir="rtl" align="right">نصب‌کنندهٔ خود Tirotir.</p>

---

<h1 dir="rtl" align="right">نمونه‌های آموزشی</h1>

<p dir="rtl" align="right">بستهٔ آموزشی و مجموعهٔ <code dir="ltr">examples2</code> شامل نمونه‌های <code dir="ltr">.t</code> برای موضوعات زیر است:</p>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>شروع کار</li>

<li>Hello World</li>

<li>متغیر</li>

<li>ورودی و خروجی</li>

<li>ریاضی</li>

<li>شرط</li>

<li>حلقه</li>

<li>فهرست</li>

<li>فرهنگ</li>

<li>تابع</li>

<li>GUI</li>

<li>Graphics</li>

<li>Audio</li>
</ul>

<p dir="rtl" align="right">بستهٔ آموزشی:</p>

<p dir="rtl" align="right">راهنمای جاری: <a href="examples2/README-fa.md"><code dir="ltr">examples2/README-fa.md</code></a></p>

<p dir="rtl" align="right">پس از استخراج، نمونه‌ها را اجرا کنید:</p>

```bash
tirotir run examples2/basics/hello_world.t
```

---

<h1 dir="rtl" align="right">امنیت و Capabilityها</h1>

<p dir="rtl" align="right">تیروتیر به‌صورت پیش‌فرض دسترسی آزاد به موارد زیر ندارد:</p>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>Python</li>

<li><code dir="ltr">eval</code></li>

<li><code dir="ltr">exec</code></li>

<li>shell</li>

<li>network</li>

<li>filesystem</li>
</ul>

<p dir="rtl" align="right">قابلیت‌های پیرامونی به‌صورت جداگانه تعریف می‌شوند:</p>

```
graphics
audio
gui
project-files
network
```

<p dir="rtl" align="right">حالت پیش‌فرض فقط قابلیت‌های هسته را فعال می‌کند.</p>

<blockquote dir="rtl" align="right"><p><strong>توجه:</strong> این طراحی به معنی sandbox امنیتی کامل در سطح سیستم‌عامل نیست.</p></blockquote>

---

<h1 dir="rtl" align="right">محدودیت‌های نسخهٔ ۲</h1>

<p dir="rtl" align="right">موارد زیر هنوز قابلیت کامل محسوب نمی‌شوند:</p>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>Class و Object Model</li>

<li>Inheritance</li>

<li>Exception Model عمومی</li>

<li>Type System کامل</li>

<li>Generator</li>

<li>Async/Await</li>

<li>Animation Runtime کامل</li>

<li>GUI Event System کامل</li>

<li>LSP کامل</li>

<li>DAP</li>

<li>Debugger کامل</li>
</ul>

<p dir="rtl" align="right">این موارد می‌توانند در نسخه‌های آینده توسعه پیدا کنند.</p>

---

<h1 dir="rtl" align="right">ساختار اصلی پروژه</h1>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>src/tirotir/
├── core.py          # Lexer، Parser، AST و Interpreter
├── semantic.py      # تحلیل معنایی و Diagnostics
├── contracts.py     # قراردادهای معماری
├── cli.py           # CLI
├── audio.py         # Audio و WAV
├── builder.py       # Builder و EXE
└── modules/         # Project و Module System

vscode-tirotirLang/  # افزونهٔ VS Code
examples/             # نمونه‌ها
tests/                # تست‌ها
docs/                 # مستندات فنی</code></pre>

---

<h1 dir="rtl" align="right">توسعه</h1>

<p dir="rtl" align="right">اجرای تست‌ها:</p>

```bash
python -m pytest -q
```

<p dir="rtl" align="right">اجرای برنامه:</p>

```bash
tirotir run hello.t
```

<p dir="rtl" align="right">بررسی برنامه:</p>

```bash
tirotir check hello.t
```

<p dir="rtl" align="right">نمایش AST:</p>

```bash
tirotir ast hello.t
```

<p dir="rtl" align="right">قالب‌بندی:</p>

```bash
tirotir format hello.t
```

<p dir="rtl" align="right">مستندات فنی در پوشهٔ زیر قرار دارند:</p>

```
docs/
```

---

<h2 dir="rtl" align="right">📘 جزوه‌های آموزشی تیروتیر</h2>

<p dir="rtl" align="right">جزوهٔ معرفی و آموزش سریع تیروتیر، با طراحی رنگی، کد، نکته و راهنما، در چند قالب آماده در پوشهٔ <a href="tirOtir-Booklets"><code dir="ltr">tirOtir-Booklets</code></a> قرار دارد:</p>

| فایل | قالب | کاربرد |
| --- | --- | --- |
| [`Tirotir-Booklet.pdf`](tirOtir-Booklets/Tirotir-Booklet.pdf) | PDF رنگی (۸ صفحه) | مطالعهٔ آنلاین و اشتراک‌گذاری |
| [`Tirotir-Booklet-Print.pdf`](tirOtir-Booklets/Tirotir-Booklet-Print.pdf) | PDF چاپی (۸ صفحه) | چاپ؛ پس‌زمینهٔ سفید و حاشیهٔ صحافی |
| [`Tirotir-Booklet.docx`](tirOtir-Booklets/Tirotir-Booklet.docx) | Word | ویرایش و شخصی‌سازی |
| [`Tirotir-Slides.pptx`](tirOtir-Booklets/Tirotir-Slides.pptx) | PowerPoint (۸ اسلاید) | تدریس و ارائه در کلاس |

<h3 dir="rtl" align="right">📖 محتوا</h3>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>معرفی تیروتیر، نصب، اولین برنامه و دستورهای CLI</li>
<li>مبانی زبان: متغیر، شرط، حلقه و تابع</li>
<li>مثال‌های کاربردی: فهرست، فرهنگ، تابع ترکیبی، ورودی و خروجی</li>
<li>پروژهٔ چندفایلی، Graphics، Audio، GUI و Capabilityها</li>
<li>معرفی <a href="https://ai.tirotir.com/">Tirotir AI</a> و قابلیت‌های آن</li>
<li>تمرین‌ها با پاسخ‌نامه</li>
<li>مخزن <a href="https://github.com/worker2025/tirotir-new-examples">tirotir-new-examples</a> و افزونهٔ VS Code</li>
<li>QR لینک‌های مهم</li>
</ul>

<blockquote dir="rtl" align="right"><p>💡 نمونه‌کدهای قدیمی جزوه با baseline نسخهٔ ۱ آزمایش شده‌اند؛ برای نمونه‌های نسخهٔ ۲ به <code dir="ltr">examples2/README-fa.md</code> مراجعه کنید. برای ظاهر دقیق‌تر، فایل Word را در Microsoft Word باز کنید.</p></blockquote>

---

<h1 dir="rtl" align="right">Tirotir Learning Lab</h1>

<h2 dir="rtl" align="right">🎓 آزمایشگاه یادگیری تعاملی تیروتیر</h2>

<p dir="rtl" align="right"><strong>Tirotir Learning Lab</strong> یک پلتفرم آموزشی تعاملی برای یادگیری مفاهیم تیروتیر و تجربهٔ عملی برنامه‌نویسی است.</p>

<h3 dir="rtl" align="right">ویژگی‌ها</h3>

<ul dir="rtl" align="right" style="direction: rtl; text-align: right;">
<li>📚 محتوای آموزشی ساختارمند</li>

<li>🎨 رابط کاربری ساده</li>

<li>⚡ بارگذاری سریع</li>

<li>📱 طراحی واکنش‌گرا</li>

<li>🌐 دسترسی آزاد و رایگان</li>

<li>🧪 تجربهٔ عملی و تعاملی</li>
</ul>

<h3 dir="rtl" align="right">دسترسی</h3>

<p dir="rtl" align="right">🌍 <strong>نسخهٔ آنلاین:</strong></p>
<p dir="rtl" align="right"><a href="https://worker2025.github.io/tirotir-learning-lab/">https://worker2025.github.io/tirotir-learning-lab/</a></p>

<p dir="rtl" align="right">💻 <strong>GitHub:</strong></p>
<p dir="rtl" align="right"><a href="https://github.com/worker2025">https://github.com/worker2025</a></p>

---

<h1 dir="rtl" align="right">شروع سریع</h1>

<p dir="rtl" align="right">برای شروع فقط کافی است:</p>

<pre dir="rtl" align="right" style="direction: rtl; text-align: right; white-space: pre-wrap;"><code>چاپ -سلام دنیا-</code></pre>

<p dir="rtl" align="right">این اولین قدم شما در دنیای <strong>برنامه‌نویسی فارسی با تیروتیر</strong> است.</p>

---

<h2 dir="rtl" align="right">🎨 نمونه‌های بیشتر زبان برنامه‌نویسی تیروتیر</h2>

<p dir="rtl" align="right">مجموعه‌ای از آموزش‌ها، ملودی‌ها، نقاشی‌ها و برنامه‌های کاربردی زبان تیروتیر — به‌صورت آنلاین و قابل اجرا در مرورگر.</p>

<p dir="rtl" align="right">🌐 <strong>مشاهدهٔ آنلاین:</strong> <a href="https://worker2025.github.io/tirotir-new-examples/">worker2025.github.io/tirotir-new-examples</a></p>

| نمونه | توضیح | لینک |
| --- | --- | --- |
| 🎨 نقاشی با تیروتیر | ۲۳ برنامهٔ گرافیکی — رسم شکل و خروجی SVG | [مشاهده](https://worker2025.github.io/tirotir-new-examples/graphics.html) |
| 🎵 موسیقی با تیروتیر | ملودی‌ها و آموزش — تولید فایل WAV | [مشاهده](https://worker2025.github.io/tirotir-new-examples/sound.html) |
| 📄 فرم و تبدیل‌ها | ۱۵ برنامهٔ کاربردی — فرم، تبدیل واحد و متن | [مشاهده](https://worker2025.github.io/tirotir-new-examples/form.html) |

<blockquote dir="rtl" align="right"><p>💡 همهٔ نمونه‌ها به‌صورت زنده در مرورگر قابل اجرا هستند و نیازی به نصب ندارند. کدهای نمونه‌ها برای دانلود در پوشه ریپو قرار دارند.</p></blockquote>

---

<h1 dir="rtl" align="right">Tirotir 1.1.0 — بخش تاریخی</h1>

<p align="center">
<img src="assets/logo/tirotir-logo.png" alt="Tirotir" width="120">
</p> <p align="center">
  <strong>یک زبان برنامه‌نویسی فارسی برای یادگیری، ساخت و خلاقیت.</strong>
</p> <p align="center">
  <a href="https://tirotir.ir/">🌐 Website</a> ·
  <a href="https://tirotir.com/">🌐 Tirotir.com</a> ·
  <a href="https://github.com/worker2025/tirotir">💻 GitHub</a> ·
  <a href="https://doi.org/10.5281/zenodo.22874866">📚 DOI</a>
</p>

---

<h2 dir="rtl" align="right">License</h2>

<p dir="rtl" align="right">The Tirotir source code is distributed under the <strong>MIT License</strong>.</p>

<p dir="rtl" align="right">See <a href="LICENSE"><code dir="ltr">LICENSE</code></a>.</p>

<p dir="rtl" align="right">Copyright © 2026 <strong>Daryoush Alipour</strong></p>

<p dir="rtl" align="right">Tirotir / تیروتیر</p>
