{"id":21269796,"url":"https://github.com/prashantrahul141/zspie","last_synced_at":"2025-06-24T10:06:38.794Z","repository":{"id":220188383,"uuid":"750986965","full_name":"prashantrahul141/zspie","owner":"prashantrahul141","description":" A fast, easy, dynamic programming language for beginners.","archived":false,"fork":false,"pushed_at":"2024-03-14T17:55:43.000Z","size":114,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-15T11:50:03.333Z","etag":null,"topics":["c","compiler","programming-language"],"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/prashantrahul141.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":"2024-01-31T18:00:13.000Z","updated_at":"2024-11-06T12:37:09.000Z","dependencies_parsed_at":"2025-01-22T02:22:53.481Z","dependency_job_id":"fa265be3-8190-4d1a-aa4c-38de818ff799","html_url":"https://github.com/prashantrahul141/zspie","commit_stats":null,"previous_names":["prashantrahul141/zspie"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/prashantrahul141/zspie","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prashantrahul141%2Fzspie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prashantrahul141%2Fzspie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prashantrahul141%2Fzspie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prashantrahul141%2Fzspie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prashantrahul141","download_url":"https://codeload.github.com/prashantrahul141/zspie/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prashantrahul141%2Fzspie/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261649838,"owners_count":23189747,"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":["c","compiler","programming-language"],"created_at":"2024-11-21T08:11:59.725Z","updated_at":"2025-06-24T10:06:38.749Z","avatar_url":"https://github.com/prashantrahul141.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zspie Lang\n\nZspie is a fast, easy, dynamic programming language for beginners. It has all the basic features most languages provide: expressions, variables, scopes, string, globals, if-else, for-loop, while-loop, functions. The compiler is written entirely in C which makes it really fast.\n\n## Building\n\nThe project uses Cmake as it's build system.\n\n#### Requirements:\n\n- A C compiler\n- [Git](https://git-scm.com/)\n- [Cmake](https://cmake.org/)\n- Platform specific build tools\n  - [Make](https://www.gnu.org/software/make/) (linux)\n  - [MS Visual Studio](https://visualstudio.microsoft.com/) (windows)\n  - [XCode](https://developer.apple.com/xcode/) (OSX)\n\n1. Clone the repo and cd into the project root directory.\n\n```sh\ngit clone https://github.com/prashantrahul141/zspie \u0026\u0026 cd zspie\n```\n\n2. Run cmake to create build files for your platform.\n\n```sh\ncmake\n```\n\nadditionally you can provide `-DCMAKE_BUILD_TYPE={configuration}` to build in `Debug`, `Release` configurations.\n\n3. Open/run your platform specific build files.\n\n- For Linux:\n  just run make\n\n```sh\nmake\n```\n\n- For windows:\n  Open Microsoft Visual Studio Solution file.\n\n- For OSX:\n  Open XCode Solution file.\n\n## Using the compiler\n\nYou can either use the live repl\n\n```sh\nzspie\n```\n\nor pass a `.zspie` file\n\n```sh\nzspie main.zspie\n```\n\n# Language documentation\n\n### File Extension\n\nZspie supports text files with `zspie` file extension.\nexample: `main.zspie`\n\n### Hello, world!\n\nA simple hello world program in Zspie:\n\n```python\nprint \"Hello, World!\";\n```\n\nSemi-colons at the end of every line is mandatory in Zspie.\n\n### Datatypes\n\nZspie has following datatypes\n\n#### Numbers\n\nThese can number literals which can be both integers and floating point numbers.\n\nexamples: `1`, `2.5`, `9`\n\n#### Strings\n\nThese are string literals defined inside `\"`\n\nexamples: `\"Zspie\"`, `\"Strings are easy\"`\n\n### Booleans\n\nThese are boolean literals which can be either `true` or `false`.\n\n### Null\n\nZspie has nulls, It can be defined using the `null` keyword. All uninitialized variables are given the value of `null`.\n\n### Operators.\n\nZspie has following operators:\n\n`=` - equals\n\n`-` - Unary negation\n\n`and` - logical AND\n\n`or` - logical OR\n\n`!` - logical NOT\n\n`+` - sum\n\n`-` - difference\n\n`*` - product\n\n`/` - division\n\n`==` - is equals\n\n`!=` - is not equals\n\n`\u003e` - is less than\n\n`\u003e=` - is less than or equals\n\n`\u003e` - is greater than\n\n`\u003e=` - is greater than or equals\n\n### Comments\n\nZspie has only one type of comment, single line comments, which can be defined using `//` at the beginning of a line.\n\n```c\n// This is a comment.\n// The Lexer completely ignores any line starting with //\n// The Whole line is ignored.\n```\n\n### Variables\n\nZspie has variables which can be defined using the `let` keyword without defining any data type, zspie can automatically detect datatype at runtime.\n\n```rust\nlet a; // default value is null if nothing is assigned.\nlet b = 2; // numbers: both integers\nlet c = 2.5; // and floats\nlet d = \"Strings are easy\"; // strings\nlet e = true; // booleans\n```\n\n### Scope\n\nZspie variables have scope like any other modern programming language.\n\n```rust\nlet a = 1;\n{\n    let a = 2;\n    print a; // 2\n}\nprint a; // 1\n```\n\n### Conditionals\n\nZspie has `if` `else` conditionals. It can be defined using the following syntax:\n\n```rust\nlet a = 1;\nif (a == 1) {\n    print \"A is infact 1\";\n} else {\n    print \"A is not 1\";\n}\n```\n\n### While loop\n\nwhile loops in zspie can be defined using the following syntax:\n\n```rust\nlet a = 10;\nwhile (a \u003e 1) {\n    print a;\n    a = a - 1;\n}\n```\n\n### For loops\n\nZspie has support for`for` loops (even though it is just syntatic sugar).\n\n```c\nfor(let i = 0; i \u003c 10; i = i + 1) {\n    print i;\n}\n```\n\n### Functions\n\nZspie have user defined functions, and ability to call them.\n\n#### Function declaration\n\nA function in zspie can be defined using the following syntax:\n\n```rust\nfn greet(name) {\n    print \"Hello \" + name;\n}\n```\n\n#### Calling functions\n\nA function can be called using the following syntax:\n\n```c\ngreet(\"Zspie\");\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprashantrahul141%2Fzspie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprashantrahul141%2Fzspie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprashantrahul141%2Fzspie/lists"}