Function: xsdre-char-class-to-range-list

xsdre-char-class-to-range-list is a byte-compiled function defined in xsd-regexp.el.gz.

Signature

(xsdre-char-class-to-range-list CC)

Documentation

Return a range-list for a symbolic char-class CC.

Source Code

;; Defined in /usr/src/emacs/lisp/nxml/xsd-regexp.el.gz
(defun xsdre-char-class-to-range-list (cc)
  "Return a range-list for a symbolic char-class CC."
  (cond ((integerp cc) (list cc))
	((symbolp cc)
	 (or (get cc 'xsdre-ranges)
	     (xsdre-char-class-to-range-list (get cc 'xsdre-char-class))))
	((integerp (car cc))
	 (if (= (car cc) (cdr cc))
	     (car cc)
	   cc))
	((eq (car cc) 'union)
	 (xsdre-range-list-union (mapcar 'xsdre-char-class-to-range-list
					 (cdr cc))))
	((eq (car cc) 'difference)
	 (xsdre-range-list-difference
	  (xsdre-char-class-to-range-list (nth 1 cc))
	  (xsdre-char-class-to-range-list (nth 2 cc))))
	((eq (car cc) 'range)
	 (list (xsdre-make-range (nth 1 cc) (nth 2 cc))))
	(t (error "Internal error in XSD regexp compilation: \
unknown char-class %s" cc))))