diff options
| author | 2024-11-19 09:47:46 -0500 | |
|---|---|---|
| committer | 2024-11-19 09:47:46 -0500 | |
| commit | 3a716bb7004af068f46b67cfa7b8a033931e151b (patch) | |
| tree | 5067fea9dae6af0261c7c98dfe079e076611cecc /bf2s.scm | |
| parent | brainfuck->scheme (diff) | |
debugging
Diffstat (limited to '')
| -rw-r--r-- | bf2s.scm | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -44,6 +44,8 @@ ((#\,) (compile (cdr lst) (cons '(vector-set! data dptr (char->integer (read-char))) ins))) + ((#\#) (compile (cdr lst) + (cons '(debugger data dptr) ins))) ((#\[) (let ((rest (compile (cdr lst) '()))) (if (not (pair? rest)) (error "unmatched [") @@ -62,7 +64,7 @@ (else (compile (cdr lst) ins))))) (define (brainfuck->scheme str) - `(lambda (data dptr) + `(lambda (data dptr debugger) (,(compile (string->list str) '())))) (define (brainfuck->scheme-from-file filename) @@ -74,5 +76,8 @@ str (loop (string-append str (read-line port))))))))) -(define (execute scheme) - ((eval scheme) (make-vector 4096) 0)) +(define (execute scheme len) + ((eval scheme) (make-vector len) 0 + (lambda (data dptr) + (display (list data dptr)) + (newline)))) |
