tr-lang 0.4.0

A programming language made to bring syntax closer to Turkish
Documentation

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

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!

๐Ÿ“– 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.