Open melvinzhang opened 9 years ago
make bin/eval cd test-pepsi; ../bin/eval boot.l repl.l test-pepsi.l
eval.k: undefined variable: string->double 20: (eval.0+39 (cons.0+42 (Fixed(Subr(quote)) lambda) (cons.0+42 args.2+2 (cons.0+42 (cons.0+42 (Fixed(Subr(quote)) with-instance-accessors) (cons.0+42 type.2+1 body.2+3)) (Fixed(Subr(quote)) nil))))) 19: (<selector>-add-method.0+234 self.2+0 type.2+1 (eval.0+39 (cons.0+42 (Fixed(Subr(quote)) lambda) (cons.0+42 args.2+2 (cons.0+42 (cons.0+42 (Fixed(Subr(quote)) with-instance-accessors) (cons.0+42 type.2+1 body.2+3)) (Fixed(Subr(quote)) nil)))))) 18: (apply.0+38 (Fixed(Subr(or)) (array-at.0+63 (oop-at.0+60 (%typecheck.0+150 <selector>.0+227 self.2+0) 1) (type-of.0+51 (car.0+56 arguments.2+1))) (<selector>-inherit.0+232 (oop-at.0+60 (%typecheck.0+150 <selector>.0+227 self.2+0) 1) (type-of.0+51 (car.0+56 arguments.2+1))) (oop-at.0+60 (%typecheck.0+150 <selector>.0+227 self.2+0) 2)) arguments.2+1) 17: (add-method.0+236 $ufloat.0+620 <temp-grammar>.0+564 (Fixed(Subr(quote)) (self)) (Fixed(Subr(quote)) ((let ((s)) (let ((pos (oop-at (%typecheck <parser-stream> self.source) 1))) (or (and (let ((_s (and (let ((pos (oop-at (%typecheck <parser-stream> self.source) 1))) (and (let ((pos (oop-at (%typecheck <parser-stream> self.source) 1))) (or (and (let ((_list_ (group))) (while (peg-invoke-rule $digit (quote $digit) self) (group-append _list_ self.result self.source)) (and (not (group-empty? _list_)) (let nil (set self.result (group->list! _list_)) 1))) (set self.result (parser-stream-match-string self.source ".")) (let ((_list_ (group))) (while (peg-invoke-rule $digit (quote $digit) self) (group-append _list_ self.result self.source)) (and (not (group-empty? _list_)) (let nil (set self.result (group->list! _list_)) 1))) (let ((_list_ (group))) (and (let ((pos (oop-at (%typecheck <parser-stream> self.source) 1))) (or (and (set self.result (parser-stream-match-string self.source "e")) (let ((_list_ (group))) (while (peg-invoke-rule $digit (quote $digit) self) (group-append _list_ self.result self.source)) (and (not (group-empty? _list_)) (let nil (set self.result (group->list! _list_)) 1)))) (let nil (set-oop-at (%typecheck <parser-stream> self.source) 1 pos) nil))) (group-append _list_ self.result self.source)) (set self.result (group->list! _list_)) 1)) (let nil (set-oop-at (%typecheck <parser-stream> self.source) 1 pos) nil))) (let nil (set self.result (list-from-to pos (oop-at (%typecheck <parser-stream> self.source) 1))) 1))) (set self.result (list->string self.result))))) (and _s (let nil (set s self.result) _s))) (peg-invoke-rule $_ (quote $_) self) (let nil (peg-source-range-begin self) (set self.result (string->double s)) (peg-source-range-end self) 1)) (let nil (set-oop-at (%typecheck <parser-stream> self.source) 1 pos) nil))))))) 16: (eval.0+39 expr.2+0) 15: (Fixed(Subr(let)) Env<2> ((result.2+1 (eval.0+39 expr.2+0))) (Fixed(Subr(and)) (>.0+31 (verbose.0+71) 1) (println.0+240 "=> " result.2+1)) result.2+1) 14: (pval.0+304 defn.2+5) 13: (Fixed(Subr(let)) Env<2> ((defn.2+5 (car.0+56 _list_.2+4))) (pval.0+304 defn.2+5)) 12: (Fixed(Subr(while)) _list_.2+4 (Fixed(Subr(let)) Env<2> ((defn.2+5 (car.0+56 _list_.2+4))) (pval.0+304 defn.2+5)) (Fixed(Subr(set)) _list_.2+4 (cdr.0+57 _list_.2+4))) 11: (Fixed(Subr(let)) Env<2> ((_list_.2+4 defns.2+3)) (Fixed(Subr(while)) _list_.2+4 (Fixed(Subr(let)) Env<2> ((defn.2+5 (car.0+56 _list_.2+4))) (pval.0+304 defn.2+5)) (Fixed(Subr(set)) _list_.2+4 (cdr.0+57 _list_.2+4)))) 10: (Fixed(Subr(let)) Env<2> ((decls.2+2 (with-map.0+119 peg-make-declaration.0+486 name.2+0 rules.2+1)) (defns.2+3 (with-map.0+119 peg-make-definition.0+487 name.2+0 rules.2+1))) (Fixed(Subr(let)) Env<2> ((_list_.2+4 decls.2+2)) (Fixed(Subr(while)) _list_.2+4 (Fixed(Subr(let)) Env<2> ((decl.2+5 (car.0+56 _list_.2+4))) (pval.0+304 decl.2+5)) (Fixed(Subr(set)) _list_.2+4 (cdr.0+57 _list_.2+4)))) (Fixed(Subr(let)) Env<2> ((_list_.2+4 defns.2+3)) (Fixed(Subr(while)) _list_.2+4 (Fixed(Subr(let)) Env<2> ((defn.2+5 (car.0+56 _list_.2+4))) (pval.0+304 defn.2+5)) (Fixed(Subr(set)) _list_.2+4 (cdr.0+57 _list_.2+4)))) (concat-list.0+97 decls.2+2 defns.2+3)) 9: (peg-compile-rules.0+489 (Fixed(Subr(quote)) <temp-grammar>) rules.2+1) 8: (eval.0+39 v.2+4) 7: (Fixed(Subr(set)) v.2+4 (eval.0+39 v.2+4)) 6: (Fixed(Subr(while)) (Fixed(Subr(let)) Env<2> nil (Fixed(Subr(and)) prompt.2+1 (print.0+36 prompt.2+1)) ($sexpression.0+517 p.2+2)) (Fixed(Subr(set)) v.2+4 (oop-at.0+60 (%typecheck.0+150 <parser>.0+411 p.2+2) 1)) (Fixed(Subr(set)) v.2+4 (eval.0+39 v.2+4))) 5: (Fixed(Subr(let)) Env<2> ((p.2+2 (parser.0+415 <peg>.0+422 stream.2+0)) (s.2+3 *parser-stream*.0+561) (v.2+4)) (Fixed(Subr(set)) *parser-stream*.0+561 stream.2+0) (Fixed(Subr(while)) (Fixed(Subr(let)) Env<2> nil (Fixed(Subr(and)) prompt.2+1 (print.0+36 prompt.2+1)) ($sexpression.0+517 p.2+2)) (Fixed(Subr(set)) v.2+4 (oop-at.0+60 (%typecheck.0+150 <parser>.0+411 p.2+2) 1)) (Fixed(Subr(set)) v.2+4 (eval.0+39 v.2+4))) ($sspace.0+518 p.2+2) (Fixed(Subr(or)) (parser-stream-at-end.0+366 *parser-stream*.0+561) (Fixed(Subr(let)) Env<2> nil (print.0+36 "\012syntax error in read-eval-print near: ") (Fixed(Subr(while)) (not.0+16 (parser-stream-at-end.0+366 *parser-stream*.0+561)) (print.0+36 (format.0+34 "%c" (parser-stream-next.0+370 *parser-stream*.0+561)))) (println.0+240 "<EOF>") (error.0+80 "abort"))) (Fixed(Subr(set)) *parser-stream*.0+561 s.2+3) v.2+4) 4: (repl-parser-stream.0+588 (parser-stream.0+365 stream.2+0) prompt.2+1) 3: (repl-stream.0+589 (parser-input-stream.0+383 (input-stream.0+335 file.2+0 path.2+2)) prompt.2+1) 2: (repl-file.0+590 (Fixed(Subr(or)) (open.0+46 path.2+0) (error.0+80 "cannot open: " path.2+0)) prompt.2+1 path.2+0) 1: (repl-path.0+591 (Fixed(Subr(let)) Env<1> ((_list_.1+0 *arguments*.0+74)) (Fixed(Subr(let)) Env<1> ((_head_.1+1 (car.0+56 _list_.1+0))) (Fixed(Subr(set)) *arguments*.0+74 (cdr.0+57 _list_.1+0)) _head_.1+1)) nil) 0: (Fixed(Subr(while)) *arguments*.0+74 (repl-path.0+591 (Fixed(Subr(let)) Env<1> ((_list_.1+0 *arguments*.0+74)) (Fixed(Subr(let)) Env<1> ((_head_.1+1 (car.0+56 _list_.1+0))) (Fixed(Subr(set)) *arguments*.0+74 (cdr.0+57 _list_.1+0)) _head_.1+1)) nil))
one of the problem is eval.l does not support double and operations on double