{"id":13783030,"url":"https://github.com/jks-liu/lisp-style-repl","last_synced_at":"2026-01-14T20:47:25.748Z","repository":{"id":146881365,"uuid":"9998253","full_name":"jks-liu/lisp-style-repl","owner":"jks-liu","description":"Simple lisp style command line interpreter (repl) especially for embedded system.","archived":false,"fork":false,"pushed_at":"2013-10-27T01:29:25.000Z","size":140,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-27T08:50:40.908Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/jks-liu.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}},"created_at":"2013-05-11T10:51:03.000Z","updated_at":"2018-07-30T15:57:15.000Z","dependencies_parsed_at":"2023-03-24T18:19:27.168Z","dependency_job_id":null,"html_url":"https://github.com/jks-liu/lisp-style-repl","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/jks-liu/lisp-style-repl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jks-liu%2Flisp-style-repl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jks-liu%2Flisp-style-repl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jks-liu%2Flisp-style-repl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jks-liu%2Flisp-style-repl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jks-liu","download_url":"https://codeload.github.com/jks-liu/lisp-style-repl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jks-liu%2Flisp-style-repl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434500,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-08-03T18:01:51.442Z","updated_at":"2026-01-14T20:47:25.729Z","avatar_url":"https://github.com/jks-liu.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"Lisp Style REPL\n===============\n\nSimple lisp style command line interpreter (REPL) especially for embedded system.\n\nThe key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"NOT RECOMMENDED\",  \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in [RFC 2119](http://tools.ietf.org/html/rfc2119).\n\nVersion number SHALL be compatible with [Semantic Versioning](http://semver.org/).\n\n## Acronym used in documents and source files\n- **REPL**: Read Evaluate Print \u0026 Loop\n- **CLI**: Command Line Interface\n\n## How to use\n```scheme\n;; Command MUST in one line\n;; Nested parentheses SHALL NOT be used\n(command arg0 arg1 ...)\n```\n\n### C APIs\n**standard**: C99\n\nAll extern function or variable SHALL in the namespace 'lsr\\_', 'Lsr\\_' OR 'LSR\\_' which is short for Lisp Style Repl.\n\nThe C APIs SHALL NOT reentrant. Which means it is not thread-safe.\n\n#### Built-in command\n```scheme\n;; All built-in command SHALL return 0 if success or 1 if fail.\n;; Except ($?) will return the same value as the last command\n;; \n;; Show last command return value\n($?)\n;; Show all commands and a brief introduction.\n(help)\n;; Show manual of a specific command.\n(man command)\n;; + - * / (TODO)\n(+ num0 num1 ...)\n(- num0 num1 ...) ; num0 - num1 - num2 - ...\n(* num0 num1 ...)\n(/ num0 num1 ...) ; num0 / num1 / num2 / ...\n```\n\n#### Initialize and add your own command\nYou will get a example in [test/](https://github.com/jks-liu/lisp-style-repl/tree/master/test) directory.\n\nA command named \"copyright\" MUST be implemented.\n\nA command including built-in command which return non-zero SHALL be considered a error, So the ($?) will return a error even it executed successfully.\n\nCommand return value MUST in range \\[0, 256\\), this range is [POSIX-compatible](http://en.wikipedia.org/wiki/Exit_status).\n\n#### Use C++ ?\nThere are something wrong c++\n - C++ did not define `restrict' \n - C++ had [different semantics with compound literals](http://gcc.gnu.org/onlinedocs/gcc/Compound-Literals.html)\n\n Please refer [test-cpp/](https://github.com/jks-liu/lisp-style-repl/tree/master/test-cpp) for details to fix errors. \n\n### Authentication \nTODO\n\n## License \nCopyright 2013 [jks Liu](http://jks-liu.github.io/). Some right reserved.\n\n**License**: BSD.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjks-liu%2Flisp-style-repl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjks-liu%2Flisp-style-repl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjks-liu%2Flisp-style-repl/lists"}