{"id":17954327,"url":"https://github.com/veler/bazic","last_synced_at":"2025-03-25T00:31:56.696Z","repository":{"id":87945630,"uuid":"143442335","full_name":"veler/BaZic","owner":"veler","description":"Homemade procedural object-oriented semi-dynamic typed interpreted or compiled programming language","archived":false,"fork":false,"pushed_at":"2018-09-24T14:15:16.000Z","size":1032,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-19T05:55:15.215Z","etag":null,"topics":["abstract-syntax-tree","codegeneration","compilation","compiler","interpreter","lexer","parser","scripting","syntax","syntax-tree"],"latest_commit_sha":null,"homepage":"","language":"C#","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/veler.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":"2018-08-03T15:13:11.000Z","updated_at":"2023-07-07T13:57:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"4e3a0624-0b7c-4f05-b505-793f03278da6","html_url":"https://github.com/veler/BaZic","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/veler%2FBaZic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veler%2FBaZic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veler%2FBaZic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veler%2FBaZic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/veler","download_url":"https://codeload.github.com/veler/BaZic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245377921,"owners_count":20605374,"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":["abstract-syntax-tree","codegeneration","compilation","compiler","interpreter","lexer","parser","scripting","syntax","syntax-tree"],"created_at":"2024-10-29T10:13:14.345Z","updated_at":"2025-03-25T00:31:56.676Z","avatar_url":"https://github.com/veler.png","language":"C#","readme":"# Introduction\n\nThis repository provides an interpreter for a homemade `procedural object-oriented semi-dynamic typed` programming language, called `BaZic`.\nMade entirely in C#, this was initially a project designed to learn how to make a programming language, from the `lexer` to the `interpreter` with a `parser` and `optimizer` in the middle.\n\n# Downloads\n\nBaZic is available as [NuGet package](https://www.nuget.org/packages/BaZic/). Usage details, documentation and more can be found below.\n\n# Documentation\n\n## BaZic Language\n\n* [Learn about the BaZic language](/Docs/BaZic.md)\n* [How to use the BaZic interpreter](/Docs/BaZic_Interpreter.md)\n\n```\nVARIABLE initialValue = 100\n\nEXTERN FUNCTION Main(args[])\n    RETURN FirstMethod(initialValue) # This must return 0.\nEND FUNCTION\n\nFUNCTION FirstMethod(num)\n    IF num \u003e 1 THEN\n        RETURN FirstMethod(num - 1)\n    END IF\n    RETURN num\nEND FUNCTION\n```\n\n## Technical Documentation\n\n* [Overview](/Docs/Technical_Overview.md)\n\n# Getting Started\n\n## Requirements\n\n1. Windows 7 SP1 or later, or Windows Server 2008 R2 SP1 or later.\n3. .NET Framework 4.7.1\n4. [KB4033342](http://support.microsoft.com/kb/4033342), [KB4041083](http://support.microsoft.com/kb/4041083) and [KB4049016](http://support.microsoft.com/kb/4049016).\n\nNote : BaZic is `not` compatible with Windows 8, 8.1 and 10 for ARM and is not compatible with Windows 10 \"S\". It is also not supported by .Net Core (yet?).\n\n## Installation \u0026 Run\n\nSimply run `BaZic.Sample.exe`.\n\n![Play](/Docs/Play.png)\n\n# Build and Test\n\n## Setup development environment\n\n### Requirements\n\n1. Windows 10 Pro or Enterprise.\n2. Visual Studio 2017 Pro or higher with the following features enabled :\n    * .NET Framework 4.7.1 SDK\n    * .NET Framework 4.7.1 targeting pack\n    * Git for Windows\n    * NuGet package manager\n    * Text Template Transformation\n    * Visual Studio SDK\n\t* Windows 10 SDK (10.0.10240.0)\n    * (optional) [T4 Toolbox](https://marketplace.visualstudio.com/items?itemName=OlegVSych.T4Toolbox)\n\n### Setup\n\nClone the repository [https://github.com/veler/BaZic](https://github.com/veler/BaZic).\n\nOpen the file [BaZic.sln](/BaZic.sln) in Visual Studio.\n\n## Build\n\nSeveral projects can be chosen as a startup project.\n* **Sources/BaZic.Sample** : This is the main application. By running the project, an application designed to try BaZic code show up.\n\nTo build the solution, it is recommended to keep the `Any CPU` mode enabled.\n\n## Test\n\nPress `F5` to run the startup project, or, in Visual Studio, go to `Test, Windows, Test Explorer` to run all the unit tests.\n\n# Third party libraries\n\n* [Roslyn](https://github.com/dotnet/roslyn) ([Apache License 2.0](https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)))\n\n# Contributing to BaZic\n\nContributions to BaZic are welcomed in the form of construcutive, reproducible bug reports, feature requests that align to the project's goals, or better still a PR that's accompanied with passing tests.\n\nIf you have general questions or feedback about using BaZic, PLEASE DON'T CREATE AN ISSUE AND CONTACT THE [AUTHOR](http://www.velersoftware.com/) ON HIS WEBSITE OR POST TO STACKOVERFLOW.\n\n## Bug Reports\n\nIf you're reporting a bug, please include a clear description of the issue, the version of BaZic you're using, and a set of clear repro steps.\n\nPlease remember that BaZic is a free and open-source project provided to the community with zero financial gain to the author(s). Any issues deemed to have a negative or arrogant tone will be closed without response.\n\n## Feature Requests\n\nThe BaZic language and its component are subject to evoluate and you can contribute to it. However, any new feature request, including performance improvment, must be discussed at least at a design-level in an Issue.\n\n# Licenses\n\n[MIT License](/LICENSE.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveler%2Fbazic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fveler%2Fbazic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveler%2Fbazic/lists"}