{"id":15414442,"url":"https://github.com/crutchcorn/the-lovely-language","last_synced_at":"2025-04-19T12:13:05.975Z","repository":{"id":182479242,"uuid":"668549840","full_name":"crutchcorn/the-lovely-language","owner":"crutchcorn","description":"💖 An experimental homegrown coding language.","archived":false,"fork":false,"pushed_at":"2023-07-20T06:40:33.000Z","size":67,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-25T13:14:46.340Z","etag":null,"topics":["coding-language","compiler","home-grown","language","lexer","parser"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/crutchcorn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2023-07-20T04:37:34.000Z","updated_at":"2024-11-28T02:55:04.000Z","dependencies_parsed_at":"2023-07-24T23:46:38.288Z","dependency_job_id":null,"html_url":"https://github.com/crutchcorn/the-lovely-language","commit_stats":{"total_commits":11,"total_committers":1,"mean_commits":11.0,"dds":0.0,"last_synced_commit":"15b62dc2233207090248cc4621334bb8a1bd7a35"},"previous_names":["crutchcorn/the-lovely-language"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crutchcorn%2Fthe-lovely-language","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crutchcorn%2Fthe-lovely-language/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crutchcorn%2Fthe-lovely-language/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crutchcorn%2Fthe-lovely-language/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crutchcorn","download_url":"https://codeload.github.com/crutchcorn/the-lovely-language/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231566654,"owners_count":18393562,"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":["coding-language","compiler","home-grown","language","lexer","parser"],"created_at":"2024-10-01T17:03:29.521Z","updated_at":"2024-12-27T23:31:04.304Z","avatar_url":"https://github.com/crutchcorn.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1\u003eThe Lovely Language\u003c/h1\u003e\n\n\u003ca href=\"https://joypixels.com/profiles/emoji/sparkling-heart\"\u003e\n  \u003cimg\n    height=\"80\"\n    width=\"80\"\n    alt=\"playground slide\"\n    src=\"./other/sparkling-heart.png\"\n  /\u003e\n\u003c/a\u003e\n\n\u003cp\u003eAn experimental homegrown coding language.\u003c/p\u003e\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/crutchcorn/the-lovely-language/build.yml?branch=main)](https://github.com/crutchcorn/the-lovely-language/actions/workflows/build.yml?query=branch%3Amain)\n[![Test Status](https://img.shields.io/github/actions/workflow/status/crutchcorn/the-lovely-language/test.yml?branch=main\u0026label=tests)](https://github.com/crutchcorn/the-lovely-language/actions/workflows/test.yml?query=branch%3Amain)\n[![license](https://badgen.now.sh/badge/license/MIT)](./LICENSE.md)\n\n\u003c/div\u003e\n\nThe goals of this project are:\n\n- Fully homegrown\n- No dependencies\n- Start with lexer and parser\n  - No runtime or compiler (yet)\n- Static typings\n  - No runtime or build-time type checking (yet)\n\n## Syntax\n\n```shell\ninfer Test = 0 + 1 + 2;\ninfer Other = 0;\n```\n\nOutputs the following AST:\n\n```json\n{\n  \"type\": \"Program\",\n  \"body\": [\n    {\n      \"type\": \"InferStatement\",\n      \"identifier\": {\n        \"type\": \"Identifier\",\n        \"val\": \"Test\"\n      },\n      \"value\": {\n        \"type\": \"AddStatement\",\n        \"left\": {\n          \"type\": \"Number\",\n          \"val\": \"0\"\n        },\n        \"right\": {\n          \"type\": \"AddStatement\",\n          \"left\": {\n            \"type\": \"Number\",\n            \"val\": \"1\"\n          },\n          \"right\": {\n            \"type\": \"Number\",\n            \"val\": \"2\"\n          }\n        }\n      }\n    },\n    {\n      \"type\": \"InferStatement\",\n      \"identifier\": {\n        \"type\": \"Identifier\",\n        \"val\": \"Test\"\n      },\n      \"value\": {\n        \"type\": \"Number\",\n        \"val\": \"0\"\n      }\n    }\n  ]\n}\n```\n\n\u003e This project is currently held together by ducktape and string. I've never built a lexer, parser, or compiler before.\n\u003e\n\u003e I'm learning as I go. I'm sure there are many things I'm doing wrong. I'm open to feedback.\n\u003e\n\u003e I'm also intentionally taking the slow route at times and not referencing existing implementation or documentation at this time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrutchcorn%2Fthe-lovely-language","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrutchcorn%2Fthe-lovely-language","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrutchcorn%2Fthe-lovely-language/lists"}