summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Schulte <schulte.eric@gmail.com>2011-07-18 12:17:02 -0600
committerEric Schulte <schulte.eric@gmail.com>2011-07-18 12:19:21 -0600
commit1c913603cdccf12a855374e75eced0a96e85f5bd (patch)
treeecf1c966310ec12e420bb9e1dc48ba796c2893b6
parent2249abb8ad4bb266c5eb808fce1f7e6be9173628 (diff)
downloadorg-mode-1c913603cdccf12a855374e75eced0a96e85f5bd.tar.gz
moving ob-fortran into core, and cleaning up the code
-rw-r--r--Makefile3
-rw-r--r--lisp/ob-fortran.el (renamed from contrib/babel/langs/ob-fortran.el)58
-rw-r--r--lisp/org.el1
3 files changed, 19 insertions, 43 deletions
diff --git a/Makefile b/Makefile
index ce419c1..0ec1e20 100644
--- a/Makefile
+++ b/Makefile
@@ -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)