{"id":21493632,"url":"https://github.com/alienkevin/brace-lang","last_synced_at":"2025-07-23T13:33:50.434Z","repository":{"id":97740205,"uuid":"158089352","full_name":"AlienKevin/Brace-lang","owner":"AlienKevin","description":"A modern scripting language for TI-83 and TI-84 calculators","archived":false,"fork":false,"pushed_at":"2019-01-14T01:45:37.000Z","size":486,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-17T11:50:47.254Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/AlienKevin.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":"2018-11-18T13:58:27.000Z","updated_at":"2025-02-15T02:31:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"8790c263-bd78-488b-a0d0-33bedb8335a1","html_url":"https://github.com/AlienKevin/Brace-lang","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AlienKevin/Brace-lang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlienKevin%2FBrace-lang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlienKevin%2FBrace-lang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlienKevin%2FBrace-lang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlienKevin%2FBrace-lang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlienKevin","download_url":"https://codeload.github.com/AlienKevin/Brace-lang/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlienKevin%2FBrace-lang/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266689230,"owners_count":23969140,"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-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":[],"created_at":"2024-11-23T15:43:45.576Z","updated_at":"2025-07-23T13:33:50.417Z","avatar_url":"https://github.com/AlienKevin.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Brace\nBrace is a modern scripting language for TI-83 and TI-84 calculators. Brace is designed to make programming Texas Instrument calculators more easily and enjoyable.\n\u003cbr\u003e\u003cb\u003eWarning: This parser does not check for syntax errors, so be sure to follow the syntax rules listed in the features list carefully. It is recommended that you use Brace to write small programs shorter than 300 or so lines so that you can spot errors. Contribution is extremely welcome if anyone wants to write a parser for Brace :)\u003c/b\u003e\n\u003cbr\u003e\u003cbr\u003eHere's a screenshot of editing Brace in Sublime Text 3:\n\n\u003cimg src=\"https://github.com/AlienKevin/Brace-lang/blob/master/demo_images/Brace_editor_1.PNG\" width=\"374\" heigt=\"433.7\"\u003e\n\nHere's a list of useful features:\n1. modern syntax of curly braces `{` and `}` instead of clumsy `Then` and `End`\n2. arbitrarily nested `if`, `elif`, and `else`\n3. user-defined functions with parameters\n4. user-defined variables with friendly names\n5. local scopes within functions\n6. single and multi-line comments\n7. more commonly used `==` as equality operator instead of `=` in TI-Basic\n8. more commonly used `=` as assignment operator instead of weird `→` in TI-Basic\n9. boolean operators `\u0026\u0026` (and) and `||` (or)\n10. boolean values `true` and `false`\n11. Multiple output formats for TI calculators, online TI-Basic IDE SourceCoder, and plain text. Each format treats special characters differently\n\nAll of the upon features aim at making coding less stressful, tedious and buggy.\n\n## Installation\nIn the git repository, click \"Brace.jar\" and then click \"download\". After you downloaded the jar file, double click to execute it. If you cannot open the jar file, use command line to execut it. For Windows users, open cmd.exe, navigate to the directory where you stored the jar file and type `java.exe -jar Brace.jar`, then the Brace command line interface should appear.\n\n## Usage\nBrace.jar is a command line interface for you to convert a Brace file to TI-Basic file.\n\n### 1. Convert Brace to TI-Basic\nHere the demo of Brace CLI working in Windows 10:\n\n![Brace CLI convert command demo](https://raw.githubusercontent.com/AlienKevin/Brace-lang/master/demo_images/CLI_convert.PNG \"Brace CLI convert demo\")\nAfter you see the welcome message, type `convert` and hit ENTER. The prompt \"Enter Brace file address\" will show up. Enter your brace file address there. Then, the prompt \"Enter TI-Basic file address\" will show up. Enter your target TI-Basic file address (maybe empty an empty file or a file with content, ). All of the target TI-Basic file's contents will be replaced by the result of the conversion. After you finished conversion, type `exit` to exit the CLI.\n\n### 2. Make your life easier\n- `cd` command\nJust as you would in Windows/Unix command line, you can use `cd 'directory'` command to point to any directory. You can also use `cd ..` (two dots) to move back to the parent directory.\n![Brace CLI cd command demo](https://raw.githubusercontent.com/AlienKevin/Brace-lang/master/demo_images/CLI_cd.PNG \"Brace CLI cd command demo\")\nIn this example, I used the `cd` command to point to my working directory. Then I could just enter the names of the files I want to convert without the long directory names.\n\n- `store` command\nTo store the file addresses that you use very often, use the `store` command to make it easier to refer to them. \n![Brace CLI store command demo](https://raw.githubusercontent.com/AlienKevin/Brace-lang/master/demo_images/CLI_store.PNG \"Brace CLI store command demo\")\nIn this example, I named the file address for my Brace file \"braceTest\" and the assigned the address to it.\n\n- `back` command\nTo cancel any operation in the middle, use the `back` command.\n![Brace CLI back command](https://raw.githubusercontent.com/AlienKevin/Brace-lang/master/demo_images/CLI_back.PNG \"Brace CLI back command\")\nIn this example, I first wanted to convert a file but I forgot the file address and wanted to cancel the operation. I just entered `back` to cancel the `convert`.\n\n## License\nThis project is licensed under the terms of the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falienkevin%2Fbrace-lang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falienkevin%2Fbrace-lang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falienkevin%2Fbrace-lang/lists"}