Good work done on bang.

This commit is contained in:
2026-03-03 19:16:00 -05:00
parent 8e093ab0b5
commit d45570305a
2 changed files with 65 additions and 28 deletions
-5
View File
@@ -58,7 +58,6 @@ POSTT :== PUWAE
(: parsepost : (Sexpr (Listof PUWAE) -> PUWAE))
; Parse a post expression into a PUWAE.
(define (parsepost sexpr glob)
(println (format "parsing '~s' with glob '~s'" sexpr glob))
(match sexpr
['() (if (= 1 (length glob)) (first glob) (error 'parsepost "finished with messy glob: ~s" glob))] ; There shouldn't be anything else left in the stack.
[(cons '+ rest) (parsepost rest (parsepost-sum glob))]
@@ -78,25 +77,21 @@ POSTT :== PUWAE
(: parsepost-sum : ((Listof PUWAE) -> (Listof PUWAE)))
; Parse a post sum.
(define (parsepost-sum glob)
(println (format "summing '~s'" glob))
(glob-swap 'sum glob Sum))
(: parsepost-mul : ((Listof PUWAE) -> (Listof PUWAE)))
; Parse a post product.
(define (parsepost-mul glob)
(println (format "mulling '~s'" glob))
(glob-swap 'mul glob Mul))
(: parsepost-sub : ((Listof PUWAE) -> (Listof PUWAE)))
; Parse a post subtration.
(define (parsepost-sub glob)
(println (format "subbing '~s'" glob))
(glob-swap 'sub glob Sub))
(: parsepost-div : ((Listof PUWAE) -> (Listof PUWAE)))
; Parse a post quotient.
(define (parsepost-div glob)
(println (format "divving '~s'" glob))
(glob-swap 'div glob Div))
(: eval : (PUWAE -> Number))