Function: rng-compute-mixed-text-deriv
rng-compute-mixed-text-deriv is a byte-compiled function defined in
rng-match.el.gz.
Signature
(rng-compute-mixed-text-deriv IPATTERN)
Source Code
;; Defined in /usr/src/emacs/lisp/nxml/rng-match.el.gz
(defun rng-compute-mixed-text-deriv (ipattern)
(let ((type (rng--ipattern-type ipattern)))
(cond ((eq type 'text) ipattern)
((eq type 'after)
(rng-transform-after-child 'rng-mixed-text-deriv
ipattern))
((eq type 'choice)
(rng-transform-choice 'rng-mixed-text-deriv
ipattern))
((eq type 'one-or-more)
(rng-intern-group
(list (rng-mixed-text-deriv
(rng--ipattern-child ipattern))
(rng-intern-optional ipattern))))
((eq type 'group)
(rng-transform-group-nullable
'rng-mixed-text-deriv
(lambda (x y) (rng-intern-group (cons x y)))
ipattern))
((eq type 'interleave)
(rng-transform-interleave-single
'rng-mixed-text-deriv
(lambda (new old list) (rng-intern-interleave
(rng-substq new old list)))
ipattern))
((and (eq type 'data)
(not (rng--ipattern-memo-text-typed ipattern)))
ipattern)
(t rng-not-allowed-ipattern))))