Fold in expect-right-bracket-lookahead
This commit is contained in:
parent
735ee73515
commit
4bb47c6b15
|
|
@ -236,19 +236,17 @@
|
||||||
((string=? token "false") #f)
|
((string=? token "false") #f)
|
||||||
(else (string->symbol token))))
|
(else (string->symbol token))))
|
||||||
|
|
||||||
(define (expect-right-bracket tokens acc)
|
(define (expect-right-bracket tokens0 acc)
|
||||||
(if (null? tokens)
|
(if (null? tokens0)
|
||||||
(abort "Missing closing bracket.")
|
(abort "Missing closing bracket.")
|
||||||
(expect-right-bracket-lookahead (car tokens) (cdr tokens) acc)))
|
(receive (token tokens) (car+cdr tokens0)
|
||||||
|
|
||||||
(define (expect-right-bracket-lookahead token tokens acc)
|
|
||||||
(match token
|
(match token
|
||||||
("]" (values acc tokens))
|
("]" (values acc tokens))
|
||||||
("[" (receive (sub_list rest) (expect-right-bracket tokens '())
|
("[" (receive (sub_list rest) (expect-right-bracket tokens '())
|
||||||
(receive (el rrest) (expect-right-bracket rest acc)
|
(receive (el rrest) (expect-right-bracket rest acc)
|
||||||
(values (cons sub_list el) rrest))))
|
(values (cons sub_list el) rrest))))
|
||||||
(_ (receive (el rest) (expect-right-bracket tokens acc)
|
(_ (receive (el rest) (expect-right-bracket tokens acc)
|
||||||
(values (cons (tokenator token) el) rest)))))
|
(values (cons (tokenator token) el) rest)))))))
|
||||||
|
|
||||||
(define (one-token-lookahead token tokens)
|
(define (one-token-lookahead token tokens)
|
||||||
(match token
|
(match token
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue