From c1507d153161413e4958362d19ae9aa9abedee47 Mon Sep 17 00:00:00 2001 From: bd Date: Thu, 10 Apr 2025 20:28:34 -0400 Subject: Add write raw bytes stage --- src/emit.lisp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/emit.lisp') diff --git a/src/emit.lisp b/src/emit.lisp index acc2772..48ebebe 100644 --- a/src/emit.lisp +++ b/src/emit.lisp @@ -2,7 +2,7 @@ (defun fits-in-X-bits (n) "Returns the number of bits required to represent N" - (ceiling (/ (log (ceiling n (log 2))) (log 2)))) + (ceiling (/ (log n) (log 2)))) (defmacro generate-type-map (ops) "Generates an alist where the key corresponds to an element in @@ -11,8 +11,7 @@ number of bits required to represent all concatenated with TYPE." `(let ((i 0) (opsize (fits-in-X-bits (length ,ops)))) - (mapcar (lambda (x) - (incf i) + (mapcar (lambda (x) (incf i) (cons x (util:format-as-binary i opsize))) ,ops))) @@ -62,5 +61,7 @@ concatenated with TYPE." (+ pos parse:line-number))) (defun emit (p) - (format t "~a~%" p) (eval p)) + +(defun ast->str (p) + (format nil "~a" p)) -- cgit v1.2.3