diff --git a/mozilla/js2/semantics/HTML-To-RTF/Convert.lisp b/mozilla/js2/semantics/HTML-To-RTF/Convert.lisp index ea595f87260..a70839da505 100644 --- a/mozilla/js2/semantics/HTML-To-RTF/Convert.lisp +++ b/mozilla/js2/semantics/HTML-To-RTF/Convert.lisp @@ -344,8 +344,8 @@ ("grammar-argument" . :grammar-argument) ("indent" . :body-text) ("operator-heading" . :heading4) - ("semantics" . :semantics) - ("semantics-next" . :semantics-next))) + ("algorithm-stmt" . :algorithm-stmt) + ("algorithm-next-stmt" . :algorithm-next-stmt))) (defun class-to-paragraph-style (element) @@ -374,6 +374,8 @@ (defparameter *divs-containing-divs* '("indent")) +(defvar *algorithm-level* nil) + (defun emit-div (markup-stream element class) (cond ((equal class "grammar-rule") @@ -387,6 +389,20 @@ (setq style :body-text)) (depict-paragraph (markup-stream style) (emit-inline-parts markup-stream child)))))) + ((equal class "algorithm") + (let ((*algorithm-level* 0)) + (emit-paragraph-elements markup-stream element))) + ((or (equal class "algorithm-next") (equal class "algorithm-indent")) + (let ((*algorithm-level* 1)) + (emit-paragraph-elements markup-stream element))) + ((equal class "lvl") + (let ((*algorithm-level* (1+ *algorithm-level*))) + (emit-paragraph-elements markup-stream element))) + ((equal class "stmt") + (unless (and *algorithm-level* (< *algorithm-level* 10)) + (error "The stmt class can only be used inside an algorithm class")) + (depict-paragraph (markup-stream (find-symbol (format nil "ALGORITHM-~D" *algorithm-level*) :keyword)) + (emit-inline-parts markup-stream element))) ((member class *divs-containing-divs* :test #'equal) (depict-paragraph (markup-stream :body-text) (depict markup-stream "***** BEGIN DIV" class))