Function: rng-c-parse-primary-name-class
rng-c-parse-primary-name-class is a byte-compiled function defined in
rng-cmpct.el.gz.
Signature
(rng-c-parse-primary-name-class ATTRIBUTE)
Source Code
;; Defined in /usr/src/emacs/lisp/nxml/rng-cmpct.el.gz
(defun rng-c-parse-primary-name-class (attribute)
(cond ((rng-c-current-token-ncname-p)
(rng-c-advance-with
(rng-make-name-name-class
(rng-make-name (rng-c-unqualified-namespace attribute)
rng-c-current-token))))
((rng-c-current-token-prefixed-name-p)
(rng-c-advance-with
(rng-make-name-name-class
(rng-c-expand-name rng-c-current-token))))
((string-equal rng-c-current-token "*")
(let ((except (rng-c-parse-opt-except-name-class attribute)))
(if except
(rng-make-any-name-except-name-class except)
(rng-make-any-name-name-class))))
((rng-c-current-token-ns-name-p)
(let* ((ns
(rng-c-lookup-prefix (substring rng-c-current-token
0
-2)))
(except (rng-c-parse-opt-except-name-class attribute)))
(if except
(rng-make-ns-name-except-name-class ns except)
(rng-make-ns-name-name-class ns))))
((string-equal rng-c-current-token "(")
(rng-c-advance)
(let ((name-class (rng-c-parse-name-class attribute)))
(rng-c-expect ")")
name-class))
((rng-c-current-token-quoted-identifier-p)
(rng-c-advance-with
(rng-make-name-name-class
(rng-make-name (rng-c-unqualified-namespace attribute)
(substring rng-c-current-token 1)))))
((string-equal rng-c-current-token "[")
(rng-c-parse-lead-annotation)
(rng-c-parse-primary-name-class attribute))
(t (rng-c-error "Bad name class"))))