Function: ebnf-generate-alternative
ebnf-generate-alternative is a byte-compiled function defined in
ebnf2ps.el.gz.
Signature
(ebnf-generate-alternative ALTERNATIVE)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/ebnf2ps.el.gz
;; [alternative width-fun dim-fun entry height width list]
(defun ebnf-generate-alternative (alternative)
(let ((alt (ebnf-node-list alternative))
(entry (ebnf-node-entry alternative))
(nlist 0)
alt-height alt-entry)
(while alt
(ps-output (ebnf-format-float (- entry (ebnf-node-entry (car alt))))
" ")
(setq entry (- entry (ebnf-node-height (car alt)) ebnf-vertical-space)
nlist (1+ nlist)
alt (cdr alt)))
(ps-output (format "%d " nlist)
(ebnf-format-float (ebnf-node-width alternative))
" AT\n")
(setq alt (ebnf-node-list alternative))
(when alt
(ebnf-node-generation (car alt))
(setq alt-height (- (ebnf-node-height (car alt))
(ebnf-node-entry (car alt)))))
(while (setq alt (cdr alt))
(setq alt-entry (ebnf-node-entry (car alt)))
(ebnf-vertical-movement
(- (+ alt-height ebnf-vertical-space alt-entry)))
(ebnf-node-generation (car alt))
(setq alt-height (- (ebnf-node-height (car alt)) alt-entry))))
(ps-output "EOS\n"))