(declare (block) (standard-bindings) (extended-bindings))
(begin
  (define std/parser/lexer#token-stream::t
    (make-struct-type
     'std/parser/lexer#token-stream::t
     '#f
     '5
     'token-stream
     '((final: . #t))
     '#f
     '(cs buf Ls Rs $$)))
  (define std/parser/lexer#token-stream?
    (make-struct-predicate std/parser/lexer#token-stream::t))
  (define std/parser/lexer#make-token-stream
    (lambda _$args924_
      (apply make-struct-instance
             std/parser/lexer#token-stream::t
             _$args924_)))
  (define std/parser/lexer#token-stream-cs
    (make-struct-field-accessor std/parser/lexer#token-stream::t '0))
  (define std/parser/lexer#token-stream-buf
    (make-struct-field-accessor std/parser/lexer#token-stream::t '1))
  (define std/parser/lexer#token-stream-Ls
    (make-struct-field-accessor std/parser/lexer#token-stream::t '2))
  (define std/parser/lexer#token-stream-Rs
    (make-struct-field-accessor std/parser/lexer#token-stream::t '3))
  (define std/parser/lexer#token-stream-$$
    (make-struct-field-accessor std/parser/lexer#token-stream::t '4))
  (define std/parser/lexer#token-stream-cs-set!
    (make-struct-field-mutator std/parser/lexer#token-stream::t '0))
  (define std/parser/lexer#token-stream-buf-set!
    (make-struct-field-mutator std/parser/lexer#token-stream::t '1))
  (define std/parser/lexer#token-stream-Ls-set!
    (make-struct-field-mutator std/parser/lexer#token-stream::t '2))
  (define std/parser/lexer#token-stream-Rs-set!
    (make-struct-field-mutator std/parser/lexer#token-stream::t '3))
  (define std/parser/lexer#token-stream-$$-set!
    (make-struct-field-mutator std/parser/lexer#token-stream::t '4))
  (define std/parser/lexer#$
    (let ()
      (declare (not safe))
      (##structure std/parser/base#token::t '$ '#!void '#f)))
  (define std/parser/lexer#$?
    (lambda (_obj922_) (eq? std/parser/lexer#$ _obj922_)))
  (define std/parser/lexer#$$
    (lambda (_loc920_)
      (let ((__tmp4745 (eof-object)))
        (declare (not safe))
        (##structure std/parser/base#token::t '$$ __tmp4745 _loc920_))))
  (define std/parser/lexer#$$?
    (lambda (_obj884_)
      (let* ((_obj885894_ _obj884_) (_else888902_ (lambda () '#f)))
        (let ((_K891914_ (lambda () '#t)) (_K890907_ (lambda () '#t)))
          (let ((_try-match887910_
                 (lambda ()
                   (if (eof-object? _obj885894_) (_K890907_) (_else888902_)))))
            (if (let ()
                  (declare (not safe))
                  (##structure-direct-instance-of?
                   _obj885894_
                   'std/parser/base#token::t))
                (let ((_e892917_
                       (let ()
                         (declare (not safe))
                         (##vector-ref _obj885894_ '1))))
                  (if (let () (declare (not safe)) (##eq? _e892917_ '$$))
                      (_K891914_)
                      (_try-match887910_)))
                (_try-match887910_)))))))
  (define std/parser/lexer#lex
    (lambda (_input878_ _Ls879_ _Rs880_)
      (let ((_cs882_ (std/parser/lexer#lexer-input-stream _input878_)))
        (declare (not safe))
        (##structure
         std/parser/lexer#token-stream::t
         _cs882_
         '()
         _Ls879_
         _Rs880_
         '#f))))
  (define std/parser/lexer#lex-chars
    (lambda (_input873_)
      (std/parser/lexer#lex
       _input873_
       (cons std/parser/rlang#@dot '())
       (cons (lambda (_str875_ _loc876_)
               (let ((__tmp4746 (string-ref _str875_ '0)))
                 (declare (not safe))
                 (##structure
                  std/parser/base#token::t
                  'Char
                  __tmp4746
                  _loc876_)))
             '()))))
  (define std/parser/lexer#token-stream-close
    (lambda (_ts871_)
      (std/parser/stream#char-stream-close
       (##direct-structure-ref
        _ts871_
        '1
        std/parser/lexer#token-stream::t
        '#f))))
  (define std/parser/lexer#token-stream-get
    (lambda (_ts788_)
      (let* ((_ts789798_ _ts788_)
             (_E791802_ (lambda () (error '"No clause matching" _ts789798_)))
             (_K792848_
              (lambda (_Rs805_ _Ls806_ _buf807_ _cs808_)
                (let* ((_buf809817_ _buf807_)
                       (_else811830_
                        (lambda ()
                          (let _lp825_ ()
                            (let ((_next828_
                                   (std/parser/lexer#lex1
                                    _cs808_
                                    _Ls806_
                                    _Rs805_)))
                              (if (std/parser/lexer#$? _next828_)
                                  (_lp825_)
                                  _next828_)))))
                       (_K813836_
                        (lambda (_rest833_ _tok834_)
                          (##direct-structure-set!
                           _ts788_
                           _rest833_
                           '2
                           std/parser/lexer#token-stream::t
                           '#f)
                          _tok834_)))
                  (if (let () (declare (not safe)) (##pair? _buf809817_))
                      (let ((_hd814839_
                             (let () (declare (not safe)) (##car _buf809817_)))
                            (_tl815841_
                             (let ()
                               (declare (not safe))
                               (##cdr _buf809817_))))
                        (let* ((_tok844_ _hd814839_) (_rest846_ _tl815841_))
                          (_K813836_ _rest846_ _tok844_)))
                      (_else811830_))))))
        (if (let ()
              (declare (not safe))
              (##structure-direct-instance-of?
               _ts789798_
               'std/parser/lexer#token-stream::t))
            (let* ((_e793851_
                    (let () (declare (not safe)) (##vector-ref _ts789798_ '1)))
                   (_cs854_ _e793851_)
                   (_e794856_
                    (let () (declare (not safe)) (##vector-ref _ts789798_ '2)))
                   (_buf859_ _e794856_)
                   (_e795861_
                    (let () (declare (not safe)) (##vector-ref _ts789798_ '3)))
                   (_Ls864_ _e795861_)
                   (_e796866_
                    (let () (declare (not safe)) (##vector-ref _ts789798_ '4)))
                   (_Rs869_ _e796866_))
              (_K792848_ _Rs869_ _Ls864_ _buf859_ _cs854_))
            (_E791802_)))))
  (define std/parser/lexer#token-stream-next
    (lambda (_ts779_)
      (let ((_next781_ (std/parser/lexer#token-stream-get _ts779_)))
        (if (eof-object? _next781_)
            (let ((_$e783_ (##direct-structure-ref
                            _ts779_
                            '5
                            std/parser/lexer#token-stream::t
                            '#f)))
              (if _$e783_
                  (values _$e783_)
                  (let ((_eof786_
                         (std/parser/lexer#$$
                          (##direct-structure-ref
                           (##direct-structure-ref
                            _ts779_
                            '1
                            std/parser/lexer#token-stream::t
                            '#f)
                           '3
                           std/parser/stream#char-stream::t
                           '#f))))
                    (##direct-structure-set!
                     _ts779_
                     _eof786_
                     '5
                     std/parser/lexer#token-stream::t
                     '#f)
                    _eof786_)))
            _next781_))))
  (define std/parser/lexer#token-stream-unget
    (lambda (_ts750_ _tok751_)
      (if (eof-object? _tok751_)
          '#!void
          (let* ((_ts752759_ _ts750_)
                 (_E754763_
                  (lambda () (error '"No clause matching" _ts752759_)))
                 (_K755768_
                  (lambda (_buf766_)
                    (##direct-structure-set!
                     _ts750_
                     (cons _tok751_ _buf766_)
                     '2
                     std/parser/lexer#token-stream::t
                     '#f))))
            (if (let ()
                  (declare (not safe))
                  (##structure-direct-instance-of?
                   _ts752759_
                   'std/parser/lexer#token-stream::t))
                (let* ((_e756771_
                        (let ()
                          (declare (not safe))
                          (##vector-ref _ts752759_ '1)))
                       (_e757774_
                        (let ()
                          (declare (not safe))
                          (##vector-ref _ts752759_ '2)))
                       (_buf777_ _e757774_))
                  (_K755768_ _buf777_))
                (_E754763_))))))
  (define std/parser/lexer#token-stream-peek
    (lambda (_ts687_)
      (let* ((_ts688695_ _ts687_)
             (_E690699_ (lambda () (error '"No clause matching" _ts688695_)))
             (_K691739_
              (lambda (_buf702_)
                (let* ((_buf703711_ _buf702_)
                       (_else705721_
                        (lambda ()
                          (let ((_next719_
                                 (std/parser/lexer#token-stream-get _ts687_)))
                            (if (eof-object? _next719_)
                                '#!void
                                (##direct-structure-set!
                                 _ts687_
                                 (cons _next719_ '())
                                 '2
                                 std/parser/lexer#token-stream::t
                                 '#f))
                            _next719_)))
                       (_K707727_ (lambda (_rest724_ _tok725_) _tok725_)))
                  (if (let () (declare (not safe)) (##pair? _buf703711_))
                      (let ((_hd708730_
                             (let () (declare (not safe)) (##car _buf703711_)))
                            (_tl709732_
                             (let ()
                               (declare (not safe))
                               (##cdr _buf703711_))))
                        (let* ((_tok735_ _hd708730_) (_rest737_ _tl709732_))
                          (_K707727_ _rest737_ _tok735_)))
                      (_else705721_))))))
        (if (let ()
              (declare (not safe))
              (##structure-direct-instance-of?
               _ts688695_
               'std/parser/lexer#token-stream::t))
            (let* ((_e692742_
                    (let () (declare (not safe)) (##vector-ref _ts688695_ '1)))
                   (_e693745_
                    (let () (declare (not safe)) (##vector-ref _ts688695_ '2)))
                   (_buf748_ _e693745_))
              (_K691739_ _buf748_))
            (_E690699_)))))
  (define std/parser/lexer#token-stream-loc
    (lambda (_ts623_)
      (let* ((_ts624631_ _ts623_)
             (_E626635_ (lambda () (error '"No clause matching" _ts624631_)))
             (_K627674_
              (lambda (_buf638_ _cs639_)
                (let* ((_buf640648_ _buf638_)
                       (_else642656_
                        (lambda ()
                          (##direct-structure-ref
                           _cs639_
                           '3
                           std/parser/stream#char-stream::t
                           '#f)))
                       (_K644662_
                        (lambda (_rest659_ _tok660_)
                          (##direct-structure-ref
                           _tok660_
                           '3
                           std/parser/base#token::t
                           '#f))))
                  (if (let () (declare (not safe)) (##pair? _buf640648_))
                      (let ((_hd645665_
                             (let () (declare (not safe)) (##car _buf640648_)))
                            (_tl646667_
                             (let ()
                               (declare (not safe))
                               (##cdr _buf640648_))))
                        (let* ((_tok670_ _hd645665_) (_rest672_ _tl646667_))
                          (_K644662_ _rest672_ _tok670_)))
                      (_else642656_))))))
        (if (let ()
              (declare (not safe))
              (##structure-direct-instance-of?
               _ts624631_
               'std/parser/lexer#token-stream::t))
            (let* ((_e628677_
                    (let () (declare (not safe)) (##vector-ref _ts624631_ '1)))
                   (_cs680_ _e628677_)
                   (_e629682_
                    (let () (declare (not safe)) (##vector-ref _ts624631_ '2)))
                   (_buf685_ _e629682_))
              (_K627674_ _buf685_ _cs680_))
            (_E626635_)))))
  (define std/parser/lexer#lexer-input-stream
    (lambda (_inp621_)
      (if (input-port? _inp621_)
          (let ((__obj4743 (make-object std/parser/stream#char-stream::t '4)))
            (std/parser/stream#char-stream:::init! __obj4743 _inp621_)
            __obj4743)
          (if (string? _inp621_)
              (let ((__obj4744
                     (make-object std/parser/stream#char-stream::t '4)))
                (std/parser/stream#char-stream:::init!
                 __obj4744
                 (open-input-string _inp621_))
                __obj4744)
              (if (let ()
                    (declare (not safe))
                    (##structure-direct-instance-of?
                     _inp621_
                     'std/parser/stream#char-stream::t))
                  _inp621_
                  (error '"Bad input source; expected input-port, string or char-stream"
                         _inp621_))))))
  (define std/parser/lexer#lex1
    (lambda (_cs393_ _Ls394_ _Rs395_)
      (letrec ((_chars->string397_
                (lambda (_chars619_) (list->string (reverse _chars619_))))
               (_token-e398_
                (lambda (_t612_ _e613_ _start614_ _end615_)
                  (let ((_loc617_
                         (std/parser/base#location-delta _start614_ _end615_)))
                    (declare (not safe))
                    (##structure
                     std/parser/base#token::t
                     _t612_
                     _e613_
                     _loc617_))))
               (_raise-e399_
                (lambda (_chars606_ _start607_ _end608_)
                  (let ((_tok610_
                         (_token-e398_
                          'ERROR
                          (_chars->string397_ _chars606_)
                          _start607_
                          _end608_)))
                    (std/parser/base#raise-parse-error
                     'lex
                     '"No lexeme matching input"
                     _tok610_))))
               (_loop400_
                (lambda (_Ls414_ _chars415_ _start416_ _E417_)
                  (let ((_next419_
                         (std/parser/stream#char-stream-getc _cs393_)))
                    (if (eof-object? _next419_)
                        (if (null? _chars415_)
                            (eof-object)
                            (let _lp421_ ((_rest-Ls423_ _Ls414_)
                                          (_rest-Rs424_ _Rs395_))
                              (let* ((_rest-Ls425433_ _rest-Ls423_)
                                     (_else427441_
                                      (lambda () (_E417_ _chars415_)))
                                     (_K429477_
                                      (lambda (_rest-Ls444_ _L445_)
                                        (let* ((_rest-Rs446453_ _rest-Rs424_)
                                               (_E448457_
                                                (lambda ()
                                                  (error '"No clause matching"
                                                         _rest-Rs446453_)))
                                               (_K449465_
                                                (lambda (_rest-Rs460_ _R461_)
                                                  (if (std/parser/rlang#delta
                                                       _L445_)
                                                      (let ((_end463_
                                                             (##direct-structure-ref
                                                              _cs393_
                                                              '3
                                                              std/parser/stream#char-stream::t
                                                              '#f)))
                                                        (_R461_ (_chars->string397_
;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                         _chars415_)
                        (std/parser/base#location-delta _start416_ _end463_)))
              (_lp421_ _rest-Ls444_ _rest-Rs460_)))))
;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                                          (if (let ()
                                                (declare (not safe))
                                                (##pair? _rest-Rs446453_))
                                              (let ((_hd450468_
                                                     (let ()
                                                       (declare (not safe))
                                                       (##car _rest-Rs446453_)))
                                                    (_tl451470_
                                                     (let ()
                                                       (declare (not safe))
                                                       (##cdr _rest-Rs446453_))))
                                                (let* ((_R473_ _hd450468_)
                                                       (_rest-Rs475_
                                                        _tl451470_))
                                                  (_K449465_
                                                   _rest-Rs475_
                                                   _R473_)))
                                              (_E448457_))))))
                                (if (let ()
                                      (declare (not safe))
                                      (##pair? _rest-Ls425433_))
                                    (let ((_hd430480_
                                           (let ()
                                             (declare (not safe))
                                             (##car _rest-Ls425433_)))
                                          (_tl431482_
                                           (let ()
                                             (declare (not safe))
                                             (##cdr _rest-Ls425433_))))
                                      (let* ((_L485_ _hd430480_)
                                             (_rest-Ls487_ _tl431482_))
                                        (_K429477_ _rest-Ls487_ _L485_)))
                                    (_else427441_)))))
                        (let* ((_chars489_ (cons _next419_ _chars415_))
                               (_Ls*495_
                                (map (lambda (_g490492_)
                                       (std/parser/rlang#deriv
                                        _g490492_
                                        _next419_))
                                     _Ls414_))
                               (_deltas497_
                                (map std/parser/rlang#delta _Ls*495_)))
                          (if (ormap1 values _deltas497_)
                              (let* ((_end500_
                                      (##direct-structure-ref
                                       _cs393_
                                       '3
                                       std/parser/stream#char-stream::t
                                       '#f))
                                     (_E600_ (lambda (_xchars502_)
                                               (let ((_count504_
                                                      (let ((__tmp4748
                                                             (length _xchars502_))
                                                            (__tmp4747
                                                             (length _chars489_)))
                                                        (declare (not safe))
                                                        (##fx- __tmp4748
                                                               __tmp4747))))
                                                 (let _lp506_ ((_rest508_
                                                                _xchars502_)
                                                               (_k509_ '0))
                                                   (if (let ()
                                                         (declare (not safe))
                                                         (##fx< _k509_
                                                                _count504_))
                                                       (let* ((_rest510517_
                                                               _rest508_)
                                                              (_E512521_
                                                               (lambda ()
;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                         (error '"No clause matching" _rest510517_)))
                      (_K513527_
                       (lambda (_rest524_ _char525_)
                         (std/parser/stream#char-stream-ungetc
                          _cs393_
                          _char525_)
                         (_lp506_ _rest524_
                                  (let ()
                                    (declare (not safe))
                                    (##fx+ _k509_ '1))))))
                 (if (let () (declare (not safe)) (##pair? _rest510517_))
                     (let ((_hd514530_
                            (let () (declare (not safe)) (##car _rest510517_)))
                           (_tl515532_
                            (let ()
                              (declare (not safe))
                              (##cdr _rest510517_))))
                       (let* ((_char535_ _hd514530_) (_rest537_ _tl515532_))
                         (_K513527_ _rest537_ _char535_)))
                     (_E512521_)))
               '#!void)))
;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                                               (let _lp539_ ((_rest-deltas541_
                                                              _deltas497_)
                                                             (_rest-Rs542_
                                                              _Rs395_))
                                                 (let* ((_rest-deltas543550_
                                                         _rest-deltas541_)
                                                        (_E545554_
                                                         (lambda ()
                                                           (error '"No clause matching"
;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                          _rest-deltas543550_)))
                (_K546588_
                 (lambda (_rest-deltas557_ _hd558_)
                   (let* ((_rest-Rs559566_ _rest-Rs542_)
                          (_E561570_
                           (lambda ()
                             (error '"No clause matching" _rest-Rs559566_)))
                          (_K562576_
                           (lambda (_rest-Rs573_ _R574_)
                             (if _hd558_
                                 (_R574_ (_chars->string397_ _chars489_)
                                         (std/parser/base#location-delta
                                          _start416_
                                          _end500_))
                                 (_lp539_ _rest-deltas557_ _rest-Rs573_)))))
                     (if (let ()
                           (declare (not safe))
                           (##pair? _rest-Rs559566_))
                         (let ((_hd563579_
                                (let ()
                                  (declare (not safe))
                                  (##car _rest-Rs559566_)))
                               (_tl564581_
                                (let ()
                                  (declare (not safe))
                                  (##cdr _rest-Rs559566_))))
                           (let* ((_R584_ _hd563579_)
                                  (_rest-Rs586_ _tl564581_))
                             (_K562576_ _rest-Rs586_ _R584_)))
                         (_E561570_))))))
;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                                                   (if (let ()
                                                         (declare (not safe))
                                                         (##pair? _rest-deltas543550_))
                                                       (let ((_hd547591_
                                                              (let ()
                                                                (declare
;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                          (not safe))
                        (##car _rest-deltas543550_)))
                     (_tl548593_
                      (let ()
                        (declare (not safe))
                        (##cdr _rest-deltas543550_))))
                 (let* ((_hd596_ _hd547591_) (_rest-deltas598_ _tl548593_))
                   (_K546588_ _rest-deltas598_ _hd596_)))
               (_E545554_)))))))
;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                                (_loop400_
                                 _Ls*495_
                                 _chars489_
                                 _start416_
                                 _E600_))
                              (if (ormap1 (lambda (_$obj603_)
                                            (not (std/parser/rlang#@nul?
                                                  _$obj603_)))
                                          _Ls*495_)
                                  (_loop400_
                                   _Ls*495_
                                   _chars489_
                                   _start416_
                                   _E417_)
                                  (_E417_ _chars489_)))))))))
        (let* ((_first402_ (std/parser/stream#char-stream-getc _cs393_))
               (_start404_
                (##direct-structure-ref
                 _cs393_
                 '3
                 std/parser/stream#char-stream::t
                 '#f))
               (_g4749_ (std/parser/stream#char-stream-ungetc
                         _cs393_
                         _first402_))
               (_E411_ (lambda (_chars407_)
                         (let ((_end409_
                                (##direct-structure-ref
                                 _cs393_
                                 '3
                                 std/parser/stream#char-stream::t
                                 '#f)))
                           (_raise-e399_ _chars407_ _start404_ _end409_)))))
          (_loop400_ _Ls394_ '() _start404_ _E411_))))))
