{"id":22933964,"url":"https://github.com/atypicalim/uyghurscript","last_synced_at":"2025-08-12T17:32:13.510Z","repository":{"id":50363022,"uuid":"382579326","full_name":"Atypicalim/UyghurScript","owner":"Atypicalim","description":"a toy programming language written in c, u can write \u0026 run your script by uyghur, uzbek, turkish, kazakh language grammars ...","archived":false,"fork":false,"pushed_at":"2024-12-13T12:54:37.000Z","size":20765,"stargazers_count":16,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-13T13:40:31.911Z","etag":null,"topics":["c","interpreter","kazakh","language","ozbek","programming","script","turkish","uighur","uyghur","uzbek"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Atypicalim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-07-03T09:45:56.000Z","updated_at":"2024-12-13T12:54:41.000Z","dependencies_parsed_at":"2024-03-06T12:29:36.074Z","dependency_job_id":"a839ee89-8223-4fcb-8610-f5bf551656f7","html_url":"https://github.com/Atypicalim/UyghurScript","commit_stats":null,"previous_names":["atypicalim/uyghurscript","kompasim/uyghurscript"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atypicalim%2FUyghurScript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atypicalim%2FUyghurScript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atypicalim%2FUyghurScript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atypicalim%2FUyghurScript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Atypicalim","download_url":"https://codeload.github.com/Atypicalim/UyghurScript/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229699948,"owners_count":18109851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["c","interpreter","kazakh","language","ozbek","programming","script","turkish","uighur","uyghur","uzbek"],"created_at":"2024-12-14T11:36:37.734Z","updated_at":"2025-08-12T17:32:13.499Z","avatar_url":"https://github.com/Atypicalim.png","language":"C","readme":"# UyghurScript\n\n## 0. description\n\n\u003e a toy script interpreter written in c, u can write \u0026 run your script written in uyghur language grammar with it ...\n\n\u003e \n\n* read [documents](./documents/) for more informations\n\n\n* run `./release/uyghur.exe` to get help content\n\n* cick `./release/yuguresh.exe` to run raylib example\n\n![example](./resources/examples/running.png)\n\n## 1. multiple langauge\n\n\n* a. [english](examples/language/en)\n\n![](./resources/languages/hello.en.png)\n\n\n* b. [ئۇيغۇرچە](examples/language/uy)\n\n![](./resources/languages/hello.uy.png)\n\n\n* c. [uyghurche](examples/language/ug)\n\n![](./resources/languages/hello.ug.png)\n\n\n* d. [o'zbekcha](examples/language/uz)\n\n![](./resources/languages/hello.uz.png)\n\n\n* e. [Türkçe](examples/language/tr)\n\n![](./resources/languages/hello.tr.png)\n\n\n* f. [қазақша](examples/language/kz)\n\n![](./resources/languages/hello.kz.png)\n\n\n## 2. highlight \u0026 translating\n\n* vscode [extension](https://marketplace.visualstudio.com/publishers/Atypicalim) for highlighting and autocompleting.\n\n* language [converter](https://Atypicalim.github.io/others/converter.html) for translating different languages.\n\n## 3. supported features\n\n* [variable](examples/features/variable)\n\n```powershell\n# a dynamic var\nvariable m value empty made\n\n# a static var\nvariable n value num made\n\n# set val\nm = \"salam dunya!\"\n\n# free val\nm value empty made\n\n# type error\nn = \"sinaq...\"\n```\n\n* [type](examples/features/type)\n\n```powershell\nvariable m value \"yezish\" made\n\n# convert to func\nm value worker made\ncommand m write\n\n# convert to bool\nm value logic made\ncommand m write\n```\n\n* [calculation](examples/features/calculation)\n\n```powershell\n# arthimetic\nx = 1 + 2 # 3\nx = 1 + 2 * 3 # 9\nx = 1 + (2 * 3) # 7\nx = 64 ^ (1 / 3) # 4\nx = 10 % 7 # 3\n\n# bitwise\nx = 3 \u0026 2 # 2\nx = 3 | 2 # 3\nx = 3 ~ 2 # 1\n\n# boolean\nx = right \u0026 wrong # wrong\nx = right | wrong # right\nx = right ~ wrong # right\n\n# logic\nx = \"2\" ? 2 # false\nx = 2 \u003c 3 # true\nx = \"ab\" \u003e \"ac\" # false \n\n# string\nx = \"ab\" + \"cd\" # abcd\nx = \"ab\" * 2 # abab\n\n# check\nx = 10 ! num # true\nx = 10 ! empty # false\nx = 3 ! 1 # true\nx = \"abc\" ! \"b\" # true\n```\n\n* [command](examples/features/command)\n\n```powershell\n# read a val\ncommand a read\n\n# print a val\ncommand a write\n```\n\n* [if](examples/features/if)\n\n```powershell\nif 0 then\n    command \"if\" write\nelif right then\n    command \"elif\" write\nelse\n    command \"else\" write\nfinish\n```\n\n* [while](examples/features/while)\n\n```powershell\nvariable i value 0 made\nwhile i \u003c 9 then\n    command \"while\\n\" write\n    i = i + 1\nfinish\n```\n\n* [spread](examples/features/spread)\n\n```powershell\nspeaded \"abc...\" variable k v become\n    command k write\n    command \"\\t\" write\n    command v write\n    command \"\\n\" write\nfinish\n```\n\n* [worker](examples/features/worker)\n\n```powershell\n# a func with two args\nworker f variable x y content\n    variable t value 0 made\n    t = x + y\n    result t returned\nfinish\n\n# call func and receive rsp\nworker f with 10 20 applied and r received\n\n# print the val received\ncommand r write\n```\n\n* [closure](examples/features/closure)\n\n```powershell\n# a closure maker func\nworker make content\n\n    # a var in env\n    variable x value 0 made\n    variable r value 0 made\n\n    # a func \u0026 env\n    worker func variable a content\n        command x write # 0\n        command y write # 200\n        r = r + a\n        result r returned\n    finish\n\n    # ret the closure func\n    result func returned\nfinish\n\n# some vars in mod\nvariable x value 100 made\nvariable y value 200 made\n\n# make closure\nworker make applied and f received\n\n# print 11\nworker f with 11 applied and r received\ncommand r write\n\n# print 22\nworker f with 11 applied and r received\ncommand r write\n```\n\n* [exception](examples/features/exception)\n\n```powershell\nvariable x value empty made\n\n# try block\nexception e become\n    x = 3 / 0\nfinish\n\n# catch block\nif e then\n    command \"exception:\\n\" write\n    command e write\n    command \"\\n\" write\nelse\n    command \"successful!\\n\" write\nfinish\n```\n\n* [container](examples/features/container)\n\n```powershell\n#  declare a list\nt value list made\n#  declare a dict\ns value dict made\n\n# generate a list\nt = [11, 22, \"abc\"]\n# generate a dict\ns = {a: \"aa\", b: \"bb\", c: 123}\n\n# put a num key\n@t.1 = 456\n# put a str key\n@s.k = \"abc\"\n# put a var key\n@s{v} = val\n\n# alias: this: - bu, module: + bolek, global: * global\n\n# check type\nb = t ! list\n```\n\n* [objective](examples/features/objective)\n\n```powershell\n# an assister with one argument\nassister X variable x content\n    @-.x = x\nfinish\n\n# assister func\nworker @X.test content\n    command \"X.test...\\n\" write\nfinish\n\n# a creator with one arguments\ncreator Y variable y content\n    creator X with \"arg xxx ...\\n\" applied \n    @-.y = y\nfinish\n\n# creator func\nworker @Y.test content\n    worker @X.test applied\n    command \"Y.test...\\n\" write\nfinish\n\n# call creator using an assister and receive object\ncreator Y with \"arg yyy ...\\n\" applied and r received\n\n# print the object val received\ncommand @r.x write # arg xxx ...\ncommand @r.y write # arg yyy ...\n\n# call creator func which calling assister func inside\nworker @r.test applied\n# X.test...\n# Y.test...\n\n# check obj is created by or assisted by\nif r ! X then\n    command \"yes\\n\" write\nfinish\n# yes\n```\n\n* [import](examples/features/import)\n\n```powershell\n# other.xx\nvariable x value \"other...\" made\n\n# main.xx\nworker ekirish with \"../other.xx\" applied and m received\ncommand @m.x write\n\n# run the program\n`.uyghur.exe ./main.xx`\n\n# get the rsp\nother...\n```\n\n\n--------------------------------\n\n## 4. supported libraries\n\n* [internals](./documents/internals)\n\n* [externals](./documents/externals)\n\n## 5. bridge interfaces\n\n\u003e u can get the bridge objet and communicate between c and script, just check `bridge.c` for more information\n\n*  register a box to script (with some keys of different types)\n```c++\nBridge_startBox(bridge);\nBridge_bindBoolean(bridge, \"bol\", false);\nBridge_bindNumber(bridge, \"num\", 123);\nBridge_bindString(bridge, \"str\", \"abc...\");\nBridge_register(bridge, \"boxName\"); // NULL\n```\n\n* call script function from c (giving one argument and receiving result)\n```c++\nBridge_startFunc(bridge);\nBridge_pushValue(bridge, Value_newNumber(123));\nBridge_pushValue(bridge, Value_newString(\"\"));\nBridge_call(bridge, \"funcName\");\nchar resultType = Bridge_topType(bridge);\nvoid *resultValue = Bridge_receiveValue(bridge);\n```\n\n* register c function for script (receiving two argument and giving result)\n```c++\nvoid testFunc(Bridge *bridge)\n{\n    int a = Bridge_receiveNumber(bridge);\n    char *b = Bridge_receiveString(bridge);\n    Bridge_returnBoolean(bridge, false);\n}\nBridge_startBox(bridge);\nBridge_bindNative(bridge, \"testFunc\", testFunc);\nBridge_register(bridge, NULL);\n```\n\n## 6. todo\n\n* libraries\n* ...\n\n## 7. others\n\n\u003e i am still working on it ...\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatypicalim%2Fuyghurscript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatypicalim%2Fuyghurscript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatypicalim%2Fuyghurscript/lists"}