Function: rng-ipattern-start-tag-possible-p
rng-ipattern-start-tag-possible-p is a byte-compiled function defined
in rng-match.el.gz.
Signature
(rng-ipattern-start-tag-possible-p IPATTERN)
Source Code
;; Defined in /usr/src/emacs/lisp/nxml/rng-match.el.gz
(defun rng-ipattern-start-tag-possible-p (ipattern)
(let ((type (rng--ipattern-type ipattern)))
(cond ((memq type '(after one-or-more))
(rng-ipattern-start-tag-possible-p
(rng--ipattern-child ipattern)))
((memq type '(choice interleave))
(let ((members (rng--ipattern-child ipattern))
(possible nil))
(while (and members (not possible))
(setq possible
(rng-ipattern-start-tag-possible-p (car members)))
(setq members (cdr members)))
possible))
((eq type 'group)
(let ((members (rng--ipattern-child ipattern))
(possible nil))
(while (and members (not possible))
(setq possible
(rng-ipattern-start-tag-possible-p (car members)))
(setq members
(and (rng--ipattern-nullable (car members))
(cdr members))))
possible))
((eq type 'element)
(not (eq (rng-element-get-child ipattern)
rng-not-allowed-ipattern)))
(t nil))))