diff options
author | Ben Burwell <bburwell1@gmail.com> | 2013-04-29 15:14:22 -0400 |
---|---|---|
committer | Ben Burwell <bburwell1@gmail.com> | 2013-04-29 15:14:22 -0400 |
commit | fde86265a2a8ba8fc898de18184ffe75748ffdba (patch) | |
tree | f6747d8a548bc421eaf3d25cc6b2d18a292c2198 | |
parent | c4822b5a744ea39c8185a758121cdd0cada91527 (diff) |
Fixes multiple terms and factors
-rw-r--r-- | HW05b.scm | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -55,7 +55,7 @@ (eval-add-op (car ops) term (car terms)) ;; else, handle multiple terms - 'a + (expr-helper (eval-add-op (car ops) term (car terms)) (cdr ops) (cdr terms)) )))) @@ -65,10 +65,10 @@ (cases add-op op ;; perform addition - (plus-op () (+ (eval-term term1) (eval-term term2))) + (plus-op () (if (term? term1) (+ (eval-term term1) (eval-term term2)) (+ term1 (eval-term term2)))) ;; perform subtraction - (minus-op () (- (eval-term term1) (eval-term term2))) + (minus-op () (if (term? term1) (- (eval-term term1) (eval-term term2)) (- term1 (eval-term term2)))) ))) ;; evaluate a term @@ -96,7 +96,7 @@ (eval-mult-op (car ops) factor (car factors)) ;; otherwise, handle multiple factors - 'b + (term-helper (eval-mult-op (car ops) factor (car factors)) (cdr ops) (cdr factors)) )))) @@ -106,10 +106,10 @@ (cases mult-op op ;; perform multiplication - (times-op () (* (eval-factor fac1) (eval-factor fac2))) + (times-op () (if (factor? fac1) (* (eval-factor fac1) (eval-factor fac2)) (* fac1 (eval-factor fac2)))) ;; perform division - (divide-op () (/ (eval-factor fac1) (eval-factor fac2))) + (divide-op () (if (factor? fac1) (/ (eval-factor fac1) (eval-factor fac2)) (/ fac1 (eval-factor fac2)))) ))) ;; evaluate a factor @@ -138,5 +138,11 @@ (define read-eval-print (sllgen:make-rep-loop "> " execute-expression (sllgen:make-stream-parser scanner-spec grammar))) -;; shortcut for quicker testing -(define spe scan&parse&eval)
\ No newline at end of file +(define test + (lambda () + (display "Type something in and see if it works!!!") + (newline) + (read-eval-print))) + +(display "Run (test) to test program") +(newline)
\ No newline at end of file |