{"id":27195495,"url":"https://github.com/wild-queue/stella","last_synced_at":"2026-05-18T06:11:15.327Z","repository":{"id":156535414,"uuid":"629434675","full_name":"Wild-Queue/stella","owner":"Wild-Queue","description":"A tool for checking types in the stella functional programming language. The repository also contains tests to check if the tool works correctly","archived":false,"fork":false,"pushed_at":"2023-04-26T17:20:10.000Z","size":6131,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-04T19:36:57.020Z","etag":null,"topics":["bnfc","cmake","cpp","makefile"],"latest_commit_sha":null,"homepage":"","language":"C","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/Wild-Queue.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}},"created_at":"2023-04-18T10:00:04.000Z","updated_at":"2023-05-23T16:11:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"319f066f-5e9e-44a9-aaa6-5aa92f3b3c07","html_url":"https://github.com/Wild-Queue/stella","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Wild-Queue/stella","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wild-Queue%2Fstella","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wild-Queue%2Fstella/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wild-Queue%2Fstella/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wild-Queue%2Fstella/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wild-Queue","download_url":"https://codeload.github.com/Wild-Queue/stella/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wild-Queue%2Fstella/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33167431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T05:43:36.989Z","status":"ssl_error","status_checked_at":"2026-05-18T05:43:19.133Z","response_time":71,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bnfc","cmake","cpp","makefile"],"created_at":"2025-04-09T19:46:31.711Z","updated_at":"2026-05-18T06:11:15.287Z","avatar_url":"https://github.com/Wild-Queue.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stella implementation in C++ (template)\n\nThis is the skeleton for a C++ implementation of the Stella programming language interpreter.\n\n![Screenshot from VS Code.](images/vscode-demo.png)\n\n### Requirements\n\nThis was tested with:\n\n* make 4.1\n* BNFC 2.9.4.1\n* flex 2.6.4\n* bison 3.8.2\n* g++ 11.2.0\n* cmake 3.23.0-rc5\n* ninja 1.8.2\n\n### Building and running the interpreter\n\n1. To build the interpreter run:\n\n```sh\nmake\n```\n\nThis typically involves running BNFC converter, and compiling the project in the chosen language,\nresulting in an executable `build/stella-interpreter` that you can now use to type check and interpret programs.\n\n2. Now, to run the type checker:\n\n```sh\nmake typecheck\n```\n\nThis starts the type checker waiting to input the program. Note that it will accept input until it encounters the end of file (Ctrl+D).\n\n3. To run the interpreter:\n\n```sh\nmake interpret \u003cfilename\u003e\n```\n\nThis starts the interpreter reading the program from the input file and waiting for the input of the argument for the _main_ function.\n\n4. To run tests:\n\n```sh\nmake test\n```\n\nThis will run the tests specified in [`CMakeLists.txt`](CMakeLists.txt).\n\n### Code Structure\n\n[Interpret.cpp](src/Interpret.cpp) is the main file that contains the logic for reading a program and its arguments (if you run an interpreter).\n\n[`TypeCheck.h`](src/TypeCheck.h) and [`TypeCheck.cpp`](src/TypeCheck.cpp) files assume the content of the type checker logic. Currently they contain only prototypes of the functions for further implementation.\nThe input program from the interpreter is passed directly to the `typecheckProgram` function.\n\n[`Eval.h`](src/Eval.cpp) and [`Eval.cpp`](src/Eval.cpp) files similarly imply the logic of interpreting the program. They also contain only prototypes. The input program (read from the file) and the argument (entered after the interpreter starts) are passed directly to the `evalMainWith` function.\n\n### How to develop\n\nYou must extend the existing files to perform the required actions.\nIf you need to add additional files, don't forget to add them to the [CMake file](CMakeLists.txt) (in the SRCS variable) to include them in the build process. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwild-queue%2Fstella","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwild-queue%2Fstella","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwild-queue%2Fstella/lists"}