{"id":16633128,"url":"https://github.com/yazaldefilimone/mini-interpreter","last_synced_at":"2025-03-11T21:43:27.570Z","repository":{"id":170440120,"uuid":"602489049","full_name":"yazaldefilimone/mini-interpreter","owner":"yazaldefilimone","description":"Crafting an interpreter with TypeScript.","archived":false,"fork":false,"pushed_at":"2023-05-28T19:45:53.000Z","size":95,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-08T05:51:42.816Z","etag":null,"topics":["compiler","interpreter","programming-language"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/yazaldefilimone.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}},"created_at":"2023-02-16T10:16:14.000Z","updated_at":"2023-09-23T14:32:33.000Z","dependencies_parsed_at":"2023-12-22T19:30:15.058Z","dependency_job_id":"667641e8-e7e3-4d6d-baee-35f15eaa9172","html_url":"https://github.com/yazaldefilimone/mini-interpreter","commit_stats":null,"previous_names":["yazaldefilimonepinto/mini-interpreter","yazaldefilimone/mini-interpreter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yazaldefilimone%2Fmini-interpreter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yazaldefilimone%2Fmini-interpreter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yazaldefilimone%2Fmini-interpreter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yazaldefilimone%2Fmini-interpreter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yazaldefilimone","download_url":"https://codeload.github.com/yazaldefilimone/mini-interpreter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243119669,"owners_count":20239319,"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":["compiler","interpreter","programming-language"],"created_at":"2024-10-12T05:12:11.637Z","updated_at":"2025-03-11T21:43:27.546Z","avatar_url":"https://github.com/yazaldefilimone.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# start\n\n```bash\ngit clone https://github.com/yazaldefilimonepinto/mini-interpreter.git\n\ncd mini-interpreter\n\nnpm i\n\n```\n```bash\n❯ npm run dev:file ./exemples/while.eva\n\n````\n\n# variable\n\n```cljs\n(var name \"Yazalde Filimone\")\n(print name)\n(set name \"Yazalde\")\n(print name)\n\n```\n\n# scope\n\n```cljs\n(var name \"Yazalde\")\n\n(begin\n (print name)\n (var last_name  \"Filimone\")\n (print last_name))\n\n(print name)\n(print last_name)\n\n```\n\n# lambda/arrow function(js)\n\nuse `def` to define function\n\n```cljs\n(def onClick (callback)\n  (begin\n   (var x 10)\n   (var y 20)\n   (callback (+ x y))))\n\n(onClick (lambda (data) (* data 10)))\n\n```\n\n```cljs\n ((lambda (x) (* x x)) 2)\n\n```\n\n# for loop\n\n```cljs\n(for (var x 0) (\u003c x 10)\n     (begin\n      (print x)\n      (set x (+ x 1))\n      x))\n```\n\n# while loop\n\n```cljs\n(var x 0)\n(while (\u003c x 10)\n     (begin\n      (print x)\n      (set x (+ x 1))\n      x))\n```\n\n# switch case\n\n```cljs\n(var n 10)\n(switch\n ((\u003c n 5) \"\u003c 5\")\n ((\u003e n 5) \"\u003e 5\")\n (else \"no\"))\n```\n\n# class\n\n```cljs\n      (class Math null\n        (begin\n          (def constructor (this x y)\n            (begin\n              (set (prop this x) x)\n              (set (prop this y) y)\n            )\n          )\n\n          (def calc (this)\n            (+ (prop this x) (prop this y))\n          )\n        ))\n\n      (var math (new Math 10 20))\n\n      ((prop math calc) math)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyazaldefilimone%2Fmini-interpreter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyazaldefilimone%2Fmini-interpreter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyazaldefilimone%2Fmini-interpreter/lists"}