{"id":15524531,"url":"https://github.com/sergeyklay/bnf-mode","last_synced_at":"2025-10-04T22:41:54.228Z","repository":{"id":45187167,"uuid":"175871232","full_name":"sergeyklay/bnf-mode","owner":"sergeyklay","description":"A GNU Emacs major mode for editing BNF grammars","archived":false,"fork":false,"pushed_at":"2024-09-15T21:18:39.000Z","size":306,"stargazers_count":46,"open_issues_count":1,"forks_count":8,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-11T21:15:58.210Z","etag":null,"topics":["backus-naur-form","backus-normal-form","bnf","editor-plugin","emacs","emacs-mode","emacs-package","grammar","hacktoberfest","major-mode"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sergeyklay.png","metadata":{"files":{"readme":"README.org","changelog":"NEWS","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":"2019-03-15T18:21:02.000Z","updated_at":"2024-12-31T10:25:53.000Z","dependencies_parsed_at":"2025-05-10T18:46:12.673Z","dependency_job_id":null,"html_url":"https://github.com/sergeyklay/bnf-mode","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/sergeyklay/bnf-mode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeyklay%2Fbnf-mode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeyklay%2Fbnf-mode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeyklay%2Fbnf-mode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeyklay%2Fbnf-mode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sergeyklay","download_url":"https://codeload.github.com/sergeyklay/bnf-mode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergeyklay%2Fbnf-mode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278386120,"owners_count":25978109,"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-10-04T02:00:05.491Z","response_time":63,"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":["backus-naur-form","backus-normal-form","bnf","editor-plugin","emacs","emacs-mode","emacs-package","grammar","hacktoberfest","major-mode"],"created_at":"2024-10-02T10:51:35.302Z","updated_at":"2025-10-04T22:41:54.198Z","avatar_url":"https://github.com/sergeyklay.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"* BNF Mode for GNU Emacs\n\n[[https://www.gnu.org/licenses/gpl-3.0.txt][https://img.shields.io/badge/license-GPL_3-green.svg]]\n[[https://github.com/sergeyklay/bnf-mode/actions][https://github.com/sergeyklay/bnf-mode/workflows/build/badge.svg]]\n[[https://elpa.gnu.org/packages/bnf-mode.html][https://elpa.gnu.org/packages/bnf-mode.svg]]\n[[https://melpa.org/#/bnf-mode][https://melpa.org/packages/bnf-mode-badge.svg]]\n[[https://stable.melpa.org/#/bnf-mode][https://stable.melpa.org/packages/bnf-mode-badge.svg]]\n\nA GNU Emacs major mode for editing BNF grammars.\n\n#+begin_quote\n“Precise language is not the problem.  Clear language is the problem.”\n\nRichard Feynman\n#+end_quote\n\nCurrently provides basic syntax and font-locking for BNF files.  BNF notation is\nsupported exactly form as it was first announced in the ALGOL 60 report.\nEBNF and ABNF are not supported but their implementation is planned in the near\nfuture.\n\nWhen developing this mode, the following documents were taken into account:\n\n- [[https://www.masswerk.at/algol60/report.htm][Revised Report on the Algorithmic Language Algol 60]]\n- [[https://tools.ietf.org/html/rfc822][RFC822]]: Standard for ARPA Internet Text Messages\n- [[https://tools.ietf.org/html/rfc5234][RFC5234]]: Augmented BNF for Syntax Specifications: ABNF\n- [[https://tools.ietf.org/html/rfc7405][RFC7405]]: Case-Sensitive String Support in ABNF\n\n** Features\n\n- Basic syntax definition\n- Syntax highlighting\n\n** Installation\n\nThe current version of BNF Mode known to work with GNU Emacs 27.1 and\nlater.  It may still function with older versions of Emacs, or with\nother flavors of Emacs (e.g. XEmacs) but this is /not/ guaranteed.  Bug\nreports for problems related to using this version of BNF Mode with\nolder versions of Emacs will most like not be addressed.\n\nThe master of all the material is the Git repository at\nhttps://github.com/sergeyklay/bnf-mode .\n\nNOTE: The ~main~ branch will always contain the latest unstable version.\nIf you wish to check older versions or formal, tagged release, please switch\nto the relevant [[https://github.com/sergeyklay/bnf-mode/tags][tag]].\n\nThe recommended way is to use [[https://elpa.gnu.org/][ELPA]], [[https://stable.melpa.org/][MELPA Stable]] or [[https://melpa.org/][MELPA]]. If either is in your\n=package-archives=, do:\n\n#+begin_src\nM-x package-install RET bnf-mode RET\n#+end_src\n\nTo learn on how to use any other installation methods refer to relevant\ndocumentation.\n\n** Usage\n\n*** Interactive Commands\n\n| Command (For the ~M-x~ prompt.) | Description                      |\n|---------------------------------+----------------------------------|\n| ~bnf-mode~                      | Switches to BNF Mode.            |\n\nBy default any file that matches the glob ~*.bnf~ is automatically opened\nin ~bnf-mode~.\n\n** Customization\n\nTo customize various options, use command as follows:\n\n#+begin_src\nM-x customize-group RET bnf RET\n#+end_src\n\n** Support\n\nFeel free to ask question or make suggestions in our [[https://github.com/sergeyklay/bnf-mode/issues][issue tracker]] .\n\n** Changes\n\nTo see what has changed in recent versions of BNF Mode see:\nhttps://github.com/sergeyklay/bnf-mode/blob/main/NEWS .\n\n** External Links\n\n- [[https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form][Wikipedia: Backus–Naur form]]\n- [[https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form][Wikipedia: Extended Backus–Naur form]]\n- [[https://en.wikipedia.org/wiki/Augmented_Backus%E2%80%93Naur_form][Wikipedia: Augmented Backus–Naur form]]\n- [[https://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf][ISO/IEC 14977: EBNF]]\n- [[https://www.ics.uci.edu/~pattis/ICS-33/lectures/ebnf.pdf][EBNF: A Notation to Describe Syntax]]\n\n** License\n\nBNF Mode is open source software licensed under the [[https://github.com/sergeyklay/bnf-mode/blob/main/LICENSE][GNU General Public Licence version 3]].\nCopyright © 2019, 2020, 2021, 2022, 2023, 2024 Free Software Foundation, Inc.\n\n*** Note On Copyright Years\n\nIn copyright notices where the copyright holder is the Free Software Foundation,\nthen where a range of years appears, this is an inclusive range that applies to\nevery year in the range.  For example: 2005-2008 represents the years 2005,\n2006, 2007, and 2008.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergeyklay%2Fbnf-mode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsergeyklay%2Fbnf-mode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergeyklay%2Fbnf-mode/lists"}