{"id":16021275,"url":"https://github.com/jooapa/klinoff-lang","last_synced_at":"2026-06-11T11:31:34.911Z","repository":{"id":216290099,"uuid":"740909745","full_name":"jooapa/klinoff-lang","owner":"jooapa","description":"as the human race has evolved, so has the klinoff","archived":false,"fork":false,"pushed_at":"2024-01-18T20:06:33.000Z","size":104,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-28T13:20:22.082Z","etag":null,"topics":["best-practices","klinoff","lang","language","low","low-level-programming"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jooapa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-09T10:15:59.000Z","updated_at":"2024-03-27T04:22:36.000Z","dependencies_parsed_at":"2024-01-18T21:41:34.258Z","dependency_job_id":"74d61a2d-ae2c-4cce-b815-2f84589aa042","html_url":"https://github.com/jooapa/klinoff-lang","commit_stats":null,"previous_names":["jooapa/klinoff-lang"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jooapa/klinoff-lang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jooapa%2Fklinoff-lang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jooapa%2Fklinoff-lang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jooapa%2Fklinoff-lang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jooapa%2Fklinoff-lang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jooapa","download_url":"https://codeload.github.com/jooapa/klinoff-lang/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jooapa%2Fklinoff-lang/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34197393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["best-practices","klinoff","lang","language","low","low-level-programming"],"created_at":"2024-10-08T18:02:50.269Z","updated_at":"2026-06-11T11:31:34.894Z","avatar_url":"https://github.com/jooapa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# klinoff-lang\n\n\u003cimg src=\"https://raw.githubusercontent.com/jooapa/klinoff-lang/main/logo.png\" width=\"200\" height=\"200\"\u003e\n\n## Table of contents\n- [Introduction](#introduction)\n- [IMPORTANT!!](#important)\n- [file extension](#file-extension)\n- [Features](#features)\n- [Documentation](#documentation)\n    - [Starting](#starting)\n    - [Variables](#variables)\n    - [Comments](#comments)\n    - [Printing](#printing)\n    - [Creating a pig (function)](#creating-a-pig-function)\n    - [Slingshot (jump to line)](#slingshot-jump-to-line)\n    - [If statements](#if-statements)\n    - [For loops](#for-loops)\n    - [Input](#input)\n    - [Data types](#data-types)\n    - [Built-in secret functions](#built-in-secret-functions)\n    - [all keywords](#all-keywords)\n        - [Operators](#operators)\n        - [Keywords](#keywords)\n        - [Variable modifiers](#variable-modifiers)\n- [Using the interpreter](#using-the-interpreter)\n    - [Installation](#installation)\n    - [Usage](#usage)\n- [Examples](#examples)\n    - [Cubic root Example](#cubic-root-example)\n    - [Simple if statement Example](#simple-if-statement-example)\n    - [Simple for loop Example](#simple-for-loop-example)\n    - [Simple input Example](#simple-input-example)\n\n## Syntax highlighting\n- [Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=Jooapa.klinoff-lang-syntax-highlighting)\n- [Github](https://github.com/jooapa/klinoff-lang-syntax-higlighting)\n\n## Introduction\nklinoff-lang is a huge step in the evolution of programming languages. It is a language that is easy to learn and use, but really powerful.\n\nKlinoff-lang is a interpreted language, one known interpreter is found on this repository.\n\n## IMPORTANT!!\nYour code must be coded with SPACES and is case sensitive with clear difference between words. The code must be written exactly like in this documentation. **DONT USE SPACES JUST HERE AND THERE, USE SPACES VERY CAREFULLY.**\n\ndo this:\n```bash\noink \"Hello World!\"\n```\nnot this:\n```bash\noink\"Hello World!\"\n```\n\nAnd also Happy to tell youu guys, that klinoff-lang is partnered with EcmaScript, so you HAVE TO leave a empty line at the end of the file.\n\nA NEW revolutionary feature is here, for the non-users who doesn't have access to letter `ö` in their keyboard, you can use `o`.\n\n## file extension\nThe file extension for klinoff language is\n- `.kln`\n\nand just in case for everybodys sanity, if you want some working color syntax highlighting. INTRODUCING THE NEW VS CODE EXTENSION FOR KLINOFF-LANG, WITH THE EXTENSION YOU GET FULL CONTROL OF THE COLOR [SYNTAX HIGHLIGHTING](https://marketplace.visualstudio.com/items?itemName=Jooapa.klinoff-lang-syntax-highlighting)!\n\n## Features\n- Easy to learn\n- Easy to use\n- Powerful\n- Fast\n\n## Documentation\nDocumentation for klinoff-lang can be found here\n\nklinoff-lang reads the file from top to bottom, and executes the code line by line.\n\n\n### Starting\nTo start a klinoff-lang file, you need to use the `nöff` keyword. This keyword is used to start the program, and follows the name of your program.\n\n```bash\nnöff my_program\n```\n\n### Variables\nVariables are used to store data. Variables can be created by using the `nöf` keyword. \n```bash\nnöf variable = value\n```\n\n```bash\nnöf num1 = 5\nnöf word = Hello World!\n```\nyou can also modify variables by using the `modify` keyword.\n```bash\nnöf num1 = 5\nnöf num2 = 6\nmodify $num1 $num2\n# num1 == 6\n```\nusing `add`, `sub`, `multiply`, `divide`, `modulo`, and `power`.\nFirst parameter is the variable you want to modify, and the second parameter is the value you want to modify the variable with.\n```bash\nadd      $num1  5\nsub      $num2  $num1\nmultiply $num3  5\ndivide   $num4  0.5\nmodulo   $num5  5\npower    $num6  $num1\n```\n\n### Comments\nComments are used to explain the code. Comments are ignored by the compiler. Comments can be created by using the `//` character.\n\n```c\n// This is a comment\n\noink \"Hello World!\" // This breaks everything, use in at your own risk\n\n```\n\n### Printing\nPrinting is used to print text to the console. Printing can be done by using the `oink` keyword.\n\n```bash\noink \"Hello World!\"\n# Prints \"Hello World!\" to the console\n```\n```bash\nnöf num1 = 5\noink \"$num1\"\n```\nThe future is here so that the oink function will always remove letter `§` from the output.\n```bash\nnöf money = -5000\n\noink \"I have $money§€ in my bank account\"\n# Prints \"I have -5000§€ in my bank account\" to the console\n```\n```bash\nnöf num1 = 5\nnöf num2 = 6\noink \"$num1$num2\"\n# this does not work, you need to use spaces\n```\n\n### Creating a pig (function)\nYou can create a line receiver by using the `pig` keyword. Use `gip` to end the function.\n```bash\npig possu\n    oink \"Hello World!\"\ngip\n```\n\n### Slingshot (jump to line)\nYou can jump to the line you want by using the `slingshot` keyword. It works like a angry bird, you slingshot to the pig. You can jump to the line by providing only number\n```bash\n#jump to pig\nslingshot possu\n\n# jumps to line\nslingshot 5\n```\n\n### If statements\nIf statements can be created by using the `niff` keyword. else if statements can be created by using the `nilf` keyword. klinoff-lang is so advanced that it doesnt need the `else` statements.\n\nAfter make the statemt in given line, you can use `slingshot` keyword to jump to the line you want.\n\n```bash\nnöf num1 = 1\nnöf num2 = 1\n\nniff $num1 \u003e $num2 : slingshot possu1\nnilf $num1 \u003c $num2 : slingshot possu2\nnilf $num1 == $num2 : slingshot possu3\n\n```\n\n### For loops\nFor loops can be created by using the `snort` keyword. Second parameter is for the loop name. and the third parameter is the times the loop will run. Use `pork` to end the loop.\n\nBe careful, you cannot use the same loop name twice.\n\n```bash\nnöf times = 5\n\nsnort oink $times\n    oink \"oinking $times times\"\npork \n\n```\n#### infinite loop\nYou can create infinite loop adding `infinite` as the third parameter.\n```bash\nsnort oink infinite\n    oink \"oinking infinite times\"\npork\n```\nUse `pop` to break the loop.\n```bash\nsnort oink infinite\n    oink \"oinking one time\"\n    pop\npork\n\nnöf num = 1\nsnort loop infinite\n    add $num 1\n    oink \"number is $num\"\n    nilf $num \u003e= 100.0 : pop\npork \n\noink \"There is $num\"\n\n```\n### Input\nThe input will be saved to the variable you give to the input function. last parameter is the question you want to ask.\n```bash\nnöf name = pig\n\ninput $name \"why is your name $name§? Change it to: \"\n\noink \"Hello $name§!\"\n```\n\n\n## Data types\n- `string` - text\n\n## Built-in secret functions\n- `nöffnöff` - return the program name __not working yet__\n\n## all keywords\n### Operators\n- `==` - equal to\n- `!=` - not equal to\n- `\u003e` - greater than\n- `\u003c` - less than\n- `\u003e=` - greater than or equal to\n- `\u003c=` - less than or equal to\n\n### Keywords\n- `nöff` - start of program\n- `nöf` - create variable\n- `oink` - print\n- `niff` - if statement\n    - `nilf` - else if statement\n- `snort` - start for loop \n    - `pork` - end for loop\n    - `pop` - break for loop\n- `slingshot` - jump to line or function\n- `pig` - create function\n    - `gip` - end function\n- `input` - input\n\n### Variable modifiers\n- `modify`\n- `add`\n- `sub` - subtract\n- `multiply`\n- `divide`\n- `modulo`\n- `power`\n\n## Using the interpreter\n## Installation\nTo install the interpreter, you need to have python3 installed. You can install python3 from [here](https://www.python.org/downloads/).\n\nAfter installing python3, you need to install the interpreter. by cloning this repository.\n## Usage\n```bash\npython interpeter/interpret.py example.kln\n```\nyou can you the `--debug` or `-d` flag to see the debug information.\n```bash\npython interpeter/interpret.py example.kln -d\n```\n\n\n## Examples\n## Cubic root Example\n```bash\nnöff cubic_root_example\n\nnöf num1 = 16\nnöf num2 = 2\n\nslingshot cubic_root_num1\n\n// function to cubic root the num1\npig cubic_root_num1\n\n    multiply $num1 $num2\n    power $num1 0.333\n\n    oink \"$num1\"\n\ngip\n\n```\n## Simple if statement Example\n```bash\nnöff if_example\n\nnöf num1 = 16\nnöf num2 = 2\n\nniff $num1 \u003e $num2 : slingshot possu1\nnilf $num1 \u003c $num2 : slingshot possu2\nnilf $num1 == $num2 : slingshot possu3\n\npig possu1\n    oink \"$num1 is bigger than $num2\"\ngip\n\npig possu2\n    oink \"$num1 is smaller than $num2\"\ngip\n\npig possu3\n    oink \"$num1 is equal to $num2\"\ngip\n\n```\n## Simple for loop Example\n```bash\nnöff loop_example\n\nnöf num = 5\n\nsnort oink 5\n    sub $num 1\n    oink \"oinking $num times\"\npork \n\n```\n## Simple input Example\n```bash\nnöff input_example\n\nnöf name = pig\n\ninput $name \"why is your name $name§? Change it to: \"\n\noink \"Hello $name§!\"\n\n```\n### Break for loop Example\n```bash\nnöff infi_loop_example\n\nnöf num = 1\n\n// infinite loop\nsnort loop infinite\n    add $num 1\n    oink \"number is $num\"\n    nilf $num \u003e= 100.0 : pop\npork \n\noink \"There is $num§1\"\n\n```\n\n## Technical details\nAs the klinoff-lang has evolved so has the complexity of the codebase. The interpreter is written in python3 with reveals the true power of the language. no more cmake or makefiles, just python3, the language of the future.\n\nUsing the power of [Count Code Lines VsCode Extension](https://marketplace.visualstudio.com/items?itemName=miskamero.countcodelines), we can see that the interpreter has `805` lines of code.\n\n# Contributors\n## Creator\n- [Jooapa](https://github.com/jooapa)\n\n## Contributors\n- [miskamero](https://github.com/miskamero)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjooapa%2Fklinoff-lang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjooapa%2Fklinoff-lang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjooapa%2Fklinoff-lang/lists"}