From murdoch.duncan at gmail.com  Thu Mar 24 13:08:03 2011
From: murdoch.duncan at gmail.com (Duncan Murdoch)
Date: Thu, 24 Mar 2011 08:08:03 -0400
Subject: [Rd] Standalone C++ application for processing R parser
	output(SEXP)
In-Reply-To: <AANLkTim2_zn4_w5WiovLF8O-FH=EAh2241AxkBiMAK0R@mail.gmail.com>
References: <AANLkTim2_zn4_w5WiovLF8O-FH=EAh2241AxkBiMAK0R@mail.gmail.com>
Message-ID: <4D8B3423.9060904@gmail.com>

On 11-03-23 7:35 PM, Rob Anderson wrote:
> Hi All,
>
> I am trying to write a source-to-source compiler for R. I am trying to
> leverage the R parser code for the purpose. I am trying to transform the
> SEXP returned from the parser into an AST for our own Ruby embedded Domain
> specific language.
>
> I tried using R CMD SHBIN to compile a C function that parses arbitrary R
> expressions. But I think, the generated .so file can be used from within R
> and not be called from other C or Ruby programs(I get linker errors).
>
> My Idea  is to use the SEXP processing functions/MACROS (CAR, CDR, CADR,
> etc..) from within C code and transform it to our AST format. I tried
> linking to libR.a and other lib*.so's when I compile the C code using gcc
> but, it doesn't work.
>
> I read that R exposes only small number of functions for library/package
> writers and the compiled *.so can only from within R.
>
> Any ideas on what is wrong, or how I can go about it?

I think you need to think of your program as a new front end for R, even 
if you're only using a few R functions.  See Chapter 8 in the Writing R 
Extensions manual.

Duncan Murdoch



[Rd] Standalone C++ application for processing R parser output(SEXP)
Duncan Murdoch