{"id":26897457,"url":"https://github.com/szktty/trompe","last_synced_at":"2025-08-23T14:36:56.897Z","repository":{"id":34609897,"uuid":"38558302","full_name":"szktty/trompe","owner":"szktty","description":"A strongly-typed handy scripting language with type inference","archived":false,"fork":false,"pushed_at":"2018-08-31T18:22:05.000Z","size":333,"stargazers_count":14,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-05-12T23:44:24.994Z","etag":null,"topics":["command-line-tool","scripting-language","static-typing","strongly-typed","swift","type-inference"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/szktty.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}},"created_at":"2015-07-05T05:44:27.000Z","updated_at":"2024-08-13T03:30:04.000Z","dependencies_parsed_at":"2022-08-17T21:00:41.870Z","dependency_job_id":null,"html_url":"https://github.com/szktty/trompe","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/szktty/trompe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szktty%2Ftrompe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szktty%2Ftrompe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szktty%2Ftrompe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szktty%2Ftrompe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/szktty","download_url":"https://codeload.github.com/szktty/trompe/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szktty%2Ftrompe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271752126,"owners_count":24814750,"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-08-23T02:00:09.327Z","response_time":69,"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":["command-line-tool","scripting-language","static-typing","strongly-typed","swift","type-inference"],"created_at":"2025-04-01T04:42:34.959Z","updated_at":"2025-08-23T14:36:56.868Z","avatar_url":"https://github.com/szktty.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Trompe\n\nTrompe is a strongly-typed scripting language with type inference.\nThis is developed for handy scripting to clean up chores, which enables quick startup, interpretation (no need build configuration), and detecting type mismatch errors easily and quickly.\n\nCurrent version is pre-pre-pre-alpha. See examples/ for more detail.\n\n## License\n\nTrompe is licensed under the Apache License, Version 2.0.\n\n## Requirements\n\n- Go 1.10+\n- Antlr 4.7.1+\n\n## Build\n\n```\n$ make\n```\n\n## Grammar\n\n### Comments\n\n```\n-- comment end of line\n```\n\n### Unit\n\n```\n()\n```\n\n### Boolean\n\n```\ntrue\nfalse\n```\n\n### Integers\n\n```\n12345\n```\n\n### Floating-Point Numbers\n\n```\n123.45\n0e10\n```\n\n### Strings\n\n```\n\"hello, world!\"\n```\n\n### Lists\n\n```\n[]\n[1, 2, 3]\n```\n\n### Tuple\n\n```\n(1, 2, 3)\n```\n\n### Closure\n\n### Calling Functions\n\n```\nf()\nf(1, 2 , 3)\n```\n\n### Block\n\n```\ndo\n  ...\nend\n```\n\n### Variable Bindings\n\n```\nlet x = 1\n```\n\n### Defining Functions\n\n```\ndef f(x) \n  x + 1\nend\n```\n\n### Conditions\n\n```\nif n == 0 then\n  show(\"zero\")\nelse \n  show(\"other\")\nend\n```\n\n### Loop\n\n```\nfor i in 1..15 do\n  show(i)\nend\n```\n\n### Pattern Matching\n\n```\ncase i do\nwhen 0 then \"0\"\nwhen 1 then \"1\"\nwhen 2 then \"2\"\nwhen _ then \"_\"\nend\n```\n\n### Type Annotations\n\n# TODO\n\n- Library\n- Partial application\n- Records\n- Variants\n- References and dereferences\n- Operator definition\n- Exception handling\n- Modules and traits\n- Tail call optimization\n\n## Author\n\nSUZUKI Tetsuya (tetsuya.suzuki@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszktty%2Ftrompe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fszktty%2Ftrompe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszktty%2Ftrompe/lists"}