{"id":27125026,"url":"https://github.com/schryzon/jaksel-cpp","last_synced_at":"2025-04-09T22:58:23.711Z","repository":{"id":286403099,"uuid":"961297003","full_name":"Schryzon/jaksel-cpp","owner":"Schryzon","description":"Convert Jaksel into C++ code","archived":false,"fork":false,"pushed_at":"2025-04-07T04:31:07.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"literally","last_synced_at":"2025-04-09T22:58:14.439Z","etag":null,"topics":["cpp","funny","indonesia","jaksel","joke"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Schryzon.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":"2025-04-06T07:51:27.000Z","updated_at":"2025-04-07T04:31:11.000Z","dependencies_parsed_at":"2025-04-06T09:32:57.572Z","dependency_job_id":null,"html_url":"https://github.com/Schryzon/jaksel-cpp","commit_stats":null,"previous_names":["schryzon/jaksel-cpp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Schryzon%2Fjaksel-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Schryzon%2Fjaksel-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Schryzon%2Fjaksel-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Schryzon%2Fjaksel-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Schryzon","download_url":"https://codeload.github.com/Schryzon/jaksel-cpp/tar.gz/refs/heads/literally","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248125572,"owners_count":21051767,"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":["cpp","funny","indonesia","jaksel","joke"],"created_at":"2025-04-07T14:28:58.927Z","updated_at":"2025-04-09T22:58:23.686Z","avatar_url":"https://github.com/Schryzon.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jaksel-C++\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://repository-images.githubusercontent.com/961297003/f8a1d42f-aa97-41f2-a3b6-ac3e50134d1c\"\u003e\n    \u003cimg src=\"https://repository-images.githubusercontent.com/961297003/f8a1d42f-aa97-41f2-a3b6-ac3e50134d1c\" alt=\"Repository Thumbnail\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nA creative C++ interpreter that converts \"Jaksel slang\" into valid C++ code. This project takes custom `.jaksel` files written in a playful, slang-inspired language and translates them into standard C++ code. It then automatically compiles and runs the generated code, allowing for a seamless and hidden-in-plain-sight coding experience.\n\n## Features\n\n- **Jaksel Slang Interpreter:** Translates custom slang (e.g., \"which is\", \"spill\", \"begitulah\") into valid C++ tokens.\n- **File Conversion:** Reads from a `.jaksel` file, converts each line into C++ code, and writes the result to a standard `.cpp` file.\n- **Automated Compilation:** Automatically compiles the generated C++ code using g++.\n- **Creative Syntax:** Designed with fun, non-standard keywords to give a fresh twist on traditional programming.\n- **Docker Support:** The project has been successfully built and tested using Docker for a reproducible build environment.\n\n## Getting Started\n\n### Prerequisites\n\n- **C++ Compiler:** Make sure you have g++ installed and added to your system's PATH (if building locally).\n- **Git:** For cloning the repository and version control.\n- **Docker:** To build and run the interpreter in a containerized environment.\n- **C++ Standard:** This project is built using C++17.\n\n### Installation\n\n#### Option 1: Building Locally\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/Schryzon/jaksel-cpp.git\n   cd jaksel-cpp\n   ```\n2. Build the project by following the instructions in the usage section below.\n\n#### Option 2: Building with Docker\n\n1. **Install Docker:**  \n   - [Docker Desktop for Windows/Mac](https://www.docker.com/products/docker-desktop)  \n   - For Linux, follow your distribution’s Docker installation guide.\n\n2. **Build the Docker Image:**\n   ```bash\n   docker build -t jaksel-cpp .\n   ```\n3. **Run the Docker Container:**\n   ```bash\n   docker run -it --rm jaksel-cpp\n   ```\n   This command starts the interpreter in an isolated environment.\n\n## Usage\n\n1. **Prepare your `.jaksel` file:**\n\n   Create a file named `main.jaksel` in the repository root and add your Jaksel slang code. For example:\n\n   ```plaintext\n   # Example Jaksel Code\n   gimme \u003ciostream\u003e\n   yang std;\n   int a is 12 which is\n   spill \"The value of a is: \" then a enter\n   begitulah 0 which is\n   ```\n\n2. **Convert and Compile (Locally):**\n\n   Run the main interpreter program to convert your `.jaksel` file to standard C++ and compile it automatically:\n\n   ```bash\n   ./JakselInterpreter\n   ```\n\n   This command will:\n   - Read the `main.jaksel` file.\n   - Generate an `output.cpp` file with the converted code.\n   - Compile `output.cpp` into an executable (`output.exe` on Windows or `output` on Linux/macOS).\n   - Run the generated executable and display the program output.\n\n3. **Run the Executable Manually (Optional):**\n\n   If needed, you can run the generated executable manually:\n   - On Windows:\n     ```bash\n     output.exe\n     ```\n   - On Linux/macOS:\n     ```bash\n     ./output\n     ```\n\n4. **Convert and Compile (Docker):**\n\n   If using Docker (recommended for a reproducible build):\n   - Follow the Docker build instructions above.\n   - Running the container will automatically execute your interpreter, which reads `main.jaksel`, converts it, compiles it, and runs the resulting executable.\n\n## Jaksel Slang Keywords\n\nThe interpreter uses a predefined mapping of Jaksel slang to standard C++ tokens. Here are some examples:\n\n| Jaksel Slang             | C++ Translation      |\n|--------------------------|----------------------|\n| \"which is\"               | `;`                  |\n| \"spill\"                  | `std::cout \u003c\u003c`       |\n| \"begitulah\"              | `return`             |\n| \"kalo\"                   | `if`                 |\n| \"gitu\"                   | `else`               |\n| \"nomer\"                  | `int`                |\n| \"nonbinary\"              | `bool`               |\n| \"selama\"                 | `while`              |\n| \"plus\"                   | `+`                  |\n| \"mines\"                  | `-`                  |\n| \"is\"                     | `=`                  |\n| \"enter\"                  | `std::endl`          |\n| \"start oi\"               | `{`                  |\n| \"thats literally it\"     | `}`                  |\n| \"mana woi\"               | `std::cin \u003e\u003e`        |\n| \"coba\"                   | `for`                |\n| \"gimme\"                  | `#include`           |\n| \"yang\"                   | `using namespace`    |\n| \"letter\"                 | `char`               |\n| \"sama\"                   | `==`                 |\n| \"ga ada\"/\"gak ada\"       | `nullptr`            |\n| \"gak\"                    | `!`                  |\n| \"floaty boi\"             | `float`              |\n| \"desimal\"                | `double`             |\n| \"then\"                   | `\u003c\u003c`                 |\n\nYou can expand or modify these mappings in the source code file `JakselMappings.cpp` as needed.\n\n## Contributing\n\nContributions are welcome! If you have ideas for more Jaksel slang keywords or improvements to the interpreter, feel free to fork the repository and submit a pull request.\n\n## License\n\nThis project is licensed under the **Creative Commons v1.0** License.\n\n## Acknowledgments\n\n- Inspired by creative approaches to language design and code transformation.\n- Although creative, the hilarious syntax rules are utterly diabolical 🤣.\n- Thanks to all contributors who help keep this project innovative and fun.\n\n#### Happy coding, may creativity continues flowing in every line of code!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschryzon%2Fjaksel-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschryzon%2Fjaksel-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschryzon%2Fjaksel-cpp/lists"}