Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define next (read))
- (define (peek) next)
- (define (get) (define t next) (set! next (read)) t)
- (define (parse-atom) (get))
- (define (parse-mul)
- (define cur (parse-atom))
- (define c (peek))
- (define (recur)
- (when (or (eq? c '*) (eq? c '/)) (begin
- (get)
- (define m2 (parse-atom))
- (set! cur (if (eq? c '*) (* cur m2) (/ cur m2)))
- (set! c (peek))
- (recur))
- ))
- (recur)
- cur
- )
- (define (parse-add)
- (define cur (parse-mul))
- (define c (peek))
- (define (recur)
- (when (or (eq? c '+) (eq? c '-)) (begin
- (get)
- (define m2 (parse-mul))
- (set! cur (if (eq? c '+) (+ cur m2) (- cur m2)))
- (set! c (peek))
- (recur))
- ))
- (recur)
- cur
- )
- (display (parse-add))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement