Function: org-babel-C-expand-D
org-babel-C-expand-D is a byte-compiled function defined in
ob-C.el.gz.
Signature
(org-babel-C-expand-D BODY PARAMS)
Documentation
Expand D BODY according to its header arguments PARAMS.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ob-C.el.gz
(defun org-babel-C-expand-D (body params)
"Expand D BODY according to its header arguments PARAMS."
(let ((vars (org-babel--get-vars params))
(colnames (cdr (assq :colname-names params)))
(main-p (not (string= (cdr (assq :main params)) "no")))
(imports (or (cdr (assq :imports params))
(org-babel-read (org-entry-get nil "imports" t)))))
(when (stringp imports)
(setq imports (split-string imports)))
(setq imports (append imports '("std.stdio" "std.conv")))
(mapconcat 'identity
(list
"module mmm;"
;; imports
(mapconcat
(lambda (inc) (format "import %s;" inc))
imports "\n")
;; variables
(mapconcat 'org-babel-C-var-to-C vars "\n")
;; table sizes
(mapconcat 'org-babel-C-table-sizes-to-C vars "\n")
;; tables headers utility
(when colnames
(org-babel-C-utility-header-to-C))
;; tables headers
(mapconcat (lambda (head)
(let* ((tblnm (car head))
(tbl (cdr (car (let* ((el vars))
(while (not (or (equal tblnm (caar el)) (not el)))
(setq el (cdr el)))
el))))
(type (org-babel-C-val-to-base-type tbl)))
(org-babel-C-header-to-C head type))) colnames "\n")
;; body
(if main-p
(org-babel-C-ensure-main-wrap body)
body) "\n") "\n")))