emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [babel] Using :prologue and :epilogue with unbalanced brackets


From: Eric Schulte
Subject: Re: [O] [babel] Using :prologue and :epilogue with unbalanced brackets
Date: Sun, 26 Jan 2014 11:16:51 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Rainer M Krug <address@hidden> writes:

> On 01/20/14, 16:34 , Eric Schulte wrote:
>> Rainer M Krug <address@hidden> writes:
>>
>>> Hi
>>>
>>> I would like to use :prologue and :epilogue to enclose the code block
>>> in a local({}) block, i.e.
>>>
>>> * test
>>> #+begin_src R :prologue local({   :epilogue })
>>> qwerty <- "test"
>>> #+end_src
>>>
>>
>> I tried wrapping the prologue and epilogue values in quotes so that they
>> would be interpreted as strings, and I no longer see the problem you
>> describe and it works in a session, but I get a different R issues
>> outside of a session.
>
> Agreed -
>
> * test
> #+begin_src R  :results output :prologue "local({" :epilogue "})" :session
>   cat("Test")
> #+end_src
>
> #+RESULTS:
>
> no :session nothing happens
>
> using :session the execution does not complete because the :epilogue is not 
> appended.
>

The problem here is when `org-babel-balanced-split' parses the following
string.

  ":results output :prologue \"local({\" :epilogue \"})\" :session"

It isn't smart enough to *not* balance the ({}) parens because of the
enclosing quotes.  Unfortunately I don't have time to address this right
now.  A hacky work around would be the following...

#+headers: :epilogue "})"
#+headers: :prologue "local({"
#+begin_src R  :results output :session
  cat("Test")
#+end_src

Best,

>
>
> * test 2
> #+begin_src R  :results output :prologue "cat(1, '###\n')" :epilogue "cat(2, 
> '###\n')" :session
>   cat("Test\n")
> #+end_src
>
> #+RESULTS:
> : 1 ###
> : Test
>
> works under :session and without
>
> but
> * test 2
> #+begin_src R  :results output :prologue "{cat(1, 2 )"   :epilogue "cat(2, 
> 3)}" :session
>   cat("Test\n")
> #+end_src
>
> works only without :session as R is waiting for the "}" which is in the 
> :epilogue but which is not added.
>
> Cheers,
>
> Rainer
>
>
>>
>> Best,
>>
>>>
>>> But the problem seems to be the unbalanced brackets, and everything is
>>> passed on as the prologue, as I get the error:
>>>
>>> Error: unexpected ':' in:
>>> "{
>>> local({  :"
>>> Execution halted
>>>
>>> Can I somehow use unbalanced brackets, or is this a missing option in
>>> epilogue and prologue?
>>>
>>> Cheers,
>>>
>>> Rainer
>>>
>>>
>>> --
>>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
>>> Biology, UCT), Dipl. Phys. (Germany)
>>>
>>> Centre of Excellence for Invasion Biology
>>> Stellenbosch University
>>> South Africa
>>>
>>> Tel :       +33 - (0)9 53 10 27 44
>>> Cell:       +33 - (0)6 85 62 59 98
>>> Fax :       +33 - (0)9 58 10 27 44
>>>
>>> Fax (D):    +49 - (0)3 21 21 25 22 44
>>>
>>> email:      address@hidden
>>>
>>> Skype:      RMkrug
>>
>
> --
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, 
> UCT), Dipl. Phys. (Germany)
>
> Centre of Excellence for Invasion Biology
> Stellenbosch University
> South Africa
>
> Tel :       +33 - (0)9 53 10 27 44
> Cell:       +33 - (0)6 85 62 59 98
> Fax :       +33 - (0)9 58 10 27 44
>
> Fax (D):    +49 - (0)3 21 21 25 22 44
>
> email:      address@hidden
>
> Skype:      RMkrug

-- 
Eric Schulte
https://cs.unm.edu/~eschulte
PGP: 0x614CA05D



reply via email to

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