Function: org-babel-execute:ocaml
org-babel-execute:ocaml is a byte-compiled function defined in
ob-ocaml.el.gz.
Signature
(org-babel-execute:ocaml BODY PARAMS)
Documentation
Execute a block of Ocaml code with Babel.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ob-ocaml.el.gz
(defun org-babel-execute:ocaml (body params)
"Execute a block of Ocaml code with Babel."
(let* ((full-body (org-babel-expand-body:generic
body params
(org-babel-variable-assignments:ocaml params)))
(session (org-babel-prep-session:ocaml
(cdr (assq :session params)) params))
(raw (org-babel-comint-with-output
(session org-babel-ocaml-eoe-output nil full-body)
(insert
(concat
(org-babel-chomp full-body) ";;\n"
org-babel-ocaml-eoe-indicator))
(tuareg-interactive-send-input)))
(clean
(car (let ((re (regexp-quote org-babel-ocaml-eoe-output)) out)
(delq nil (mapcar (lambda (line)
(if out
(progn (setq out nil) line)
(when (string-match re line)
(progn (setq out t) nil))))
(mapcar #'org-trim (reverse raw)))))))
(raw (org-trim clean))
(result-params (cdr (assq :result-params params))))
(string-match
"\\(\\(.*\n\\)*\\)[^:\n]+ : \\([^=\n]+\\) =[[:space:]]+\\(\\(.\\|\n\\)+\\)$"
raw)
(let ((output (match-string 1 raw))
(type (match-string 3 raw))
(value (match-string 4 raw)))
(org-babel-reassemble-table
(org-babel-result-cond result-params
(cond
((member "verbatim" result-params) raw)
((member "output" result-params) output)
(t raw))
(if (and value type)
(org-babel-ocaml-parse-output value type)
raw))
(org-babel-pick-name
(cdr (assq :colname-names params)) (cdr (assq :colnames params)))
(org-babel-pick-name
(cdr (assq :rowname-names params)) (cdr (assq :rownames params)))))))