[cxml-cvs] CVS update: cxml/xml/xml-parse.lisp

David Lichteblau dlichteblau at common-lisp.net
Sun Nov 27 00:07:30 UTC 2005


Update of /project/cxml/cvsroot/cxml/xml
In directory common-lisp.net:/tmp/cvs-serv24800/xml

Modified Files:
	xml-parse.lisp 
Log Message:
-sun/not-wf/sgml03.xml [not-wf?] FAILED:
-  well-formedness violation not detected
-[
-    Comments may not contain "--"]

Date: Sun Nov 27 01:07:30 2005
Author: dlichteblau

Index: cxml/xml/xml-parse.lisp
diff -u cxml/xml/xml-parse.lisp:1.12 cxml/xml/xml-parse.lisp:1.13
--- cxml/xml/xml-parse.lisp:1.12	Sun Nov 27 00:57:10 2005
+++ cxml/xml/xml-parse.lisp	Sun Nov 27 01:07:29 2005
@@ -132,11 +132,7 @@
 ;;
 ;; o max depth together with circle detection
 ;;   (or proof, that our circle detection is enough).
-;;
-;; o element definitions (with att definitions in the elements)
-;;   [das haben wir doch, oder?]
-;;
-;; o store entities in the DTD
+;;   [was fuer circle detection?--david]
 ;;
 ;; o better extensibility wrt character representation, one may want to
 ;;   have
@@ -151,38 +147,12 @@
 ;;   [ausgelagert sind sie; dokumentiert "so la la"; die Reintegration
 ;;   in Closure ist ein ganz anderes Thema]
 ;;
-;; o merge node representation with SGML module
-;;   [???]
-;;
-;; o line/column number recording
-;;
-;; o better error messages
-;;
 ;; o recording of source locations for nodes.
 ;;
-;; o make the *scratch-pad* hack safe
-;;
 ;; o based on the DTD and xml:space attribute implement HTML white
 ;;   space rules.
 ;;
 ;; o on a parser option, do not expand external entities.
-;;
-;; o does the user need the distinction between "" and " " ?
-;;   That is literal and 'quoted' white space.
-;;   [verstehe ich nicht --david]
-;;
-;; o on an option merge CDATA section;
-;;
-;; o data in parse tree? extra nodes like in SGML?!
-;;
-;; o what to store in the node-gi field? Some name object or the
-;;   string used?
-;;
-
-;; Test that fail:
-;;
-;; not-wf/sa/128        is false a alarm
-;;
 
 ;;;; Validity constraints:
 ;;;; (00) Root Element Type                     like (03), c.f. MAKE-ROOT-MODEL
@@ -1586,40 +1556,37 @@
         (go state-1)))))
 
 (defun read-comment-content (input &aux d)
-  (let ((warnedp nil))
-    (with-rune-collector (collect)
-      (block nil
-        (tagbody
-         state-1
-          (setf d (read-rune input))
-          (unless (data-rune-p d)
-            (error "Illegal char: ~S." d))
-          (when (rune= d #/-) (go state-2))
-          (collect d)
-          (go state-1)
-         state-2 ;; #/- seen
-          (setf d (read-rune input))
-          (unless (data-rune-p d)
-            (error "Illegal char: ~S." d))
-          (when (rune= d #/-) (go state-3))
-          (collect #/-)
-          (collect d)
-          (go state-1)
-         state-3 ;; #/- #/- seen
-          (setf d (read-rune input))
-          (unless (data-rune-p d)
-            (error "Illegal char: ~S." d))
-          (when (rune= d #/>) (return))
-          (unless warnedp
-            (warn "WFC: no '--' in comments please.")
-            (setf warnedp t))
-          (when (rune= d #/-)
-            (collect #/-)
-            (go state-3))
-          (collect #/-)
-          (collect #/-)
-          (collect d)
-          (go state-1))))))
+  (with-rune-collector (collect)
+    (block nil
+      (tagbody
+       state-1
+	(setf d (read-rune input))
+	(unless (data-rune-p d)
+	  (wf-error "Illegal char: ~S." d))
+	(when (rune= d #/-) (go state-2))
+	(collect d)
+	(go state-1)
+       state-2 ;; #/- seen
+	(setf d (read-rune input))
+	(unless (data-rune-p d)
+	  (wf-error "Illegal char: ~S." d))
+	(when (rune= d #/-) (go state-3))
+	(collect #/-)
+	(collect d)
+	(go state-1)
+       state-3 ;; #/- #/- seen
+	(setf d (read-rune input))
+	(unless (data-rune-p d)
+	  (wf-error "Illegal char: ~S." d))
+	(when (rune= d #/>) (return))
+	(wf-error "'--' not allowed in a comment")
+	(when (rune= d #/-)
+	  (collect #/-)
+	  (go state-3))
+	(collect #/-)
+	(collect #/-)
+	(collect d)
+	(go state-1)))))
 
 (defun read-cdata-sect (input &aux d)
   ;; <![CDATA[ is already read




More information about the Cxml-cvs mailing list