Skip to content

A language that tries to be syntactically similar to Turkish | Türkçe'ye yakın bir sözdizimine sahip olmaya çalışan bir dil

License

Notifications You must be signed in to change notification settings

kaiserthe13th/tr-lang

Repository files navigation

tr-lang

Fast and Easy


GitHub license GitHub issues GitHub stars GitHub release (latest by date) GitHub release (latest by date including pre-releases) Crates.io Visual Studio Marketplace Version PyPI Platforms GitHub branch checks state Tests

Made with ❤️ in 🇹🇷

tr-lang is a language that aims to bring programming language syntax closer to Turkish. tr-lang has half-stack, half-regional based approach to memory management. tr-lang syntax has become infix from postfix starting with 0.4.0-rc1.

View in Turkish

🚩 Table of Contents

🏆 What Has Been Implemented?

✔️ All parts of the language seems like they are done!

✔️ tr-lang lexer seems like its done Issue #1

✔️ tr-lang parser is in progress Issue #2

✔️ tr-lang bytecode seems like its done Issue #3

✔️ tr-lang bytecode reader seems like its done Issue #4

✔️ tr-lang runtime seems like its done Issue #5

🚀 Installation

🪟 Windows

📇 Pre-Compiled Executable

For windows there is a pre-compiled binary. Just download it, extract the zip and you are ready to go!

Note: This binary won't be in the PATH environment variable by default meaning it won't be globally usable across the system with 'tr-lang'

If you want to add tr-lang to your PATH environment variable you can follow this tutorial by Ryan Hoffman

📦 Cargo

$ cargo install tr-lang

⚙️ Build from source

dependencies: rust, cargo

$ git clone https://github.com/kaiserthe13th/tr-lang
$ cd tr-lang
$ cargo install --path .

Note: If you just want to play you can change the last command to cargo build --release your file will be in target/release/tr-lang

🍎 MacOS

🍺 Homebrew

$ brew tap kaiserthe13th/tr-lang
$ brew install tr-lang

📦 Cargo

$ cargo install tr-lang

⚙️ Build from source

dependencies: rust, cargo

$ git clone https://github.com/kaiserthe13th/tr-lang
$ cd tr-lang
$ cargo install --path .

Note: If you just want to play you can change the last command to cargo build --release your file will be in target/release/tr-lang

🐧 Linux

🗃️ Debian Package

  1. Go to the Releases tab and download tr-lang_<x.x.x>_amd64.deb
  2. In the Terminal
$ dpkg -i tr-lang_<x.x.x>_amd64.deb

Note: On some linux systems just clicking or doubke clicking on the file would start install

🎩 RPM Package

  1. Go to the Releases tab and download tr-lang_<x.x.x>.x86_64.rpm
  2. In the Terminal
$ rpm -i tr-lang_<x.x.x>.x86_64.rpm

Note: On some linux systems just clicking or doubke clicking on the file would start install

🍺 Homebrew

$ brew tap kaiserthe13th/tr-lang
$ brew install tr-lang

📦 Cargo

$ cargo install tr-lang

⚙️ Build from source

dependencies: rust, cargo

$ git clone https://github.com/kaiserthe13th/tr-lang
$ cd tr-lang
$ cargo install --path .

Note: If you just want to play you can change the last command to cargo build --release your file will be in target/release/tr-lang

💻 Editor Support

VS Code Sublime Atom Vim/Neovim Emacs
Highlighthing With tr-lang Extension Planned No With tr-lang.vim No
Snippets With tr-lang Extension No No No No

Note: Feel free to help!

🤝 Contributing

To report bugs, suggest new features or update documentation use the issue tracker

for features use (enhancement | yükseltme) tag, for bugs use (bug) tag and for documentation updates use (documentation | dökümantasyon) tag

👍 Bugfix PR's are welcome!

🔮 Plans For Future

  • Rust-like implemented structs
  • Actual Lists
  • Interpolated Strings
  • Package Manager (planned to be named one of Trileche, Trill, Tren or Trial)

📜 Thanks

  • I give my thanks to user Netwave from stackoverflow.com for helping fix a bug during the creation of the parser.
  • I give my thanks to user Chayim Friedman from stackoverflow.com for helping me with closure magic during the making of UnknownIdentifier error message.