branch: externals/bnf-mode commit defc4129e40999529c814eb0774c7510e20d148f Author: Serghei Iakovlev <serg...@phalconphp.com> Commit: Serghei Iakovlev <serg...@phalconphp.com>
Amended description and docs --- CHANGELOG.org | 1 + README.org | 11 ++++++++++- bnf-mode.el | 15 +++++++-------- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index e68ace6..a0d2708 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -1,4 +1,5 @@ #+TITLE: Change Log +#+AUTHOR: Serghei Iakovlev All notable changes to this project will be documented in this file. diff --git a/README.org b/README.org index 71d405c..83f4a46 100644 --- a/README.org +++ b/README.org @@ -1,12 +1,20 @@ #+TITLE: BNF Mode for GNU Emacs +#+AUTHOR: Serghei Iakovlev [[https://www.gnu.org/licenses/gpl-3.0.txt][https://img.shields.io/badge/license-GPL_3-green.svg]] [[https://travis-ci.com/sergeyklay/bnf-mode][https://travis-ci.com/sergeyklay/bnf-mode.svg]] A GNU Emacs major mode for editing BNF grammars. +#+begin_quote +Precise language is not the problem. Clear language is the problem. +Richard Feynman +#+end_quote + Currently provides basic syntax and font-locking for BNF files. -EBNF and ABNF are in my plans for the near future. +EBNF and ABNF are in my plans for the near future. At this time BNF Mode +is not an absolutely accurate implementation of the standards and +recommendations, but I'll try to be as close to them as possible. When developing this mode, the following RFCs were taken into account: @@ -81,6 +89,7 @@ To see what has changed in recent versions of BNF Mode, see the [[https://github ** External Links - [[https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form][Wikipedia: Backus–Naur form]] +- [[https://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf][ISO/IEC 14977: EBNF]] - [[https://www.ics.uci.edu/~pattis/ICS-33/lectures/ebnf.pdf][EBNF: A Notation to Describe Syntax]] ** License diff --git a/bnf-mode.el b/bnf-mode.el index 0ebe02e..dd3e1c1 100644 --- a/bnf-mode.el +++ b/bnf-mode.el @@ -61,10 +61,10 @@ (declare-function pkg-info-version-info "pkg-info" (package)) (eval-when-compile - (require 'rx)) + (require 'rx)) ; `rx' -(require 'cl-lib) -(require 'pkg-info) +(require 'cl-lib) ; `cl-defmacro' +(require 'pkg-info) ; `pkg-info-version-info' ;;; Customization @@ -130,8 +130,7 @@ are available: name itself, that is, a sequence of characters, beginning with an alphabetic character, and followed by a combination of alphabetics, digits, and hyphens (dashes). - - For more see: https://tools.ietf.org/html/rfc5234#section-2.1 + For more see RFC5234#2.1 See `rx' documentation for more information about REGEXPS param." (let ((rx-constituents (append bnf-rx-constituents rx-constituents))) @@ -183,7 +182,7 @@ See `rx' documentation for more information about REGEXPS param." (modify-syntax-entry ?\^m "> b" table) ;; Characters used to delimit string constants (modify-syntax-entry ?\" "\"" table) - ;; Comments setup + ;; Comments setup (see RFC822#2.8) (modify-syntax-entry ?\; "<" table) (modify-syntax-entry ?\n ">" table) ;; Treat ::= as sequence of symbols @@ -202,7 +201,7 @@ See `rx' documentation for more information about REGEXPS param." "A major mode for editing BNF grammars." :syntax-table bnf-mode-syntax-table :group 'bnf-mode - ;; Comment setup + ;; Comment setup (for more see RFC822#2.8) (setq-local comment-use-syntax nil) (setq-local comment-start "; ") (setq-local comment-end "") @@ -213,7 +212,7 @@ See `rx' documentation for more information about REGEXPS param." bnf-font-lock-keywords ;; keywords-only nil - ;; Regarding RFC5234 + ;; Regarding to RFC5234#2.1 ;; The names <rulename>, <Rulename>, <RULENAME>, ;; and <rUlENamE> all refer to the same rule. t