Skip to content

tr-lang#

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

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#

console $ cargo install tr-lang

⚙️ Build from source#

dependencies: rust, cargo

console $ 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#

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

📦 Cargo#

console $ cargo install tr-lang

⚙️ Build from source#

dependencies: rust, cargo

console $ 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__amd64.deb
  2. In the Terminal console $ 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_.x86_64.rpm
  2. In the Terminal console $ 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#

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

📦 Cargo#

console $ cargo install tr-lang

⚙️ Build from source#

dependencies: rust, cargo

console $ 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!

📖 See the Docs#

🤝 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.
Back to top