Skip to content
/ feyz Public

Turkish Programing language designed with Turkish keywords and syntax, making programming concepts more accessible to Turkish speakers.

Notifications You must be signed in to change notification settings

feyzlang/feyz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FEYZ Programming Language

FEYZ is a programming language that uses Turkish keywords, making programming more accessible to Turkish speakers.

English | Türkçe

English

Overview

FEYZ is a programming language designed with Turkish keywords, allowing Turkish speakers to code in their native language while learning programming concepts.

Features

  • 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

Building

make

Usage

# To run a FEYZ program:
./feyz program.feyz

Examples

Check the ornekler/ directory for example FEYZ programs.

Data Types

  • Numbers (integers and floating-point)
  • Text (string)
  • Boolean (true/false)
  • Lists/Arrays

Implementation Status & Roadmap

Core Features

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

Data Types

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

Advanced Features

Feature Status Description
Error handling ⚠️ Partial 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

Türkçe

Genel Bakış

FEYZ, Türkçe konuşanlara programlama kavramlarını öğrenirken kendi dillerinde kod yazma imkanı sunan bir programlama dilidir.

Özellikler

  • 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

Derleme

make

Kullanım

# FEYZ programını çalıştırmak için:
./feyz program.feyz

Örnekler

Örnek FEYZ programları için ornekler/ dizinine bakabilirsiniz.

Geliştirme Durumu ve Yol Haritası

Temel Özellikler

Ö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

Veri Tipleri

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ı

Gelişmiş Özellikler

Özellik Durum Açıklama
Hata yakalama mekanizması ⚠️ Kısmi 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ı

About

Turkish Programing language designed with Turkish keywords and syntax, making programming concepts more accessible to Turkish speakers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published