{"id":31330899,"url":"https://github.com/johan-jnn/flylang","last_synced_at":"2025-09-26T00:10:01.044Z","repository":{"id":315090795,"uuid":"1056182389","full_name":"johan-jnn/flylang","owner":"johan-jnn","description":"Source code of my dream programming language","archived":false,"fork":false,"pushed_at":"2025-09-16T16:49:41.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-16T18:01:09.515Z","etag":null,"topics":["language","oop","programming-language","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/johan-jnn.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-13T15:02:09.000Z","updated_at":"2025-09-16T16:49:45.000Z","dependencies_parsed_at":"2025-09-23T11:01:33.532Z","dependency_job_id":null,"html_url":"https://github.com/johan-jnn/flylang","commit_stats":null,"previous_names":["johan-jnn/flylang"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/johan-jnn/flylang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan-jnn%2Fflylang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan-jnn%2Fflylang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan-jnn%2Fflylang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan-jnn%2Fflylang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johan-jnn","download_url":"https://codeload.github.com/johan-jnn/flylang/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan-jnn%2Fflylang/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277000055,"owners_count":25742838,"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","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"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":["language","oop","programming-language","rust"],"created_at":"2025-09-26T00:07:26.682Z","updated_at":"2025-09-26T00:10:01.016Z","avatar_url":"https://github.com/johan-jnn.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flylang\n\nA programming language made to be as simple as powerful.\nIt includes variable definitions, objects, OOP, function declarations, if/else, and way more !\nOriginaly written in [NodeJS](https://github.com/Flymeth/flylang-src), I decided to re-write it in Rust to have better performances.\n\n## The ultimate goal\n\nWith this language I don't just want to have an interpreter, or compiler. I want to have the language being compilable into any other languages, or interpreted in different maniers.\n\n### Why ?\n\nBecause it could be cool for exemple programming language speed comparison to write a code in a single language, and by typing a command have the exact same program in different languages.\n\n### How ?\n\nAfter finishing the lexer and parser, I want the compiling part to be used trough \"add-ons\" (at this time I don't really know how I'll achieve that).\nFor exemple, you download a Flylang Add-On on a website (maybe the futur flylang's website ?), then you place it into a specific folder, and now the flylang cli will reconize it as an Add-On and with a command you can now compile your flylang program into the Add-On's one.\n\n## RoadMap\n\nThis roadmap may change in futur (because I surely forget some features)\n\n### Lexer\n\nPoints ending with `*` means the syntax may change in futur.\n\n- [x] Literals (tuples ?)\n- [x] Scope naming (_`@name (...)`, `@\u003c+`, `@\u003cpositive-integer\u003e`_)\n- [x] Modifiers (_`#(modifier1, modifier2, ...) fn()`_)\n- [ ] Typing syntax\n- [ ] Keywords\n  - [x] `if`\n  - [x] `else`\n  - [x] `fn`\n  - [x] `cs`\n  - [ ] `use`\\* (_`use \u003cmodule\u003e [only x,y,...] [in \u003cvariable\u003e]` - By just using `use \u003cmod\u003e`, all elements in `\u003cmod\u003e` will be global_)\n  - [x] **Breakers**\\*\n    - [x] `stop [@loop-scope?]` : stop (like _\"break\"_) a loop\n    - [x] `return [@fn-scope?] [value?]` : return value to a function (default value too `()`)\n    - [x] `pass [@scope?]` : pass a scope (go the the end of it). This can be used to pass an `if` block, or to reloop\n- [x] Loops (_`while`, `until` \u0026 `each`_)\n- [x] Operations (_`+`, `-`, `_`, `\\*\\*`, `/`, `//`, `%`, `\u0026`(and), `?`(or), `~`(xor), `=`(equal), `\u003c`, `\u003e`\\_)\n- [x] Variable declarations (_`:`, `::`_)\n- [x] Objects/arrays (_`{`, `}`_)\n\n### Parser\n\nElement non implemented in the [Lexer](#lexer) is not marked in the list bellow.\n\n- [x] Literals\n- [x] Function definition\n- [x] Function call\n- [x] Variable declaration\n- [x] Operations and priorities\n- [ ] Class definition/instanciation\n- [x] If/else\n- [x] Loops\n- [x] Objects (_unstable_)\n- [x] Arrays\n- [ ] Scope naming\n- [ ] Modifiers\n- [x] Single expression function as lambda (ex: `fn foo(true)` will always return `true` (and not `()`) because it has only 1 instruction. To avoid this, use `fn foo(true; ())`)\n- [ ] Kinds (aka _traits_) (_`kind \u003cname\u003e(\u003crequired-traits\u003e..., \u003cclass-kind syntax\u003e)`_)\n- [x] Breakers\n\n## Syntax\n\nThe goal of this language is to have a very minimalist syntax while being very powerful.\nAt this time I'm too busy to re-write a documentation of the language's syntax, so you could go [on my website](https://johan-janin.com/portfolio?open=flylang) to have more informations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohan-jnn%2Fflylang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohan-jnn%2Fflylang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohan-jnn%2Fflylang/lists"}