(load "chez-init.ss"); This is a parser for simple Scheme expressions, such as those in EOPL, 3.1 thru 3.3. ; You will want to replace this with your parser that includes more expression types, more options for these types, and error-checking. ; Procedures to make the parser a little bit saner. (define 1st car) (define 2nd cadr) (define 3rd caddr) (define parse-exp (lambda (datum) (cond [(symbol? datum) (var-exp datum)] [(number? datum) (lit-exp datum)] [(pair? datum) (cond [else (app-exp (parse-exp (1st datum)) (map parse-exp (cdr datum)))])] [else (eopl:error 'parse-exp "bad expression: ~s" datum)])))