From mathieu.ribatet at epfl.ch  Wed Jun  3 10:00:02 2009
From: mathieu.ribatet at epfl.ch (Mathieu Ribatet)
Date: Wed, 03 Jun 2009 10:00:02 +0200
Subject: [Rd] How to generate R objects in C?
In-Reply-To: <c2350ba40906021544r51bfefb9k6b64e4734e66c90b@mail.gmail.com>
References: <c2350ba40906021544r51bfefb9k6b64e4734e66c90b@mail.gmail.com>
Message-ID: <1244016002.3932.1.camel@ubuntu>

This is indeed details in Writing R Extensions. You should have a closer
look at sections 5.9.3 and 5.9.4. Look at the pieces of C code, they
will help you a lot.

cheers,
Mathieu


Le mercredi 03 juin 2009 ? 00:44 +0200, Kynn Jones a ?crit :
> I'm in the process of coding a parser (in C) to generate R entities
> (vectors, lists, etc.) from a text description (different from R).
> The basic parser works, and now I need to tell it how to create R
> entities.  I need to be able to create character vectors (for unicode
> strings), integers, floats, unnamed lists, named lists, boolean
> values, and NA.  With the exception of the two types of lists and the
> character vectors, all the other objects I need to generate are
> "scalars", so I suppose they will correspond to 1-element vectors in
> R.  I also need to be able to add R entities to both kinds of lists.
> 
> I've been staring at various official documents (ch 5 of Writing R
> Extensions, R Internals, Rinternals.h) for this kind of work for some
> time, but I can't find the constructors for such objects (here I'm
> using the term "constructor" loosely).  I'm even further from finding
> the C equivalent of "my.list[[ length(my.list) + 1 ]] <- new.thing".
> 
> Can someone point me in the right direction?
> 
> Thanks!
> 
> Kynn
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
-- 
Institute of Mathematics
Ecole Polytechnique F?d?rale de Lausanne
STAT-IMA-FSB-EPFL, Station 8
CH-1015 Lausanne   Switzerland
http://stat.epfl.ch/
Tel: + 41 (0)21 693 7907



[Rd] How to generate R objects in C?
Mathieu Ribatet