Function: ebnf-yac-definitions
ebnf-yac-definitions is a byte-compiled function defined in
ebnf-yac.el.gz.
Signature
(ebnf-yac-definitions TOKEN)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/ebnf-yac.el.gz
;;; YACC-Definitions = ( "%token" | "%left" | "%right" | "%nonassoc" )
;;; [ "<" Name ">" ] Name-List
;;; | "%prec" Name
;;; | "any other Yacc definition"
;;; .
(defun ebnf-yac-definitions (token)
(let ((ebnf-yac-skip-char t))
(while (not (memq token '(yac-separator end-of-input)))
(setq token
(cond
;; ( "%token" | "%left" | "%right" | "%nonassoc" )
;; [ "<" Name ">" ] Name-List
((eq token 'yac-token)
(setq token (ebnf-yac-lex))
(when (eq token 'open-angle)
(or (eq (ebnf-yac-lex) 'non-terminal)
(error "Missing type name"))
(or (eq (ebnf-yac-lex) 'close-angle)
(error "Missing `>'"))
(setq token (ebnf-yac-lex)))
(setq token (ebnf-yac-name-list token)
ebnf-yac-token-list (nconc (cdr token)
ebnf-yac-token-list))
(car token))
;; "%prec" Name
((eq token 'yac-prec)
(or (eq (ebnf-yac-lex) 'non-terminal)
(error "Missing prec name"))
(ebnf-yac-lex))
;; "any other Yacc definition"
(t
(ebnf-yac-lex))
)))
token))