comparison lisp/psgml/psgml-dtd.el @ 2:ac2d302a0011 r19-15b2

Import from CVS: tag r19-15b2
author cvs
date Mon, 13 Aug 2007 08:46:35 +0200
parents 376386a54a3c
children bcdc7deadc19
comparison
equal deleted inserted replaced
1:c0c6a60d29db 2:ac2d302a0011
1 ;;;; psgml-dtd.el --- DTD parser for SGML-editing mode with parsing support 1 ;;;; psgml-dtd.el --- DTD parser for SGML-editing mode with parsing support
2 ;; $Id: psgml-dtd.el,v 1.1.1.1 1996/12/18 03:35:19 steve Exp $ 2 ;; $Id: psgml-dtd.el,v 1.1.1.2 1996/12/18 03:47:13 steve Exp $
3 3
4 ;; Copyright (C) 1994 Lennart Staflin 4 ;; Copyright (C) 1994 Lennart Staflin
5 5
6 ;; Author: Lennart Staflin <lenst@lysator.liu.se> 6 ;; Author: Lennart Staflin <lenst@lysator.liu.se>
7 7
82 ms (append (sgml-state-opts s) (sgml-state-reqs s))) 82 ms (append (sgml-state-opts s) (sgml-state-reqs s)))
83 (while ms 83 (while ms
84 (setq m (sgml-move-dest (car ms)) 84 (setq m (sgml-move-dest (car ms))
85 ms (cdr ms)) 85 ms (cdr ms))
86 (unless (sgml-normal-state-p m) 86 (unless (sgml-normal-state-p m)
87 (setq m (sgml-&node-next m))) 87 (setq m (sgml-and-node-next m)))
88 (unless (memq m states) 88 (unless (memq m states)
89 (nconc states (list m)))) 89 (nconc states (list m))))
90 (setq l (cdr l))) 90 (setq l (cdr l)))
91 states)) 91 states))
92 92
154 (length (sgml-state-opts s))) 154 (length (sgml-state-opts s)))
155 (let ((yes nil) 155 (let ((yes nil)
156 (no (list s)) 156 (no (list s))
157 (l (sgml-state-reqs s)) 157 (l (sgml-state-reqs s))
158 (nl (sgml-state-opts s)) 158 (nl (sgml-state-opts s))
159 (res s)
160 dest) 159 dest)
161 (while (or l (setq l (prog1 nl (setq nl nil)))) 160 (while (or l (setq l (prog1 nl (setq nl nil))))
162 (cond 161 (cond
163 ((not (sgml-normal-state-p (setq dest (sgml-move-dest (car l)))))) 162 ((not (sgml-normal-state-p (setq dest (sgml-move-dest (car l))))))
164 ((memq dest no)) 163 ((memq dest no))
236 (setcdr l (cddr l))) 235 (setcdr l (cddr l)))
237 (sgml-one-final-state (car l)) ; optimization 236 (sgml-one-final-state (car l)) ; optimization
238 (car l)) 237 (car l))
239 238
240 (defun sgml-make-& (dfas) 239 (defun sgml-make-& (dfas)
241 (let ((&n (sgml-make-&node dfas (sgml-make-state))) 240 (let ((&n (sgml-make-and-node dfas (sgml-make-state)))
242 (s (sgml-make-state)) 241 (s (sgml-make-state))
243 (l dfas)) 242 (l dfas))
244 (while l ; For each si: 243 (while l ; For each si:
245 ;; For m in opts(si): add optional move from s to &n on token(m). 244 ;; For m in opts(si): add optional move from s to &n on token(m).
246 (loop for m in (sgml-state-opts (car l)) 245 (loop for m in (sgml-state-opts (car l))
757 (while p 756 (while p
758 (cond ((sgml-normal-state-p (caar p)) 757 (cond ((sgml-normal-state-p (caar p))
759 (sgml-translate-moves (sgml-state-opts (caar p))) 758 (sgml-translate-moves (sgml-state-opts (caar p)))
760 (sgml-translate-moves (sgml-state-reqs (caar p)))) 759 (sgml-translate-moves (sgml-state-reqs (caar p))))
761 (t 760 (t
762 (sgml-translate-node (sgml-&node-next (caar p))))) 761 (sgml-translate-node (sgml-and-node-next (caar p)))))
763 (setq p (cdr p))) 762 (setq p (cdr p)))
764 sgml-translate-table)) 763 sgml-translate-table))
765 764
766 ;;;; Save DTD: binary coding 765 ;;;; Save DTD: binary coding
767 766
830 (sgml-code-move x)) 829 (sgml-code-move x))
831 (sgml-code-sequence (x (sgml-state-reqs s)) 830 (sgml-code-sequence (x (sgml-state-reqs s))
832 (sgml-code-move x))) 831 (sgml-code-move x)))
833 (t ; s is a &-node 832 (t ; s is a &-node
834 (insert 255) ; Tag &-node 833 (insert 255) ; Tag &-node
835 (insert (sgml-code-xlate (sgml-&node-next s))) 834 (insert (sgml-code-xlate (sgml-and-node-next s)))
836 (sgml-code-sequence (m (sgml-&node-dfas s)) 835 (sgml-code-sequence (m (sgml-and-node-dfas s))
837 (sgml-code-model m))))))) 836 (sgml-code-model m)))))))
838 837
839 (defun sgml-code-element (et) 838 (defun sgml-code-element (et)
840 (sgml-code-sexp (sgml-eltype-all-miscdata et)) 839 (sgml-code-sexp (sgml-eltype-all-miscdata et))
841 (cond 840 (cond