Fix parsing empty strings
turtle/tordf.scm
159 | 159 | (parser-state-cur-predicate state) | |
160 | 160 | object) | |
161 | 161 | (parser-state-result state))))) | |
162 | + | (('rdf-literal ('string-pat _) ("^^" iri)) | |
163 | + | (let* ((res (parse-iri iri state)) | |
164 | + | (iri (assoc-ref res "iri")) | |
165 | + | (state (assoc-ref res "state")) | |
166 | + | (object (make-rdf-literal "" iri #f))) | |
167 | + | (update-parser-state state | |
168 | + | #:cur-object object | |
169 | + | #:result | |
170 | + | (cons | |
171 | + | (make-rdf-triple | |
172 | + | (parser-state-cur-subject state) | |
173 | + | (parser-state-cur-predicate state) | |
174 | + | object) | |
175 | + | (parser-state-result state))))) | |
176 | + | (('rdf-literal ('string-pat _) ('langtag lang)) | |
177 | + | (let ((object | |
178 | + | (make-rdf-literal | |
179 | + | "" | |
180 | + | "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" | |
181 | + | lang))) | |
182 | + | (update-parser-state state | |
183 | + | #:cur-object object | |
184 | + | #:result | |
185 | + | (cons | |
186 | + | (make-rdf-triple | |
187 | + | (parser-state-cur-subject state) | |
188 | + | (parser-state-cur-predicate state) | |
189 | + | object) | |
190 | + | (parser-state-result state))))) | |
191 | + | (('rdf-literal ('string-pat _)) | |
192 | + | (let ((object | |
193 | + | (make-rdf-literal | |
194 | + | "" | |
195 | + | "http://www.w3.org/1999/02/22-rdf-syntax-ns#string" | |
196 | + | #f))) | |
197 | + | (update-parser-state state | |
198 | + | #:cur-object object | |
199 | + | #:result | |
200 | + | (cons | |
201 | + | (make-rdf-triple | |
202 | + | (parser-state-cur-subject state) | |
203 | + | (parser-state-cur-predicate state) | |
204 | + | object) | |
205 | + | (parser-state-result state))))) | |
162 | 206 | (('numeric-literal ('decimal num)) | |
163 | 207 | (let ((object | |
164 | 208 | (make-rdf-literal num "http://www.w3.org/2001/XMLSchema#decimal" #f))) |