;;; Erik Sanders ;;; Ross Hansen ;;; Supported Forms ; ::=
* ; ::= | ; ::= | (begin *) ; ::= (define ) ; ::= ; ::= ; ::= (quote ) ; ::= (lambda *) ; ::= (if ) ; ::= (if ) ; ::= ; ::= (begin *) ; ::= (let ({ }*) {}+) ; ::= (let ({variable> }*) {}+) ; ::= (let* ({ }*) {}+) ; ::= (letrec ({ }*) {+}) ; ::= (set! ) ; ::= (cond {( )}+) ; ::= (case {[ {}+]}+) | ; (case {[({}+) {}+]}+) ; ::= (and {}*) ; ::= (or {}*) ; ::= (while {}+) ; ::= | | | | ; ::= ; ::= (*) ; ::= ( * . ) ; ::= ( *) (load "env.ss") (load "interpreter.ss") (load "parser.ss") (define rep (lambda () (begin (display "--> ") (let ([in (read)]) (if (not (equal? in '(exit))) (begin (write (eval-one-exp in)) (newline) (rep))))))) (define convertstuff (lambda (stuff) (if (pair? stuff) (if (eq? (car stuff) 'closure-record) ' (cons (convertstuff (car stuff)) (convertstuff (cdr stuff)))) stuff)))