A GNU Emacs major mode for editing BNF grammars.
“Precise language is not the problem. Clear language is the problem.”
Richard Feynman
Currently provides basic syntax and font-locking for BNF files. BNF notation is supported exactly form as it was first announced in the ALGOL 60 report. EBNF and ABNF are not supported but in my plans for the near future.
When developing this mode, the following documents were taken into account:
- Revised Report on the Algorithmic Language Algol 60
- RFC822: Standard for ARPA Internet Text Messages
- RFC5234: Augmented BNF for Syntax Specifications: ABNF
- RFC7405: Case-Sensitive String Support in ABNF
- Basic syntax definition
- Syntax highlighting
Known to work with GNU Emacs 24.3 and later. BNF Mode may work with older versions of Emacs, or with other flavors of Emacs (e.g. XEmacs) but this is not guaranteed. Bug reports for problems related to using BNF Mode with older versions of Emacs will most like not be addressed.
The master of all the material is the Git repository at https://github.com/sergeyklay/bnf-mode .
NOTE: The master
branch will always contain the latest unstable version.
If you wish to check older versions or formal, tagged release, please switch
to the relevant tag.
The recommended way is to use ELPA, MELPA Stable or MELPA. If either is in your
package-archives
, do:
M-x package-install RET bnf-mode RET
To learn on how to use any other installation methods refer to relevant documentation.
Command (For the M-x prompt.) | Description |
---|---|
bnf-mode | Switches to BNF Mode. |
By default any file that matches the glob *.bnf
is automatically opened
in bnf-mode
.
To customize various options, use command as follows:
M-x customize-group RET bnf RET
Feel free to ask question or make suggestions in our issue tracker .
To see what has changed in recent versions of BNF Mode see: https://github.com/sergeyklay/bnf-mode/blob/master/NEWS .
- Wikipedia: Backus–Naur form
- Wikipedia: Extended Backus–Naur form
- Wikipedia: Augmented Backus–Naur form
- ISO/IEC 14977: EBNF
- EBNF: A Notation to Describe Syntax
BNF Mode is open source software licensed under the GNU General Public Licence version 3. Copyright © 2019-2020, Free Software Foundation, Inc.