FEYZ is a programming language that uses Turkish keywords, making programming more accessible to Turkish speakers.
FEYZ is a programming language designed with Turkish keywords, allowing Turkish speakers to code in their native language while learning programming concepts.
- Turkish keywords for better accessibility
- Dynamic variable declaration
- Type casting support
- Mathematical operations
- Comparison and logical operators
- Conditional statements (if-else)
- Loops
- Functions
- Block structure with curly braces
- Optional semicolons
make# To run a FEYZ program:
./feyz program.feyzCheck the ornekler/ directory for example FEYZ programs.
- Numbers (integers and floating-point)
- Text (string)
- Boolean (true/false)
- Lists/Arrays
| Feature | Status | Description |
|---|---|---|
| Variable declaration and assignment | ✅ Available | Supported through AssignmentNode class and Environment class define/assign methods |
| Mathematical operations | ✅ Available | Supported through BinaryOpNode class and Value class operator methods (+, -, *, /, %) |
| Comparison operators | ✅ Available | Comparison operators (==, !=, <, >, <=, >=) defined in Value class |
| Logical operators | ✅ Available | VE (and), VEYA (or), DEGIL (not) operators defined in lexer and parser with special handling |
| Conditional statements (if-else) | ✅ Available | Supported through IfNode class and ifStatement method in parser |
| Loops | ✅ Available | Supported through LoopNode class and loopStatement method in parser |
| Functions | ✅ Available | Supported via FunctionNode, UserFunction and NativeFunction classes with recursive function support |
| Type | Status | Description |
|---|---|---|
| Dynamic variable typing | ✅ Available | Value class supports different types with no explicit type declaration needed |
| Type casting | ✅ Available | Supported through CastNode class and Value::cast method |
| Numbers (integer and float) | ✅ Available | Supported via NumberNode class and Value::Type::NUMBER |
| Text (string) | ✅ Available | Supported via StringNode class and Value::Type::STRING |
| Boolean (true/false) | ✅ Available | Supported via BooleanNode class and Value::Type::BOOLEAN |
| Lists/Arrays | ❌ Planned | Not yet implemented |
| Feature | Status | Description |
|---|---|---|
| Error handling | Basic error handling with try-catch blocks in main.cpp, but no in-language try-catch constructs | |
| Modular structure (imports) | ❌ Planned | File import mechanism not yet implemented |
| Object-oriented support | ❌ Planned | Class definition and object creation not yet implemented |
| File operations | ❌ Planned | No built-in support for file read/write operations |
| Standard library | ❌ Planned | Standard library for math, string processing etc. not yet implemented |
FEYZ, Türkçe konuşanlara programlama kavramlarını öğrenirken kendi dillerinde kod yazma imkanı sunan bir programlama dilidir.
- Türkçe anahtar kelimeler
- Dinamik değişken tanımlama
- Tip dönüşümü desteği
- Matematiksel işlemler
- Karşılaştırma ve mantıksal operatörler
- Koşullu ifadeler (eğer-değilse)
- Döngüler
- Fonksiyonlar
- Süslü parantez ile blok yapısı
- Noktalı virgül opsiyonel
make# FEYZ programını çalıştırmak için:
./feyz program.feyzÖrnek FEYZ programları için ornekler/ dizinine bakabilirsiniz.
| Özellik | Durum | Açıklama |
|---|---|---|
| Değişken tanımlama ve atama | ✅ Var | AssignmentNode sınıfı ve Environment sınıfındaki define ve assign metotları ile destekleniyor |
| Matematiksel işlemler | ✅ Var | BinaryOpNode sınıfı ve Value sınıfındaki operatör metotları (+, -, *, /, %) ile destekleniyor |
| Karşılaştırma operatörleri | ✅ Var | Value sınıfında karşılaştırma operatörleri (==, !=, <, >, <=, >=) tanımlanmış |
| Mantıksal operatörler | ✅ Var | VE (ve), VEYA (veya), DEGIL (değil) operatörleri lexer ve parser'da tanımlanmış |
| Koşullu ifadeler (eğer-değilse) | ✅ Var | IfNode sınıfı ve parser'da ifStatement metodu ile destekleniyor |
| Döngüler | ✅ Var | LoopNode sınıfı ve parser'da loopStatement metodu ile destekleniyor |
| Fonksiyonlar | ✅ Var | FunctionNode, UserFunction ve NativeFunction sınıfları ile destekleniyor |
| Tip | Durum | Açıklama |
|---|---|---|
| Dinamik değişken tanımlama | ✅ Var | Value sınıfı farklı tipleri destekliyor ve tip belirtme zorunluluğu yok |
| Tip dönüşümü (casting) | ✅ Var | CastNode sınıfı ve Value::cast metodu ile tip dönüşümü destekleniyor |
| Sayı (tam sayı ve ondalıklı) | ✅ Var | NumberNode sınıfı ve Value::Type::NUMBER ile destekleniyor |
| Metin (string) | ✅ Var | StringNode sınıfı ve Value::Type::STRING ile destekleniyor |
| Mantıksal (doğru/yanlış) | ✅ Var | BooleanNode sınıfı ve Value::Type::BOOLEAN ile destekleniyor |
| Liste/Dizi | ❌ Planlandı | Henüz implementasyonu yapılmadı |
| Özellik | Durum | Açıklama |
|---|---|---|
| Hata yakalama mekanizması | Temel hata yakalama try-catch blokları ile main.cpp'de var, ancak dil içinde try-catch benzeri yapılar yok | |
| Modüler yapı (dosya içe aktarma) | ❌ Planlandı | Dosya içe aktarma (import) mekanizması henüz implementasyonu yapılmadı |
| Nesne yönelimli programlama desteği | ❌ Planlandı | Sınıf tanımlama veya nesne oluşturma mekanizması henüz implementasyonu yapılmadı |
| Dosya işlemleri | ❌ Planlandı | Dosya okuma/yazma işlemleri için dil içi destek henüz implementasyonu yapılmadı |
| Standart kütüphane | ❌ Planlandı | Matematik, metin işleme vb. için standart kütüphane desteği henüz implementasyonu yapılmadı |