Evaluate definitions.
This commit is contained in:
parent
67b60be123
commit
8fab04b02e
|
|
@ -0,0 +1,2 @@
|
|||
generate_defs
|
||||
joy
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
joy: joy.scm defs.scm
|
||||
csc joy.scm
|
||||
|
||||
generate_defs: generate_defs.scm
|
||||
csc generate_defs.scm
|
||||
|
||||
defs.scm: ../defs.txt generate_defs
|
||||
./generate_defs
|
||||
|
||||
clean:
|
||||
rm generate_defs joy
|
||||
|
||||
|
|
@ -18,11 +18,14 @@
|
|||
(cond
|
||||
((is-it? "+") (values (joy-add stack) expression dict))
|
||||
((is-it? "-") (values (joy-sub stack) expression dict))
|
||||
((is-it? "mul") (values (joy-mul stack) expression dict))
|
||||
((is-it? "dup") (values (joy-dup stack) expression dict))
|
||||
((hash-table-exists? dict symbol) (values stack (append (hash-table-ref dict symbol) expression) dict))
|
||||
(else (values (cons symbol stack) expression dict))))
|
||||
|
||||
(define (joy-add stack) (cons (+ (cadr stack) (car stack)) (cddr stack)))
|
||||
(define (joy-sub stack) (cons (- (cadr stack) (car stack)) (cddr stack)))
|
||||
(define (joy-mul stack) (cons (* (cadr stack) (car stack)) (cddr stack)))
|
||||
(define (joy-dup stack) (cons (car stack) stack))
|
||||
|
||||
|
||||
|
|
@ -98,6 +101,6 @@
|
|||
(hash-table-set! dict (car def_list) (cdr def_list))))
|
||||
|
||||
|
||||
(display (doit "ab cd [[ ]] 23 4 - dup - [true] false"))
|
||||
(display (doit "ab cd [[ ]] 23 4 - dup - [true] false 23 sqr"))
|
||||
(newline)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue