{"id":28383637,"url":"https://github.com/spookyless/shortscript","last_synced_at":"2025-06-25T14:30:59.612Z","repository":{"id":238771141,"uuid":"791763292","full_name":"Spookyless/ShortScript","owner":"Spookyless","description":"Custom interpreted language focused on minimal syntax","archived":false,"fork":false,"pushed_at":"2024-06-14T13:43:07.000Z","size":932,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-30T07:36:27.916Z","etag":null,"topics":["antlr4","interpreted-programming-language","interpreter","shortscript"],"latest_commit_sha":null,"homepage":"https://shortscript.spookyless.net/","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/Spookyless.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":"2024-04-25T10:19:10.000Z","updated_at":"2024-06-15T11:41:09.000Z","dependencies_parsed_at":"2024-05-18T20:24:54.553Z","dependency_job_id":"ba18575a-06aa-4a1f-8122-fd665247c916","html_url":"https://github.com/Spookyless/ShortScript","commit_stats":null,"previous_names":["spookyless/shortscript"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Spookyless/ShortScript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spookyless%2FShortScript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spookyless%2FShortScript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spookyless%2FShortScript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spookyless%2FShortScript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Spookyless","download_url":"https://codeload.github.com/Spookyless/ShortScript/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spookyless%2FShortScript/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261891661,"owners_count":23225767,"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":["antlr4","interpreted-programming-language","interpreter","shortscript"],"created_at":"2025-05-30T06:47:33.328Z","updated_at":"2025-06-25T14:30:59.602Z","avatar_url":"https://github.com/Spookyless.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShortScript\n\nCustom interpreted language focused on minimal syntax\n\n## Language features\n- [x] interpreted\n- [ ] statically typed\n- [x] supports most common arithmetic and logic operations\n- [x] functions and QoL loops\n- [x] object-oriented\n- [ ] inheritance\n- [x] minimal syntax\n\n## Grammar\n\n[`ShortScript.g4`](./ShortScript.g4) contains the whole grammar of the language.\n\n## Technologies used\n- [ANTLR4](https://www.antlr.org/)\n- [ANTLR4 for Javascript](https://github.com/antlr/antlr4/blob/master/doc/javascript-target.md)\n- Other packages, listed in [package.json](./package.json)\n\n## IDE Features\n![image](https://github.com/Spookyless/ShortScript/assets/63966121/19792c50-50fb-409b-a1f8-5e54b322a43a)\n\n- Toolbar with following options:\n  - `Run code` - allows you to run your code\n  - `Auto run` - automatically runs the code if you're not typing\n  - Dropdown list allows you select sample programs\n- Syntax highlighting for ShortScript\n- Error highlighting when running the code\n\n## Example\n\nMore examples, for both grammar and working programs, can be found in [`examples`](./examples/) directory\n\n### Input\n```\nn f fib(n num){\n  if(num \u003c= 0){\n    r 0\n  }\n  \n  if(num == 1){\n    r 1\n  }\n\n  r fib(num - 1) + fib(num - 2) \n}\n  \nprint('Result: ' + fib(8))\n```\n\n### Output\n```\nResult: 21\n```\n\n### Parse tree\n![image](https://github.com/Spookyless/ShortScript/assets/63966121/3af59cfe-db6f-47ab-802c-a11371152003)\n\n\n## Running ShortScript IDE\n\n### Prerequisites\n\nTo build and run the interpreter, you need to have `antlr4` installed on your system and present on `PATH`. It is advised to follow [the official documentation](https://github.com/antlr/antlr4/blob/master/doc/getting-started.md).\n\nFor additional features (such us grammar testing), you also need to install `antlr4-tools`, using [the official documentation](https://github.com/antlr/antlr4-tools/blob/master/README.md).\n\nApplication requires NodeJS `\u003e=20.9.0` to run smoothly. Running ShortScript on other versions of Node might lead to errors.\n\n### Setup and building sources\n\n1. Clone the repository\n```shell\ngit clone https://github.com/Spookyless/ShortScript.git\ncd ShortScript\n```\n\n2. Install dependencies\n```shell\nnpm install\n```\n\n### Running the application\n\n4. Start the development server\n```shell\nnpm run dev\n```\n\n5. ...or, build the application and start the production version:\n```shell\nnpm build\nnpm start\n```\n\nNew tab in your default browser should open (usually on `localhost:3000`). When development server is ready, you'll have a full access to ShortScript IDE.\n\n## Testing\n\nAll tests suites can be launched using a single script:\n```shell\nnpm test\n```\n\nIf you want more granular control over what tests are run, you can execute specified stages (found in [`package.json`](./package.json)):\n```shell\nnpm run test:grammar\n```\n\nTest cases are located inside [`examples/grammar`](./examples/grammar) directory.\n\n## Authors\n\n- [@MBrosik](https://github.com/MBrosik)\n- [@Spookyless](https://github.com/Spookyless)\n- [@rubikon02](https://github.com/rubikon02)\n\n## License\n\nShortScript is licensed under MIT License, more information can be found in the [`LICENSE.md`](./LICENSE.md) file","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspookyless%2Fshortscript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspookyless%2Fshortscript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspookyless%2Fshortscript/lists"}