Standalone C++ application for processing R parser output(SEXP)
On 24 March 2011 at 08:08, Duncan Murdoch wrote:
| 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.
Maybe also have a look at the parser package by Romain at
https://r-forge.r-project.org/R/?group_id=384
(and scroll down sufficiently on that page) which has the description
parser - Detailed R source code parser
detailed source code parser, based on the standard R parser but
organizing the information differently
which strikes me as close enough to what you describe. That said, Romain did
this for highlight so it may not be relevant.
Dirk
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com