From a13edb18b6f61fa35717656ba05f55433b0e12ec Mon Sep 17 00:00:00 2001 From: Jay McCarthy Date: Mon, 21 Jun 2010 12:47:51 -0600 Subject: [PATCH] Transparent XML structs --- collects/tests/xml/test.rkt | 8 ++++---- collects/xml/private/structures.rkt | 30 ++++++++++++++--------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/collects/tests/xml/test.rkt b/collects/tests/xml/test.rkt index 1fcf493387..60b30c445b 100644 --- a/collects/tests/xml/test.rkt +++ b/collects/tests/xml/test.rkt @@ -195,7 +195,7 @@ END "~n" "read-xml: lex-error: at position 2.4/6: expected / or > to close tag `a'") (test-read-xml/exn "" "read-xml: parse-error: expected root element - received #") - (test-read-xml/exn "

" "read-xml: parse-error: extra stuff at end of document #") + (test-read-xml/exn "

" "read-xml: parse-error: extra stuff at end of document (element ") (test-read-xml "hi there!" @@ -322,7 +322,7 @@ END (test-read-xml/element/exn "
" - "read-xml: parse-error: expected root element - received #") + "read-xml: parse-error: expected root element - received (comment ") (test-read-xml/element "<![CDATA[hello world[mp3]]]>" @@ -363,7 +363,7 @@ END "~n
" "read-xml: lex-error: at position 2.4/6: expected / or > to close tag `a'") (test-syntax:read-xml/exn "" "read-xml: parse-error: expected root element - received #") - (test-syntax:read-xml/exn "

" "read-xml: parse-error: extra stuff at end of document #") + (test-syntax:read-xml/exn "

" "read-xml: parse-error: extra stuff at end of document (element ") (test-syntax:read-xml "hi there!" @@ -430,7 +430,7 @@ END (test-syntax:read-xml/element/exn "
" - "read-xml: parse-error: expected root element - received #") + "read-xml: parse-error: expected root element - received (comment ") ; XXX need more syntax:read-xml/element tests diff --git a/collects/xml/private/structures.rkt b/collects/xml/private/structures.rkt index 75b0c8e240..bb8dab9536 100644 --- a/collects/xml/private/structures.rkt +++ b/collects/xml/private/structures.rkt @@ -1,39 +1,39 @@ #lang racket ; Location = (make-location Nat Nat Nat) | Symbol -(define-struct location (line char offset)) +(define-struct location (line char offset) #:transparent) ; Source = (make-source Location Location) -(define-struct source (start stop)) +(define-struct source (start stop) #:transparent) ; Document = (make-document Prolog Element (listof Misc)) -(define-struct document (prolog element misc)) +(define-struct document (prolog element misc) #:transparent) ; Prolog = (make-prolog (listof Misc) Document-type (listof Misc)) -(define-struct prolog (misc dtd misc2)) +(define-struct prolog (misc dtd misc2) #:transparent) ; Document-type = (make-document-type sym External-dtd #f) ; | #f -(define-struct document-type (name external inlined)) +(define-struct document-type (name external inlined) #:transparent) ; External-dtd = (make-external-dtd/public str str) ; | (make-external-dtd/system str) ; | #f -(define-struct external-dtd (system)) -(define-struct (external-dtd/public external-dtd) (public)) -(define-struct (external-dtd/system external-dtd) ()) +(define-struct external-dtd (system) #:transparent) +(define-struct (external-dtd/public external-dtd) (public) #:transparent) +(define-struct (external-dtd/system external-dtd) () #:transparent) ; Element = (make-element Location Location Symbol (listof Attribute) (listof Content)) -(define-struct (element source) (name attributes content)) +(define-struct (element source) (name attributes content) #:transparent) ; Attribute = (make-attribute Location Location Symbol String) -(define-struct (attribute source) (name value)) +(define-struct (attribute source) (name value) #:transparent) ; Pcdata = (make-pcdata Location Location String) -(define-struct (pcdata source) (string)) +(define-struct (pcdata source) (string) #:transparent) ; Cdata = (make-cdata Location Location String) -(define-struct (cdata source) (string)) +(define-struct (cdata source) (string) #:transparent) ; Content = Pcdata ; | Element @@ -45,14 +45,14 @@ ; | Processing-instruction ; Entity = (make-entity Location Location (U Nat Symbol)) -(define-struct (entity source) (text)) +(define-struct (entity source) (text) #:transparent) ; Processing-instruction = (make-p-i Location Location String String) ; also represents XMLDecl -(define-struct (p-i source) (target-name instruction)) +(define-struct (p-i source) (target-name instruction) #:transparent) ; Comment = (make-comment String) -(define-struct comment (text)) +(define-struct comment (text) #:transparent) ; permissive-xexprs : parameter bool (define permissive-xexprs (make-parameter #f))