diff options
author | Eric Schulte <schulte.eric@gmail.com> | 2011-07-18 12:17:02 -0600 |
---|---|---|
committer | Eric Schulte <schulte.eric@gmail.com> | 2011-07-18 12:19:21 -0600 |
commit | 1c913603cdccf12a855374e75eced0a96e85f5bd (patch) | |
tree | ecf1c966310ec12e420bb9e1dc48ba796c2893b6 | |
parent | 2249abb8ad4bb266c5eb808fce1f7e6be9173628 (diff) | |
download | org-mode-1c913603cdccf12a855374e75eced0a96e85f5bd.tar.gz |
moving ob-fortran into core, and cleaning up the code
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | lisp/ob-fortran.el (renamed from contrib/babel/langs/ob-fortran.el) | 58 | ||||
-rw-r--r-- | lisp/org.el | 1 |
3 files changed, 19 insertions, 43 deletions
@@ -158,7 +158,8 @@ LISPF = org.el \ ob-js.el \ ob-scheme.el \ ob-lilypond.el \ - ob-java.el + ob-java.el \ + ob-fortran.el LISPFILES0 = $(LISPF:%=lisp/%) LISPFILES = $(LISPFILES0) lisp/org-install.el diff --git a/contrib/babel/langs/ob-fortran.el b/lisp/ob-fortran.el index 6fdf416..4c366cc 100644 --- a/contrib/babel/langs/ob-fortran.el +++ b/lisp/ob-fortran.el @@ -1,5 +1,6 @@ ;;; ob-fortran.el --- org-babel functions for fortran -;; Copyright (C) 2010 Free Software Foundation, Inc. + +;; Copyright (C) 2011 Free Software Foundation, Inc. ;; Author: Sergey Litvinov (based on ob-C.el by Eric Schulte) ;; Keywords: literate programming, reproducible research, fortran @@ -27,10 +28,6 @@ ;; ;;; Code: - -;; Org-Babel support for evaluating fortran code. -;; - (require 'ob) (require 'ob-eval) (require 'cc-mode) @@ -48,39 +45,12 @@ executable.") (defun org-babel-execute:fortran (body params) - "Execute BODY according to PARAMS. This function calls -`org-babel-execute:fortran'." - (org-babel-execute:fortran body params)) - -(defun org-babel-execute:fortran (body params) - "Execute a block of fortran code with org-babel. This function is -called by `org-babel-execute-src-block'." - (org-babel-fortran-execute body params)) - -(defun org-babel-expand-body:fortran (body params) - "Expand a block of fortran code with org-babel according to it's -header arguments (calls `org-babel-fortran-expand')." - (org-babel-fortran-expand body params)) - -(defun org-babel-execute:fortran (body params) - "Execute a block of fortran code with org-babel. This function is -called by `org-babel-execute-src-block'." - (org-babel-fortran-execute body params)) - -(defun org-babel-expand-body:fortran (body params) - "Expand a block of fortran code with org-babel according to it's -header arguments (calls `org-babel-fortran-expand')." - (org-babel-fortran-expand body params)) - -(defun org-babel-fortran-execute (body params) "This function should only be called by `org-babel-execute:fortran'" - (let* ((tmp-src-file (org-babel-temp-file - "fortran-src-" - ".F90")) + (let* ((tmp-src-file (org-babel-temp-file "fortran-src-" ".F90")) (tmp-bin-file (org-babel-temp-file "fortran-bin-")) (cmdline (cdr (assoc :cmdline params))) (flags (cdr (assoc :flags params))) - (full-body (org-babel-fortran-expand body params)) + (full-body (org-babel-expand-body:fortran body params)) (compile (progn (with-temp-file tmp-src-file (insert full-body)) @@ -106,7 +76,7 @@ header arguments (calls `org-babel-fortran-expand')." (org-babel-eval (concat tmp-bin-file (if cmdline (concat " " cmdline) "")) ""))))) -(defun org-babel-fortran-expand (body params) +(defun org-babel-expand-body:fortran (body params) "Expand a block of fortran or fortran code with org-babel according to it's header arguments." (let ((vars (mapcar #'cdr (org-babel-get-header params :var))) @@ -128,14 +98,14 @@ it's header arguments." (if (listp defines) defines (list defines)) "\n") ;; body (if main-p - (org-babel-fortran-ensure-main-wrap - (concat + (org-babel-fortran-ensure-main-wrap + (concat ;; variables - (mapconcat 'org-babel-fortran-var-to-fortran vars "\n") - body)) + (mapconcat 'org-babel-fortran-var-to-fortran vars "\n") + body) params) body) "\n") "\n"))) -(defun org-babel-fortran-ensure-main-wrap (body) +(defun org-babel-fortran-ensure-main-wrap (body params) "Wrap body in a \"program ... end program\" block if none exists." (if (string-match "^[ \t]*program[ \t]*.*" (capitalize body)) (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) @@ -176,9 +146,11 @@ of the same value." (format "character, parameter :: %S(%d) = '%s'\n" var (length val) val)) ((listp val) - (format "real, parameter :: %S(%d) = %s\n" var (length val) (ob-fortran-transform-list val))) + (format "real, parameter :: %S(%d) = %s\n" + var (length val) (ob-fortran-transform-list val))) (t - (error (format "the type of parameter %s is not supported by ob-fortran" var)))))) + (error (format "the type of parameter %s is not supported by ob-fortran" + var)))))) (defun ob-fortran-transform-list (val) "Return a fortran representation of enclose syntactic lists." @@ -188,4 +160,6 @@ of the same value." (provide 'ob-fortran) +;; arch-tag: 466c8aa4-b919-462d-b1da-3e147073b56e + ;;; ob-fortran.el ends here diff --git a/lisp/org.el b/lisp/org.el index ad3dd97..8529b2b 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -164,6 +164,7 @@ requirements) is loaded." (const :tag "Ditaa" ditaa) (const :tag "Dot" dot) (const :tag "Emacs Lisp" emacs-lisp) + (const :tag "Fortran" fortran) (const :tag "Gnuplot" gnuplot) (const :tag "Haskell" haskell) (const :tag "Java" java) |