X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/sod/blobdiff_plain/9468000c436d725e6569d0bfe36dccd308b04de2..418752c55a29e2380d6d1aef767b7cfba02cf4be:/src/codegen-impl.lisp diff --git a/src/codegen-impl.lisp b/src/codegen-impl.lisp index 2b23661..3790d9d 100644 --- a/src/codegen-impl.lisp +++ b/src/codegen-impl.lisp @@ -66,48 +66,36 @@ (defmethod print-object ((var temporary-name) stream) ;; Compound statements. -(export '(if-inst make-if-inst - while-inst make-while-inst - do-inst make-do-inst - inst-condition inst-consequent inst-alternative inst-body)) - -(definst if (stream) (condition consequent alternative) +(definst if (stream :export t) (condition consequent alternative) (format-compound-statement (stream consequent alternative) (format stream "if (~A)" condition)) (when alternative (format-compound-statement (stream alternative) (write-string "else" stream)))) -(definst while (stream) (condition body) +(definst while (stream :export t) (condition body) (format-compound-statement (stream body) (format stream "while (~A)" condition))) -(definst do-while (stream) (body condition) +(definst do-while (stream :export t) (body condition) (format-compound-statement (stream body :space) (write-string "do" stream)) (format stream "while (~A);" condition)) ;; Special varargs hacks. -(export '(va-start-inst make-va-start-inst - va-copy-inst make-va-copy-inst - va-end-inst make-va-end-inst - inst-ap inst-arg inst-to inst-from)) - -(definst va-start (stream) (ap arg) +(definst va-start (stream :export t) (ap arg) (format stream "va_start(~@<~A, ~_~A~:>);" ap arg)) -(definst va-copy (stream) (to from) +(definst va-copy (stream :export t) (to from) (format stream "va_copy(~@<~A, ~_~A~:>);" to from)) -(definst va-end (stream) (ap) +(definst va-end (stream :export t) (ap) (format stream "va_end(~A);" ap)) ;; Expressions. -(export '(call-inst make-call-inst inst-func inst-args)) - -(definst call (stream) (func args) +(definst call (stream :export t) (func args) (format stream "~A(~@<~{~A~^, ~_~}~:>)" func args)) ;;;--------------------------------------------------------------------------