Function: rng-ipattern-compute-text-typed-p
rng-ipattern-compute-text-typed-p is a byte-compiled function defined
in rng-match.el.gz.
Signature
(rng-ipattern-compute-text-typed-p IPATTERN)
Source Code
;; Defined in /usr/src/emacs/lisp/nxml/rng-match.el.gz
(defun rng-ipattern-compute-text-typed-p (ipattern)
(let ((type (rng--ipattern-type ipattern)))
(cond ((eq type 'choice)
(let ((cur (rng--ipattern-child ipattern))
(ret nil))
(while (and cur (not ret))
(if (rng-ipattern-text-typed-p (car cur))
(setq ret t)
(setq cur (cdr cur))))
ret))
((eq type 'group)
(let ((cur (rng--ipattern-child ipattern))
(ret nil)
member)
(while (and cur (not ret))
(setq member (car cur))
(if (rng-ipattern-text-typed-p member)
(setq ret t))
(setq cur
(and (rng--ipattern-nullable member)
(cdr cur))))
ret))
((eq type 'after)
(rng-ipattern-text-typed-p (rng--ipattern-child ipattern)))
(t (and (memq type '(value list data data-except)) t)))))