{"id":25615455,"url":"https://github.com/akutchi/gsat","last_synced_at":"2025-10-13T21:40:20.828Z","repository":{"id":278585707,"uuid":"935967225","full_name":"Akutchi/GSAT","owner":"Akutchi","description":"A transpilor from Sugar Ada to Ada","archived":false,"fork":false,"pushed_at":"2025-02-27T12:00:45.000Z","size":91,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-24T11:39:45.702Z","etag":null,"topics":["ada","transpilor"],"latest_commit_sha":null,"homepage":"","language":"Ada","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/Akutchi.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}},"created_at":"2025-02-20T10:09:20.000Z","updated_at":"2025-02-27T12:00:49.000Z","dependencies_parsed_at":"2025-02-20T15:42:17.561Z","dependency_job_id":"5a5c7d18-4be0-4dac-bff6-f1b139921ca2","html_url":"https://github.com/Akutchi/GSAT","commit_stats":null,"previous_names":["akutchi/gsat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Akutchi/GSAT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akutchi%2FGSAT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akutchi%2FGSAT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akutchi%2FGSAT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akutchi%2FGSAT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Akutchi","download_url":"https://codeload.github.com/Akutchi/GSAT/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akutchi%2FGSAT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017051,"owners_count":26085951,"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-10-13T02:00:06.723Z","response_time":61,"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":["ada","transpilor"],"created_at":"2025-02-22T03:19:46.171Z","updated_at":"2025-10-13T21:40:20.822Z","avatar_url":"https://github.com/Akutchi.png","language":"Ada","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GSAT - the Gnu Sugar Ada Transpilor\n\n![Logo](./doc/SugarAda_v2.png)\n\n## Description\n\nThis project is a transpilor from Sugar Ada (a custom version of Ada) to Plain Ada.\nSugar Ada is born from my desir to implement some new features to Ada, but without\nthe need to modify GCC as a consequence (might try that in the future).\n\nThe features that I want to develop as of now are thus,\n\n- Map initialization\n```ada\ndeclare\n    M : Map := (1 to \"Ada\", 2 to \"C\", 3 to \"Rust\"); --  equivalent to doing several M.Include\nbegin\n    --  ...\nend;\n```\n\n- Array Inlooping\n```ada\ndeclare\n    A  : array (1 .. 3) of Positive;\nbegin\n    A.ForEach (it =\u003e Put_Line (it));\nend;\n```\n\n- Null Ternary operator\n```ada\ndeclare\n    S : Ada.Strings.Unbounded.Unbounded_String := ...\n    B : Boolean := S ?: \"Default value\" --  equivalent to (if S = null then \"Default_Value\" else S);\nbegin\n    --  ...\nend;\n```\n## Progress\nAs of the 25/02/25, I can re-generate this much of the [gsat.adb](./src/gsat.adb) file : \n```ada\nwith Ada.Text_IO; use Ada.Text_IO;  \nwith Ada.Exceptions; use Ada.Exceptions;  \nwith Ada.Calendar; use Ada.Calendar;  \nwith Ada.Command_Line;  \nwith Expressions.File; use Expressions.File;  \nwith Exceptions.Arguments; use Exceptions.Arguments;  \nwith T_Buffer;  \nwith Gsat_System;  \nwith Constants;  \nwith Visitor;  \n \nprocedure Gsat is\n \n   package CLI renames Ada.Command_Line;\n   Code_Tokens : T_Buffer.Code_Buffer;\n   Non_Textual_Keywords : Constants.Keyword.Map;\n   --   Defined here so that It ought not to be re-Init at each file .\n   V_Parse : Visitor.Visitor_Parse;\n   V_Print : Visitor.Visitor_Print;\n \nbegin\n \nend Gsat;\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakutchi%2Fgsat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakutchi%2Fgsat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakutchi%2Fgsat/lists"}