{"id":23275523,"url":"https://github.com/akshaywarrier/jesse","last_synced_at":"2025-10-14T09:33:59.167Z","repository":{"id":165574962,"uuid":"596686022","full_name":"AkshayWarrier/jesse","owner":"AkshayWarrier","description":"A programming language for meth heads.","archived":false,"fork":false,"pushed_at":"2023-05-17T07:41:46.000Z","size":71,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-23T05:34:16.478Z","etag":null,"topics":["breaking-bad","crafting-interpreters","lox","programming-language","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AkshayWarrier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-02-02T18:09:05.000Z","updated_at":"2025-08-29T02:43:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"7ac8b362-f1a6-48b3-bde9-005bd163d489","html_url":"https://github.com/AkshayWarrier/jesse","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AkshayWarrier/jesse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshayWarrier%2Fjesse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshayWarrier%2Fjesse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshayWarrier%2Fjesse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshayWarrier%2Fjesse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AkshayWarrier","download_url":"https://codeload.github.com/AkshayWarrier/jesse/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshayWarrier%2Fjesse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018630,"owners_count":26086404,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["breaking-bad","crafting-interpreters","lox","programming-language","python"],"created_at":"2024-12-19T21:14:47.153Z","updated_at":"2025-10-14T09:33:59.127Z","avatar_url":"https://github.com/AkshayWarrier.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jesse\nA programming language for meth heads\n\n## Description\nDo you love programming? Are you a Breaking Bad fan? You will love jesse.\n\njesse is an adaptation of the Lox programming language from the book [Crafting Interpreters](http://www.craftinginterpreters.com/). jesse is almost identical to Lox in structure but makes use of Breaking Bad references as keywords and is implemented in Python.\n\n## Installation\n- Clone the repo\n```\ngit clone https://github.com/AkshayWarrier/jesse\ncd jesse\n```\n- Find the `jesse` script in the folder and make it an executable\n```\nchmod u+x jesse\n```\n- Create `.jesse` file and run it using the script\n```\n./jesse Example.jesse\n```\n\n## Documentation\n\n### Print Statement\nLet's start with printing something on to the screen. To print \"heisenberg\" on to the screen use\n```\nsay my name \"heisenberg\";\n```\nAll statements have to end with a `;` otherwise jesse won't be very happy.  A syntax error gets thrown\n```\nyeah mr white! yeah science!\nsay my name \"heisenberg\"\n                        ^\n[Error 1] mr white where's my semicolon yo?\n```\n\n### Variables and Data Types\njesse has a few datatypes one which you have already seen i.e strings. jesse also has another datatype which is uh meth. Meth is always weighed in grams, therefore all meth quantities must be appended with \"gm\".\nNow let's try creating some variables that store meth. To do so use the keyword `cook`\n```\ncook meth1 = 5gm;\ncook meth2 = 10gm;\ncook meth3 = 2.5gm;\n\nsay my name (meth1*meth2) + meth3;\n```\nLike you would expect, you can perform all your favourite arthmetic operations on meth.\n\nNull values can be pretty dangerous sometimes therefore they are aptly called `i am the danger`. jesse also supports booleans which are denoted by `cartel` and `dea` for true and false values respectively.\n\n```\n// Sets meth to i am the danger\ncook meth;\n\n// Prints cartel\nsay my name dea or cartel;\n```\n\n###  Control Flow\njesse supports if else conditions which is almost identical to other languages\n```\ncook meth = 1000gm;\n\njesse if (meth \u003e= 1000gm) {\n    say my name \"We are rich baby!\";\n} else {\n    say my name \"We need to cook more meth!\";\n}\n```\n\nOn the topic of conditionals, jesse also allows for ternary expressions like some languages\n```\ncook my_meth = 5gm;\n\nsay my name (my_meth \u003e 5gm) ? \"More than 5gm of meth\" \n                            : \"Less than 5gm of meth\";\n```\n\njesse supports while loops. To create a while loop use `the one who knocks` keyword. Here's a little program that creates a factorial amount of meth using while loops\n```\ncook fact_meth = 1gm;\ncook n_meth = 5gm;\n\nthe one who knocks (n_meth) {\n    fact_meth = fact_meth*n_meth;\n    n_meth = n_meth - 1gm;\n}\n\nsay my name fact_meth;\n```\n\nI was too lazy to implement for loops\n\n### Functions\nTo define a function,  use the ``better call`` keyword like so\n```\nbetter call saul (){\n    say my name \"Saul Goodman speedy justice for you!\";\n}\n// Call function\nsaul();\n```\n\nLike in any language, functions may or may not have return values and can take additional parameters as input to the function\n```\nbetter call sum(a, b) {\n    return (a + b);\n}\n\nsay my name sum(1gm, 2gm);\n```\n\nAnd what are functions without recursion? Here's a program to produce fibonacci amounts of meth\n```\nbetter call fibo(n) {\n    jesse if (n == 0gm or n == 1gm) return 1gm;\n    return fibo(n - 1gm) + fibo(n - 2gm);\n}\n\nsay my name fibo(5gm);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshaywarrier%2Fjesse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakshaywarrier%2Fjesse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshaywarrier%2Fjesse/lists"}