{"id":29012166,"url":"https://github.com/liblouis/rewrite-louis","last_synced_at":"2025-08-22T23:17:08.945Z","repository":{"id":147567146,"uuid":"432227245","full_name":"liblouis/rewrite-louis","owner":"liblouis","description":"A liblouis table parser based on instaparse. Converts tables to Clojure data structures.","archived":false,"fork":false,"pushed_at":"2021-12-02T11:56:33.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-25T18:15:20.118Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liblouis.png","metadata":{"files":{"readme":"README.org","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,"zenodo":null}},"created_at":"2021-11-26T15:41:48.000Z","updated_at":"2021-12-02T11:56:36.000Z","dependencies_parsed_at":"2023-04-14T04:08:00.587Z","dependency_job_id":null,"html_url":"https://github.com/liblouis/rewrite-louis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/liblouis/rewrite-louis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liblouis%2Frewrite-louis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liblouis%2Frewrite-louis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liblouis%2Frewrite-louis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liblouis%2Frewrite-louis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liblouis","download_url":"https://codeload.github.com/liblouis/rewrite-louis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liblouis%2Frewrite-louis/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264343782,"owners_count":23593790,"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":[],"created_at":"2025-06-25T18:15:18.984Z","updated_at":"2025-07-08T20:32:35.716Z","avatar_url":"https://github.com/liblouis.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"* rewrite-louis\n\nAn experimental parser for liblouis tables based on [[https://github.com/engelberg/instaparse][instaparse]]. Given\na liblouis table the parser returns plain old Clojure data. This can\nbe used for example to rewrite the table into any other format.\n\n** Usage\n\n#+begin_src clojure\n   (require '[instaparse.core :as insta])\n   (def louis-parser (insta/parser (clojure.java.io/resource \"louis.bnf\")))\n   (louis-parser (slurp \"~/src/liblouis/tables/ar-ar-comp8.utb\"))\n#+end_src\n\nwhich will return\n\n#+begin_src clojure\n  [:table\n   [:comment \"afr#1#Afrikaans Uncontracted#za#Afrikaans onverkort\"]\n   ,,,\n   [:comment \" \u003chttp://www.gnu.org/licenses/\u003e.\"]\n   [:include \"en-ueb-g1.ctb\"]]\n#+end_src\n\n*** Command line\n\n#+begin_src shell\n  find ~/src/liblouis/tables -type f -print | grep -v -e '\\.dic' -e 'Makefile' -e 'maketablelist.sh' -e 'README' | sort | xargs lein run\n#+end_src\n\n** Status\n\nAs it stands the parser can parse probably around 95% of the tables in\nthe liblouis distribution. At the moment it has no support for\n\n- continuation lines (da-dk-g16-lit.ctb, da-dk-g26-lit.ctb, da-dk-g26l-lit.ctb)\n- huge tables cause a OutOfMemoryError (GC overhead limit exceeded)\n  (zh-chn.ctb, zhcn-g1.ctb, zhcn-g2.ctb, ko-chars.cti, zh-tw.ctb, etc)\n\n** Acknowledgements\n\nA lot of the [[https://github.com/liblouis/rewrite-louis/blob/main/resources/louis.bnf][EBNF grammar]] was basically re-used from [[https://github.com/liblouis/louis-parser][louis-parser]] and\nits liblouis table grammar definition in the form of [[https://en.wikipedia.org/wiki/Parsing_expression_grammar][Parsing\nexpression grammar]].\n\n** License\nCopyright © 2021 Swiss Library for the Blind, Visually Impaired and Print Disabled\n\nThis program and the accompanying materials are made available under\nthe terms of the Eclipse Public License 2.0 which is available at\nhttp://www.eclipse.org/legal/epl-2.0.\n\nThis Source Code may also be made available under the following\nSecondary Licenses when the conditions for such availability set forth\nin the Eclipse Public License, v. 2.0 are satisfied: GNU General\nPublic License as published by the Free Software Foundation, either\nversion 2 of the License, or (at your option) any later version, with\nthe GNU Classpath Exception which is available at\nhttps://www.gnu.org/software/classpath/license.html.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliblouis%2Frewrite-louis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliblouis%2Frewrite-louis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliblouis%2Frewrite-louis/lists"}