{"id":22496792,"url":"https://github.com/keosariel/gabby-lang","last_synced_at":"2025-08-03T03:32:18.610Z","repository":{"id":129179571,"uuid":"316962109","full_name":"keosariel/gabby-lang","owner":"keosariel","description":"A simple programming language using llvmlite in python3","archived":false,"fork":false,"pushed_at":"2022-12-01T11:01:57.000Z","size":30,"stargazers_count":42,"open_issues_count":3,"forks_count":8,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-07-30T19:27:48.657Z","etag":null,"topics":["compiler","demo","language","language-syntax","lexer","llvm","llvm-ir","llvmlite","parser","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","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/keosariel.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}},"created_at":"2020-11-29T13:53:28.000Z","updated_at":"2024-06-29T09:58:25.000Z","dependencies_parsed_at":"2023-03-13T11:25:22.097Z","dependency_job_id":null,"html_url":"https://github.com/keosariel/gabby-lang","commit_stats":null,"previous_names":["saskayy/programming-language-in-python-using-llvmlite","keosariel/gabby-lang"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keosariel%2Fgabby-lang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keosariel%2Fgabby-lang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keosariel%2Fgabby-lang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keosariel%2Fgabby-lang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keosariel","download_url":"https://codeload.github.com/keosariel/gabby-lang/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228520736,"owners_count":17932629,"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":["compiler","demo","language","language-syntax","lexer","llvm","llvm-ir","llvmlite","parser","python","python3"],"created_at":"2024-12-06T20:14:23.048Z","updated_at":"2024-12-06T20:14:24.053Z","avatar_url":"https://github.com/keosariel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Programming language in python using llvmlite\n\n\n This is simply a compiler for a simple language, built with Python 3.6+ and the LLVM framework using the llvmlite library.\n \n ## Features\n- **it's fast**, because it should be so, together with LLVM's state of the art optimizations, but it won't ever oblige you to make an extra effort from your side just for the sake of performance\n- **it's compiled** using llvmlite\n- **it's statically typed** so you don't need to guess the type of the variable if your coworker didn't spend the time to use meaningful names and you can make use of compile-time checks, autocomplete and more\n- **it's simple and expressive** because the code should be easily readable and it shouldn't make you guess what it does\n\nInstall the requirements\n```bash\npip install -r requirements.txt\n```\n\n# Code examples\n\n\u003e These are all working perfectly\n\n## Factorial Function\n\n```\ndef fact(n:int):int{\n    if n \u003c= 1{\n        return 1\n    }\n    return n * fact(n-1)\n}\n\ndef main():int{\n    return fact(6)\n}\n```\n\n## Conditionals\n\n```\ndef main():int{\n\n    age = 18\n    if age == 18{\n        printf('wow you are 18\\n')\n    }else{\n        printf('i guess you are not 18\\n')\n    }\n\n    return 0\n}\n```\n\n## Loops\n\n```\ndef main():int{\n\n    printf('while loop\\n')\n    x = 0\n    while x \u003c 10{\n        printf('x = %i\\n',x)\n        x = x+1\n    }\n\n    printf('Until loop\\n')\n\n    x = 0\n    until x \u003e 10{\n        printf('x = %i\\n',x)\n        x = x+1\n    }\n\n    return 0\n}\n```\n#### You can also run the [mandelbrot set](https://github.com/keosariel/Programming-language-in-python-using-llvmlite/blob/main/test/mandelbrot_set.test) program in the [test folder](https://github.com/keosariel/Programming-language-in-python-using-llvmlite/tree/main/test)\n\n## How to run it\n\n```\npython run.py \u003cfilename\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeosariel%2Fgabby-lang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeosariel%2Fgabby-lang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeosariel%2Fgabby-lang/lists"}