;;;; HTML generator ;; Create string buffers (defparameter html (make-array 0 :adjustable t :element-type t :fill-pointer t )) (defparameter body (make-array 0 :adjustable t :element-type t :fill-pointer t )) (defparameter style (make-array 0 :adjustable t :element-type t :fill-pointer t )) (defparameter head (make-array 0 :adjustable t :element-type t :fill-pointer t )) (defparameter meta (make-array 0 :adjustable t :element-type t :fill-pointer t )) ;; Reader definition (defun reader () (let ( (input-value nil) (input-list nil) ) (with-input-from-string (input-string (read-line)) (loop while (setq input-value (read input-string nil)) do (push input-value input-list) ) (reverse input-list) ) ) ) ;; Scanner definition (defun scanner ( x ) (case (car x) (title (title (cadr x) (cddr x))) ) ) ;; General functions (defun title (name x) (let ( (element-tag-string (make-array 0 :adjustable t :fill-pointer t :element-type 'character)) (current nil) ) (loop while (setq current (pop x)) do (case current (color (format t "style color:~a~%" (car x))) ) ) ) ) do (push input-value input-list) ) (reverse input-list) ) ) )