Skip to main content

נחשון - שפת תכנות עברית מבוססת פייתון

Project description

🐍 נחשון - שפת תכנות עברית

ברוכים הבאים לנחשון!

נחשון היא שפת תכנות מבוססת פייתון עם תחביר עברי מלא. השפה נועדה להנגיש תכנות לדוברי עברית, במיוחד למתחילים ותלמידים.

נחשון מאפשרת לכתוב קוד בעברית טהורה, כולל מילות מפתח, שמות משתנים ופונקציות מובנות.


✨ תכונות

  • 🔤 תחביר עברי מלא - כל מילות המפתח בעברית
  • 🐍 מבוסס פייתון - תחביר מוכר ונוח
  • 📚 ספרייה סטנדרטית בעברית - פונקציות מובנות בעברית
  • קל לשימוש - התקנה והרצה פשוטות
  • 🛠️ CLI מלא - הרצה, בנייה ומצב אינטראקטיבי
  • 📝 הודעות שגיאה בעברית - קל להבין מה השתבש

🚀 התחלה מהירה

התקנה

# שכפול הפרויקט
git clone https://github.com/nachshon-lang/nachshon.git
cd nachshon

# התקנה עם pip (מומלץ)
pip install -e .

הוספת nachshon ל-PATH

לאחר ההתקנה, הוסף את תיקיית הסקריפטים של פייתון ל-PATH שלך:

macOS/Linux:

# הוסף לקובץ ~/.zshrc או ~/.bashrc
export PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:$PATH"

# או אם משתמש ב-pip עם --user
export PATH="$HOME/.local/bin:$PATH"

# טען מחדש
source ~/.zshrc  # או source ~/.bashrc

Windows:

# הוסף את תיקיית Scripts של Python ל-PATH
# בדרך כלל: C:\Users\USERNAME\AppData\Local\Programs\Python\Python311\Scripts

הרצה ראשונה

# הדרך הכי פשוטה - פשוט תן את הקובץ!
nachshon examples/01_שלום_עולם.נח

# או עם python3 ישירות מתיקיית הפרויקט
python3 nachshon.py examples/01_שלום_עולם.נח

# או כמודול
python3 -m src examples/01_שלום_עולם.נח

📖 שימוש

הרצת קובץ נחשון:

nachshon examples/01_שלום_עולם.נח
# או
nachshon run examples/01_שלום_עולם.נח

בניית קובץ פייתון:

nachshon build examples/01_שלום_עולם.נח

מצב אינטראקטיבי (REPL):

nachshon repl
# או פשוט
nachshon

בדיקת תחביר:

nachshon check examples/01_שלום_עולם.נח

📖 מילות מפתח

בקרת זרימה

עברית Python תיאור
אם if תנאי
אחרת else אחרת
אחרת_אם elif אחרת אם
בעוד while לולאת while
עבור for לולאת for
בתוך in בתוך (לולאה)

פונקציות

עברית Python תיאור
הגדר def הגדרת פונקציה
החזר return החזרת ערך
הפסק break הפסקת לולאה
המשך continue המשך לאיטרציה הבאה
עבור_הלאה pass לא לעשות כלום

ערכים מיוחדים

עברית Python תיאור
אמת True ערך אמת
שקר False ערך שקר
ריק None ערך ריק

אופרטורים לוגיים

עברית Python תיאור
וגם and וגם
או or או
לא not לא (שלילה)

📚 פונקציות מובנות

עברית Python תיאור
הדפס() print() הדפסה למסך
קלט() input() קריאת קלט מהמשתמש
אורך() len() אורך רשימה/מחרוזת
סוג() type() סוג משתנה
טווח() range() יצירת טווח מספרים
מספר_שלם() int() המרה למספר שלם
מספר_עשרוני() float() המרה למספר עשרוני
מחרוזת() str() המרה למחרוזת
רשימה() list() יצירת רשימה
מילון() dict() יצירת מילון
סכום() sum() סכום רשימה
מינימום() min() ערך מינימלי
מקסימום() max() ערך מקסימלי
ממוין() sorted() מיון רשימה

💡 דוגמאות קוד

שלום עולם

הדפס("שלום עולם!")

משתנים

שם = "דניאל"
גיל = 25
הדפס("שלום, " + שם)
הדפס("בן " + מחרוזת(גיל))

תנאים

גיל = 18

אם גיל >= 18:
    הדפס("מבוגר")
אחרת:
    הדפס("קטין")

לולאות

# לולאת עבור
עבור i בתוך טווח(5):
    הדפס(i)

# לולאת בעוד
מונה = 0
בעוד מונה < 5:
    הדפס(מונה)
    מונה = מונה + 1

פונקציות

הגדר ברכה(שם):
    הדפס("שלום, " + שם + "!")
    החזר אמת

ברכה("יוסי")

הגדר חיבור(א, ב):
    החזר א + ב

תוצאה = חיבור(3, 5)
הדפס(תוצאה)  # 8

רשימות

פירות = ["תפוח", "בננה", "תפוז"]

עבור פרי בתוך פירות:
    הדפס(פרי)

הדפס("יש " + מחרוזת(אורך(פירות)) + " פירות")

מילונים

אדם = {"שם": "יוסי", "גיל": 30}

הדפס(אדם["שם"])
הדפס(אדם["גיל"])

אדם["עיר"] = "תל אביב"

פונקציה רקורסיבית

הגדר עצרת(נ):
    אם נ <= 1:
        החזר 1
    החזר נ * עצרת(נ - 1)

הדפס(עצרת(5))  # 120

📁 מבנה הפרויקט

nachshon/
├── nachshon/
│   ├── __init__.py
│   ├── lexer.py      # מנתח לקסיקלי
│   ├── parser.py     # מנתח תחבירי
│   ├── transpiler.py # ממיר לפייתון
│   └── cli.py        # ממשק שורת פקודה
├── examples/         # דוגמאות קוד
│   ├── 01_שלום_עולם.נח
│   ├── 02_משתנים.נח
│   ├── 03_תנאים.נח
│   ├── 04_לולאות.נח
│   ├── 05_פונקציות.נח
│   ├── 06_רשימות.נח
│   ├── 07_מילונים.נח
│   ├── 08_מחרוזות.נח
│   ├── 09_משחק_ניחוש.נח
│   └── 10_מחשבון.נח
├── tests/           # בדיקות יחידה
│   ├── test_lexer.py
│   ├── test_parser.py
│   ├── test_transpiler.py
│   └── test_cli.py
└── README.md

🧪 הרצת בדיקות

# כל הבדיקות
python -m pytest tests/ -v

# בדיקות ספציפיות
python -m pytest tests/test_lexer.py -v
python -m pytest tests/test_parser.py -v
python -m pytest tests/test_transpiler.py -v

או:

python tests/test_lexer.py
python tests/test_parser.py
python tests/test_transpiler.py
python tests/test_cli.py

🔧 פקודות CLI

פקודה תיאור
nachshon <file.נח> הרצת קובץ נחשון (ישירות)
nachshon run <file> הרצת קובץ נחשון
nachshon build <file> יצירת קובץ פייתון
nachshon repl מצב אינטראקטיבי
nachshon check <file> בדיקת תחביר
nachshon tokens <file> הצגת טוקנים (דיבאג)
nachshon ast <file> הצגת עץ תחביר (דיבאג)

אפשרויות נוספות

# הצגת קוד פייתון לפני הרצה
nachshon run --show-python examples/01_שלום_עולם.נח

# בנייה לקובץ ספציפי
nachshon build examples/01_שלום_עולם.נח -o output.py

# הצגת גרסה
nachshon --version

🤝 תרומה לפרויקט

מוזמנים לתרום! ניתן:

  • לדווח על באגים
  • להציע תכונות חדשות
  • לשפר את התיעוד
  • להוסיף דוגמאות קוד

📜 רישיון

MIT License


🙏 תודות

  • לקהילת הפייתון הישראלית
  • לכל התורמים והמשתמשים

נחשון - כי תכנות צריך להיות בשפה שלך! 🇮🇱

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nachshon-1.0.0.tar.gz (39.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nachshon-1.0.0-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file nachshon-1.0.0.tar.gz.

File metadata

  • Download URL: nachshon-1.0.0.tar.gz
  • Upload date:
  • Size: 39.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nachshon-1.0.0.tar.gz
Algorithm Hash digest
SHA256 868de363ce2c0eac193de9994d971061c151fbf9dadc7256459cba5aaa1035cb
MD5 101f9e8c4de8f5074a9567c525fcc293
BLAKE2b-256 9e0f497c067b2377f53fcbc5f0aef385ab5fb9215aac7a31810f9bad3631fd04

See more details on using hashes here.

Provenance

The following attestation bundles were made for nachshon-1.0.0.tar.gz:

Publisher: release.yml on DanielCarmel/nachshon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nachshon-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: nachshon-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nachshon-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f70922bebf941b0517b737b77e8e86b6c27585f8f2e80c5660998f964c301b2f
MD5 f5951538f43a59ab7853adc76f35b3e8
BLAKE2b-256 015da697c485393188090b0363cb032f01a5c0f39722f5c826a3fb0062beb65a

See more details on using hashes here.

Provenance

The following attestation bundles were made for nachshon-1.0.0-py3-none-any.whl:

Publisher: release.yml on DanielCarmel/nachshon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page