[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] How do I specify the language for a :results code block

From: Alan Schmitt
Subject: Re: [O] How do I specify the language for a :results code block
Date: Sat, 30 Nov 2013 11:52:56 +0100
User-agent: mu4e; emacs 24.3.1

Hello Thomas and Charles,

address@hidden writes:

> A simple example: generate code in sh that is run in emacs-lisp

This is almost what I want, with two differences: I don't want to run
the generated code, but to pretty-print it, and I want to do this with
another language than emacs-lisp.

> #+name: make-elisp
> #+BEGIN_SRC sh :exports none :var fun="+"
> echo "(" $fun "1 2)"
> #+BEGIN_SRC emacs-lisp :noweb yes :exports results
> <<make-elisp()>>
> : 3
> #+BEGIN_SRC emacs-lisp :noweb yes :exports results
> <<make-elisp("-")>>
> : -1
> #+BEGIN_SRC emacs-lisp :noweb yes :exports results
> <<make-elisp("list")>>
> | 1 | 2 |

I tried this, but I cannot make it fit my purpose. What I want is a
function that will create an org mode source block to be exported as
nicely formatted source code.

Here is what I tried:

#+name: fetchcoq
#+BEGIN_SRC sh :exports none :var f="demo.v"
head $f

#+BEGIN_SRC coq :noweb yes :exports code

If I export this, I get a block with lists, as if the results of
"fetchcoq" was translated into an elisp data structure:

| (("Definition toto : forall x" "exists y" "x = y.") ("" "" "") ("Lemma foo: 
forall x" "x=x." ""))

I tried this alternate approach, to directly generate the block:

#+name: fetchcoq2
#+BEGIN_SRC sh :exports none :results raw :var f="demo.v"
echo "#+BEGIN_SRC coq"
head $f
echo "#+END_SRC"

#+call: fetchcoq2("demo.v")

But then I get a result like this, with extra quoting:

: #+BEGIN_SRC coq
: Definition toto : forall x, exists y, x = y.
: Lemma foo: forall x, x=x.

I feel like I'm missing something obvious. ":results code" is exactly
what I want (put the results in a SRC block), but I don't know how to
specify the headers of the generated code block.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]