Function: ebnf-ebx-factor
ebnf-ebx-factor is a byte-compiled function defined in ebnf-ebx.el.gz.
Signature
(ebnf-ebx-factor TOKEN)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/ebnf-ebx.el.gz
;;; factor ::= hex-char+
;;; | '[' '^'? ( char ( '-' char )? )+ ']'
;;; | '"' 'string' '"'
;;; | "'" "string" "'"
;;; | '(' expression ')'
;;; | symbol
;;;
;;; symbol ::= 'upper or lower case letter'
;;; ('upper or lower case letter' | '-' | '_')*
;;; /* upper and lower 8-bit accentuated characters are included */
;;;
;;; hex-char ::= '#x' [0-9A-Fa-f]+
;;;
;;; char ::= hex-char | 'any character except control characters'
;;; /* 8-bit accentuated characters are included */
;;;
;;; any-char ::= char | 'newline' | 'tab'
(defun ebnf-ebx-factor (token)
(cond
;; terminal
((eq token 'terminal)
(ebnf-make-terminal ebnf-ebx-lex))
;; non-terminal
((eq token 'non-terminal)
(ebnf-make-non-terminal ebnf-ebx-lex))
;; group
((eq token 'begin-group)
(let ((body (ebnf-ebx-expression)))
(or (eq (car body) 'end-group)
(error "Missing `)'"))
(cdr body)))
;; no element
(t
nil)
))