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))) |