{"id":16423070,"url":"https://github.com/kylepls/yamllang","last_synced_at":"2026-04-12T23:56:18.016Z","repository":{"id":131018553,"uuid":"100831296","full_name":"kylepls/YamlLang","owner":"kylepls","description":"A seamless programming language compliant with the YAML syntax.","archived":false,"fork":false,"pushed_at":"2020-09-24T20:46:34.000Z","size":14,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-24T22:55:05.645Z","etag":null,"topics":["antlr4","programming-language","yaml"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kylepls.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2017-08-20T01:33:39.000Z","updated_at":"2025-01-05T21:26:56.000Z","dependencies_parsed_at":"2023-05-25T12:00:21.875Z","dependency_job_id":null,"html_url":"https://github.com/kylepls/YamlLang","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kylepls/YamlLang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kylepls%2FYamlLang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kylepls%2FYamlLang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kylepls%2FYamlLang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kylepls%2FYamlLang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kylepls","download_url":"https://codeload.github.com/kylepls/YamlLang/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kylepls%2FYamlLang/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268338009,"owners_count":24234538,"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-08-02T02:00:12.353Z","response_time":74,"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":["antlr4","programming-language","yaml"],"created_at":"2024-10-11T07:38:45.767Z","updated_at":"2026-04-12T23:56:17.984Z","avatar_url":"https://github.com/kylepls.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YamlLang\n\nA terrible programming language built on top of the YAML syntax using Antlr4.\n\n### Code Examples\n\nVariables, loops, arrays, and functions:\n```yaml\nvalue: []\ni: 0\nwhile: i \u003c 10\ndo:\n  i: i + 1\n  value: [] \u003c- i\nPRINTLN: value\n```\n\n\u003e[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n \nEquality, conditionals, reassignment:\n\n```yaml\ni: 4\nif: i = 4\nthen:\n  i: i + 1\n  PRINTLN: i\nPRINTLN: \"Done\"\n```\n\n\u003e 5\n\u003e\n\u003e Done\n\n### Motivation\n\nAt the time of writing this (some time in 2017) I wanted to create some form of a programming language. \nYAML was obviously the go-to starting point for this project. \nFrom there, I worked backwards to create what is the most seamless programming language made to date.\n\n### A Short Explanation\n\nThis is all built on top of [Antlr4](https://www.antlr.org/). \nThe parser is generated from the grammar file [YAML.g4](/src/main/antlr/YAML.g4).\nOnce generated, the parser can be used to create an AST for a given input string. \nThe generated AST is then converted into the proper domain objects using an over-the-top visitor implementation in [Constructor](/src/main/java/in/kyle/yaml/Constructor.java)\nFinally, the returned [Function](/src/main/java/in/kyle/yaml/internal/Function.java) is evaluated using a [Scope](/src/main/java/in/kyle/yaml/internal/Scope.java) to hold the relevant execution context.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkylepls%2Fyamllang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkylepls%2Fyamllang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkylepls%2Fyamllang/lists"}