{"repo":"Stepami/hydrascript","free":true,"listed":false,"github":"https://github.com/Stepami/hydrascript","clone":"git clone https://github.com/Stepami/hydrascript.git","description":"TypeScript & Go inspired small interpreted programming language written in C#. The interpreter built with DDD principles and Clean Architecture. Implementation powered by Source Generators","language":"C#","stars":96,"topics":["codegen","compiler","csharp","dotnet","interpreter","javascript","language","parsing","typechecker","typescript"],"license":"MIT","category":"dev-tools","readme_excerpt":"HydraScript Installation Interpreter executable is built during release for 3 following platforms: - Windows (x64) - macOS (arm64 Apple Silicon) - Linux (x64) Download hydrascript executable on the corresponding release page. The latest release is available here. Alternatively you can consume HydraScript as dotnet tool: NuGet link: https://www.nuget.org/packages/hydrascript Project History It started as a bachelor thesis \"Extended JavaScript Subset\". Now it's named \"HydraScript\", because as I fix one bug another occurs. I took ECMA-262 standard as a basis and made: - Lexical structure - Grammar Working samples can be found here. I use them for integration tests. Project Goals 1. Partially implement JavaScript with objects and strong static structural typing, getting rid of such things as: constructor , class , interface 2. Publicly reverse engineer modern static analysis (type inference, forward refs, compile-time detection of the runtime errors, etc.) 3. Simplifying compilers construction domain with HydraScript source code 4. Gather clear and concise standard problem solutions and algorithm implementations (Lexer, Parser, CFG, SSA, DCE, etc.) Language docs Comments All comments are single-line: Typing The HydraScript has strong static structural typing. There are 5 primitive types: 1. number 2. boolean 3. string 4. null 5. void The other types can be grouped as such: - NullableType (type that allows ) - ObjectType (the type of object, obviously, and also is NullableType) - ","default_branch":null,"files":null,"tree":[],"storefront":"/r/Stepami","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Stepami/hydrascript/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}