נחשון - שפת תכנות עברית מבוססת פייתון
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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
868de363ce2c0eac193de9994d971061c151fbf9dadc7256459cba5aaa1035cb
|
|
| MD5 |
101f9e8c4de8f5074a9567c525fcc293
|
|
| BLAKE2b-256 |
9e0f497c067b2377f53fcbc5f0aef385ab5fb9215aac7a31810f9bad3631fd04
|
Provenance
The following attestation bundles were made for nachshon-1.0.0.tar.gz:
Publisher:
release.yml on DanielCarmel/nachshon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nachshon-1.0.0.tar.gz -
Subject digest:
868de363ce2c0eac193de9994d971061c151fbf9dadc7256459cba5aaa1035cb - Sigstore transparency entry: 800938066
- Sigstore integration time:
-
Permalink:
DanielCarmel/nachshon@7879454faa12286cc21b3dd587748e3f3820c6b9 -
Branch / Tag:
refs/tags/0.0.1 - Owner: https://github.com/DanielCarmel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7879454faa12286cc21b3dd587748e3f3820c6b9 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f70922bebf941b0517b737b77e8e86b6c27585f8f2e80c5660998f964c301b2f
|
|
| MD5 |
f5951538f43a59ab7853adc76f35b3e8
|
|
| BLAKE2b-256 |
015da697c485393188090b0363cb032f01a5c0f39722f5c826a3fb0062beb65a
|
Provenance
The following attestation bundles were made for nachshon-1.0.0-py3-none-any.whl:
Publisher:
release.yml on DanielCarmel/nachshon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nachshon-1.0.0-py3-none-any.whl -
Subject digest:
f70922bebf941b0517b737b77e8e86b6c27585f8f2e80c5660998f964c301b2f - Sigstore transparency entry: 800938101
- Sigstore integration time:
-
Permalink:
DanielCarmel/nachshon@7879454faa12286cc21b3dd587748e3f3820c6b9 -
Branch / Tag:
refs/tags/0.0.1 - Owner: https://github.com/DanielCarmel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7879454faa12286cc21b3dd587748e3f3820c6b9 -
Trigger Event:
release
-
Statement type: