X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/sod/blobdiff_plain/678b6c0f7fe1d62abdf249b173a8a922c4e5c1d3..243cffbf70b9e0155a17563a66efbb6bf34c820c:/src/codegen-proto.lisp diff --git a/src/codegen-proto.lisp b/src/codegen-proto.lisp index e663fb5..831b23c 100644 --- a/src/codegen-proto.lisp +++ b/src/codegen-proto.lisp @@ -191,13 +191,13 @@ (defun format-compound-statement* (stream child morep thunk) (pprint-indent :block 2 stream) (pprint-newline :linear stream) (princ child stream) - (pprint-indent :block 0 stream) - (case morep - (:space - (write-char #\space stream) - (pprint-newline :linear stream)) - ((t) - (pprint-newline :mandatory stream))))))) + (pprint-indent :block 0 stream)) + (case morep + (:space + (write-char #\space stream) + (pprint-newline :linear stream)) + ((t) + (pprint-newline :mandatory stream)))))) (export 'format-compound-statement) (defmacro format-compound-statement @@ -221,10 +221,11 @@ (defun format-banner-comment (stream control &rest args) ;; prevent them from leaking. (definst var (stream :export t) (name #1=#:type &optional init) - (pprint-c-type #1# stream name) - (when init - (format stream " = ~A" init)) - (write-char #\; stream)) + (pprint-logical-block (stream nil) + (pprint-c-type #1# stream name) + (when init + (format stream " = ~2I~_~A" init)) + (write-char #\; stream))) (definst function (stream :export t) (name #1=#:type body &optional #2=#:banner &rest banner-args) @@ -240,13 +241,13 @@ (definst function (stream :export t) (definst expr (stream :export t) (#1=#:expr) (format stream "~A;" #1#)) (definst set (stream :export t) (var #1=#:expr) - (format stream "~@<~A = ~@_~2I~A;~:>" var #1#)) + (format stream "~@<~A = ~2I~_~A;~:>" var #1#)) (definst update (stream :export t) (var op #1=#:expr) - (format stream "~@<~A ~A= ~@_~2I~A;~:>" var op #1#)) + (format stream "~@<~A ~A= ~2I~_~A;~:>" var op #1#)) ;; Special kinds of expressions. (definst call (stream :export t) (#1=#:func &rest args) - (format stream "~A(~@<~{~A~^, ~_~}~:>)" #1# args)) + (format stream "~@<~A~4I~_(~@<~{~A~^, ~_~}~:>)~:>" #1# args)) (definst cond (stream :export t) (#1=#:cond conseq alt) (format stream "~@<~A ~2I~@_~@~:>" #1# conseq alt))