1;; automatically generated from "json.scm.in" 2;; see copyright notice in COPYING file 3 4(define expanded:json-parser 5 ((lambda () 6 (let ((any.1539 'undefined) 7 (comment.1540 'undefined) 8 (comment-body.1541 'undefined) 9 (table-entries.1542 'undefined) 10 (table-entries-nonempty.1543 'undefined) 11 (table-entry.1544 'undefined) 12 (array-entries.1545 'undefined) 13 (array-entries-nonempty.1546 'undefined) 14 (jstring.1547 'undefined) 15 (jnumber.1548 'undefined) 16 (number->utf-8.1549 'undefined) 17 (decode-unicode-string.1550 'undefined) 18 (white.1551 'undefined) 19 (skip-comment-char.1552 'undefined) 20 (skip-to-newline.1553 'undefined) 21 (token.1554 'undefined) 22 (interpret-string-escape.1555 'undefined) 23 (jstring-body.1556 'undefined) 24 (jnumber-body.1557 'undefined)) 25 (begin 26 (set! any.1539 27 (lambda (results.1558) 28 (results->result 29 results.1558 30 'any 31 (lambda () 32 ((packrat-or 33 (packrat-check 34 white.1551 35 (lambda (dummy.1559) 36 (packrat-check-base 37 '#\{ 38 (lambda (dummy.1560) 39 (packrat-check 40 table-entries.1542 41 (lambda (entries.1561) 42 (packrat-check 43 white.1551 44 (lambda (dummy.1562) 45 (packrat-check-base 46 '#\} 47 (lambda (dummy.1563) 48 (lambda (results.1564) 49 (make-result 50 (list->vector entries.1561) 51 results.1564)))))))))))) 52 (packrat-or 53 (packrat-check 54 white.1551 55 (lambda (dummy.1565) 56 (packrat-check-base 57 '#\[ 58 (lambda (dummy.1566) 59 (packrat-check 60 array-entries.1545 61 (lambda (entries.1567) 62 (packrat-check 63 white.1551 64 (lambda (dummy.1568) 65 (packrat-check-base 66 '#\] 67 (lambda (dummy.1569) 68 (lambda (results.1570) 69 (make-result entries.1567 results.1570)))))))))))) 70 (packrat-or 71 (packrat-check 72 jstring.1547 73 (lambda (s.1571) 74 (lambda (results.1572) 75 (make-result s.1571 results.1572)))) 76 (packrat-or 77 (packrat-check 78 jnumber.1548 79 (lambda (n.1573) 80 (lambda (results.1574) 81 (make-result n.1573 results.1574)))) 82 (packrat-or 83 (packrat-check 84 white.1551 85 (lambda (dummy.1575) 86 (packrat-check 87 (token.1554 '"true") 88 (lambda (dummy.1576) 89 (lambda (results.1577) 90 (make-result '#t results.1577)))))) 91 (packrat-or 92 (packrat-check 93 white.1551 94 (lambda (dummy.1578) 95 (packrat-check 96 (token.1554 '"false") 97 (lambda (dummy.1579) 98 (lambda (results.1580) 99 (make-result '#f results.1580)))))) 100 (packrat-check 101 white.1551 102 (lambda (dummy.1581) 103 (packrat-check 104 (token.1554 '"null") 105 (lambda (dummy.1582) 106 (lambda (results.1583) 107 (make-result (void) results.1583)))))))))))) 108 results.1558))))) 109 (set! comment.1540 110 (lambda (results.1584) 111 (results->result 112 results.1584 113 'comment 114 (lambda () 115 ((packrat-or 116 (packrat-check 117 (token.1554 '"/*") 118 (lambda (dummy.1585) 119 (packrat-check 120 comment-body.1541 121 (lambda (b.1586) 122 (lambda (results.1587) 123 (make-result b.1586 results.1587)))))) 124 (packrat-or 125 (packrat-check 126 (token.1554 '"//") 127 (lambda (dummy.1588) 128 (packrat-check 129 skip-to-newline.1553 130 (lambda (b.1589) 131 (lambda (results.1590) 132 (make-result b.1589 results.1590)))))) 133 (lambda (results.1591) 134 (make-result 'whitespace results.1591)))) 135 results.1584))))) 136 (set! comment-body.1541 137 (lambda (results.1592) 138 (results->result 139 results.1592 140 'comment-body 141 (lambda () 142 ((packrat-or 143 (packrat-check 144 (token.1554 '"*/") 145 (lambda (dummy.1593) 146 (packrat-check 147 white.1551 148 (lambda (w.1594) 149 (lambda (results.1595) 150 (make-result w.1594 results.1595)))))) 151 (packrat-check 152 skip-comment-char.1552 153 (lambda (dummy.1596) 154 (lambda (results.1597) 155 (make-result 'skipped-comment-char results.1597))))) 156 results.1592))))) 157 (set! table-entries.1542 158 (lambda (results.1598) 159 (results->result 160 results.1598 161 'table-entries 162 (lambda () 163 ((packrat-or 164 (packrat-check 165 table-entries-nonempty.1543 166 (lambda (a.1599) 167 (lambda (results.1600) 168 (make-result a.1599 results.1600)))) 169 (lambda (results.1601) (make-result '() results.1601))) 170 results.1598))))) 171 (set! table-entries-nonempty.1543 172 (lambda (results.1602) 173 (results->result 174 results.1602 175 'table-entries-nonempty 176 (lambda () 177 ((packrat-or 178 (packrat-check 179 table-entry.1544 180 (lambda (entry.1603) 181 (packrat-check 182 white.1551 183 (lambda (dummy.1604) 184 (packrat-check-base 185 '#\, 186 (lambda (dummy.1605) 187 (packrat-check 188 table-entries-nonempty.1543 189 (lambda (entries.1606) 190 (lambda (results.1607) 191 (make-result 192 (cons entry.1603 entries.1606) 193 results.1607)))))))))) 194 (packrat-check 195 table-entry.1544 196 (lambda (entry.1608) 197 (lambda (results.1609) 198 (make-result (list entry.1608) results.1609))))) 199 results.1602))))) 200 (set! table-entry.1544 201 (lambda (results.1610) 202 (results->result 203 results.1610 204 'table-entry 205 (lambda () 206 ((packrat-check 207 jstring.1547 208 (lambda (key.1611) 209 (packrat-check 210 white.1551 211 (lambda (dummy.1612) 212 (packrat-check-base 213 '#\: 214 (lambda (dummy.1613) 215 (packrat-check 216 any.1539 217 (lambda (val.1614) 218 (lambda (results.1615) 219 (make-result 220 (cons key.1611 val.1614) 221 results.1615)))))))))) 222 results.1610))))) 223 (set! array-entries.1545 224 (lambda (results.1616) 225 (results->result 226 results.1616 227 'array-entries 228 (lambda () 229 ((packrat-or 230 (packrat-check 231 array-entries-nonempty.1546 232 (lambda (a.1617) 233 (lambda (results.1618) 234 (make-result a.1617 results.1618)))) 235 (lambda (results.1619) (make-result '() results.1619))) 236 results.1616))))) 237 (set! array-entries-nonempty.1546 238 (lambda (results.1620) 239 (results->result 240 results.1620 241 'array-entries-nonempty 242 (lambda () 243 ((packrat-or 244 (packrat-check 245 any.1539 246 (lambda (entry.1621) 247 (packrat-check 248 white.1551 249 (lambda (dummy.1622) 250 (packrat-check-base 251 '#\, 252 (lambda (dummy.1623) 253 (packrat-check 254 array-entries-nonempty.1546 255 (lambda (entries.1624) 256 (lambda (results.1625) 257 (make-result 258 (cons entry.1621 entries.1624) 259 results.1625)))))))))) 260 (packrat-check 261 any.1539 262 (lambda (entry.1626) 263 (lambda (results.1627) 264 (make-result (list entry.1626) results.1627))))) 265 results.1620))))) 266 (set! jstring.1547 267 (lambda (results.1628) 268 (results->result 269 results.1628 270 'jstring 271 (lambda () 272 ((packrat-check 273 white.1551 274 (lambda (dummy.1629) 275 (packrat-check-base 276 '#\" 277 (lambda (dummy.1630) 278 (packrat-check 279 jstring-body.1556 280 (lambda (body.1631) 281 (packrat-check-base 282 '#\" 283 (lambda (dummy.1632) 284 (lambda (results.1633) 285 (make-result body.1631 results.1633)))))))))) 286 results.1628))))) 287 (set! jnumber.1548 288 (lambda (results.1634) 289 (results->result 290 results.1634 291 'jnumber 292 (lambda () 293 ((packrat-check 294 white.1551 295 (lambda (dummy.1635) 296 (packrat-check 297 jnumber-body.1557 298 (lambda (body.1636) 299 (lambda (results.1637) 300 (make-result body.1636 results.1637)))))) 301 results.1634))))) 302 (set! number->utf-8.1549 303 (lambda (c.1638) 304 (list->string 305 (map integer->char 306 (if (< c.1638 '128) 307 (list c.1638) 308 (if (< c.1638 '2048) 309 (list (logior (/ c.1638 '64) '192) 310 (logior (logand c.1638 '63) '128)) 311 (if (< c.1638 '65536) 312 (list (logior (/ c.1638 '4096) '224) 313 (logior (logand (/ c.1638 '64) '63) '128) 314 (logior (logand c.1638 '63) '128)) 315 (if (< c.1638 '2097152) 316 (list (logior (/ c.1638 '262144) '240) 317 (logior (logand (/ c.1638 '4096) '63) '128) 318 (logior (logand (/ c.1638 '64) '63) '128) 319 (logior (logand c.1638 '63) '128)) 320 (list '35))))))))) 321 (set! decode-unicode-string.1550 322 (lambda (s.1639) 323 (let ((hex->number.1640 'undefined)) 324 (begin 325 (set! hex->number.1640 326 (lambda (c.1641) 327 (assq-cdr 328 c.1641 329 '((#\0 . 0) 330 (#\1 . 1) 331 (#\2 . 2) 332 (#\3 . 3) 333 (#\4 . 4) 334 (#\5 . 5) 335 (#\6 . 6) 336 (#\7 . 7) 337 (#\8 . 8) 338 (#\9 . 9) 339 (#\a . 10) 340 (#\b . 11) 341 (#\c . 12) 342 (#\d . 13) 343 (#\e . 14) 344 (#\f . 15) 345 (#\A . 10) 346 (#\B . 11) 347 (#\C . 12) 348 (#\D . 13) 349 (#\E . 14) 350 (#\F . 15))))) 351 ((lambda (l.1642) 352 (number->utf-8.1549 353 (+ (* '4096 (hex->number.1640 (list-ref l.1642 '0))) 354 (* '256 (hex->number.1640 (list-ref l.1642 '1))) 355 (* '16 (hex->number.1640 (list-ref l.1642 '2))) 356 (hex->number.1640 (list-ref l.1642 '3))))) 357 (string->list s.1639)))))) 358 (set! white.1551 359 (lambda (results.1643) 360 (if (char-whitespace? (parse-results-token-value results.1643)) 361 (white.1551 (parse-results-next results.1643)) 362 (comment.1540 results.1643)))) 363 (set! skip-comment-char.1552 364 (lambda (results.1644) 365 (comment-body.1541 (parse-results-next results.1644)))) 366 (set! skip-to-newline.1553 367 (lambda (results.1645) 368 (if (memv (parse-results-token-value results.1645) 369 '(#\newline #\return)) 370 (white.1551 results.1645) 371 (skip-to-newline.1553 (parse-results-next results.1645))))) 372 (set! token.1554 373 (lambda (str.1646) 374 (lambda (starting-results.1647) 375 ((let ((loop.1648 'undefined)) 376 (begin 377 (set! loop.1648 378 (lambda (pos.1649 results.1650) 379 (if (= pos.1649 (string-length str.1646)) 380 (make-result str.1646 results.1650) 381 (if (char=? 382 (parse-results-token-value results.1650) 383 (string-ref str.1646 pos.1649)) 384 (loop.1648 385 (+ pos.1649 '1) 386 (parse-results-next results.1650)) 387 (make-expected-result 388 (parse-results-position starting-results.1647) 389 str.1646))))) 390 loop.1648)) 391 '0 392 starting-results.1647)))) 393 (set! interpret-string-escape.1555 394 (lambda (results.1651 k.1652) 395 ((lambda (ch.1653 results.1654) 396 (if (char=? ch.1653 '#\u) 397 ((let ((doloop.1655 'undefined)) 398 (begin 399 (set! doloop.1655 400 (lambda (i.1656 str.1657 results.1658) 401 (if (= i.1656 '4) 402 (k.1652 403 (decode-unicode-string.1550 str.1657) 404 results.1658) 405 (begin 406 (set! str.1657 407 (string-append 408 str.1657 409 (string (parse-results-token-value results.1658)))) 410 (doloop.1655 411 (+ i.1656 '1) 412 str.1657 413 (parse-results-next results.1658)))))) 414 doloop.1655)) 415 '0 416 '"" 417 results.1654) 418 (k.1652 419 ((lambda (t.1659) (if t.1659 (cdr t.1659) ch.1653)) 420 (assv ch.1653 421 '((#\b . #\backspace) 422 (#\n . #\newline) 423 (#\f . #\page) 424 (#\r . #\return) 425 (#\t . #\tab)))) 426 results.1654))) 427 (parse-results-token-value results.1651) 428 (parse-results-next results.1651)))) 429 (set! jstring-body.1556 430 (lambda (results.1660) 431 ((let ((loop.1661 'undefined)) 432 (begin 433 (set! loop.1661 434 (lambda (acc.1662 results.1663) 435 ((lambda (ch.1664) 436 ((lambda (t.1665) 437 (if (memv t.1665 '(#\\)) 438 (interpret-string-escape.1555 439 (parse-results-next results.1663) 440 (lambda (val.1666 results.1667) 441 (let ((new-acc.1668 'undefined)) 442 (begin 443 (set! new-acc.1668 444 (if (char? val.1666) 445 (cons val.1666 acc.1662) 446 (append-reverse! 447 (string->list val.1666) 448 acc.1662))) 449 (loop.1661 new-acc.1668 results.1667))))) 450 (if (memv t.1665 '(#\")) 451 (make-result 452 (list->string (reverse acc.1662)) 453 results.1663) 454 (loop.1661 455 (cons ch.1664 acc.1662) 456 (parse-results-next results.1663))))) 457 ch.1664)) 458 (parse-results-token-value results.1663)))) 459 loop.1661)) 460 '() 461 results.1660))) 462 (set! jnumber-body.1557 463 (lambda (starting-results.1669) 464 ((let ((loop.1670 'undefined)) 465 (begin 466 (set! loop.1670 467 (lambda (acc.1671 results.1672) 468 ((lambda (ch.1673) 469 (if (memv ch.1673 470 '(#\- 471 #\+ 472 #\0 473 #\1 474 #\2 475 #\3 476 #\4 477 #\5 478 #\6 479 #\7 480 #\8 481 #\9 482 #\. 483 #\e 484 #\E)) 485 (loop.1670 486 (cons ch.1673 acc.1671) 487 (parse-results-next results.1672)) 488 ((lambda (n.1674) 489 (if n.1674 490 (make-result n.1674 results.1672) 491 (make-expected-result 492 (parse-results-position starting-results.1669) 493 'number))) 494 (string->number 495 (list->string (reverse acc.1671)))))) 496 (parse-results-token-value results.1672)))) 497 loop.1670)) 498 '() 499 starting-results.1669))) 500 any.1539))))) 501