Function: ebnf-ebx-rule
ebnf-ebx-rule is a byte-compiled function defined in ebnf-ebx.el.gz.
Signature
(ebnf-ebx-rule TOKEN)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/ebnf-ebx.el.gz
;;; rule ::= symbol '::=' expression
(defun ebnf-ebx-rule (token)
(let ((name ebnf-ebx-lex)
(action ebnf-action)
elements)
(setq ebnf-action nil)
(or (eq token 'non-terminal)
(error "Invalid rule name"))
(setq token (ebnf-ebx-lex))
(or (eq token 'production)
(error "Invalid rule: missing `::='"))
(setq elements (ebnf-ebx-expression))
(or (memq (car elements) '(end-of-rule end-of-input))
(error "Invalid rule: there is no end of rule"))
(setq elements (cdr elements))
(ebnf-eps-add-production name)
(cons (ebnf-ebx-lex)
(ebnf-make-production name elements action))))