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