{"id":17797522,"url":"https://github.com/wolfadex/many-lox","last_synced_at":"2025-04-02T03:21:32.920Z","repository":{"id":106162029,"uuid":"500900512","full_name":"wolfadex/many-lox","owner":"wolfadex","description":"Many implementations of https://craftinginterpreters.com","archived":false,"fork":false,"pushed_at":"2022-06-24T13:43:00.000Z","size":31,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-07T18:15:03.132Z","etag":null,"topics":["programming-language","programming-language-development","programming-languages"],"latest_commit_sha":null,"homepage":"","language":"Elm","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/wolfadex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-06-07T15:35:49.000Z","updated_at":"2023-12-03T21:29:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"c6ec97dd-df59-4409-944d-72340c529f6b","html_url":"https://github.com/wolfadex/many-lox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfadex%2Fmany-lox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfadex%2Fmany-lox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfadex%2Fmany-lox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfadex%2Fmany-lox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wolfadex","download_url":"https://codeload.github.com/wolfadex/many-lox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246747976,"owners_count":20827243,"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":["programming-language","programming-language-development","programming-languages"],"created_at":"2024-10-27T11:56:13.447Z","updated_at":"2025-04-02T03:21:32.894Z","avatar_url":"https://github.com/wolfadex.png","language":"Elm","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Many Lox\n\nThis repo is a collection of my implementations of the Lox interpreter from the book [Crafting Interpreters](https://craftinginterpreters.com/), _by Bob Nystrom_.\n\nI don't know if I will complete any of the implementations, but I want to attempt to implement it in as many languages as possible to be able to compare the languages across each step of the process, and with the hopes that it makes it easier for anyone looking to build their own interpreter to have a point of reference for starting.\n\n| Legend            |     |\n| ----------------- | --- |\n| In Progress       | 🚧  |\n| Complete          | ✅  |\n| Stuck / Need Help | ⚠️  |\n\n### Tree-Walk Interpreter\n\nFull recoded [playlist on YouTube](https://www.youtube.com/playlist?list=PLE5w5BWqFa7DtnvSt3luu92YYWQxkMLrp).\n\n| Phase / Chapter        | Elm ([elm-lox](./elm-lox/))                    | Haskell ([haskell-lox](./haskell-lox))         |\n| ---------------------- | ---------------------------------------------- | ---------------------------------------------- |\n| Scanning               | ✅ https://www.youtube.com/watch?v=dA10oUBGk0A | ✅ https://www.youtube.com/watch?v=ZVCcKUmwEtI |\n| Representing Code      |                                                |                                                |\n| Parsing Expressions    |                                                |                                                |\n| Evaluating Expressions |                                                |                                                |\n| Statements and State   |                                                |                                                |\n| Control Flow           |                                                |                                                |\n| Functions              |                                                |                                                |\n| Resolving and Binding  |                                                |                                                |\n| Classes                |                                                |                                                |\n| Inheritance            |                                                |                                                |\n\n### Bytecode Virtual Machine\n\nTBD\n\n## Notes\n\nWhen implementing the Scanner, use the `scanner_*.lox` files in the order:\n\n1. `scanner_minimal.lox`\n1. `scanner_with_operators.lox`\n1. `scanner_with_whitespace.lox`\n1. `scanner_with_comments.lox`\n1. `scanner_with_strings.lox`\n1. `scanner_with_numbers.lox`\n1. `scanner_with_identifiers.lox`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolfadex%2Fmany-lox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwolfadex%2Fmany-lox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolfadex%2Fmany-lox/lists"}