1 typedef unsigned int SEXPTYPE;
2 
3 const unsigned int NILSXP     =  0;
4 const unsigned int SYMSXP     =  1;
5 const unsigned int LISTSXP    =  2;
6 const unsigned int CLOSXP     =  3;
7 const unsigned int ENVSXP     =  4;
8 const unsigned int PROMSXP    =  5;
9 const unsigned int LANGSXP    =  6;
10 const unsigned int SPECIALSXP =  7;
11 const unsigned int BUILTINSXP =  8;
12 const unsigned int CHARSXP    =  9;
13 const unsigned int LGLSXP     = 10;
14 const unsigned int INTSXP     = 13;
15 const unsigned int REALSXP    = 14;
16 const unsigned int CPLXSXP    = 15;
17 const unsigned int STRSXP     = 16;
18 const unsigned int DOTSXP     = 17;
19 const unsigned int ANYSXP     = 18;
20 const unsigned int VECSXP     = 19;
21 const unsigned int EXPRSXP    = 20;
22 const unsigned int BCODESXP   = 21;
23 const unsigned int EXTPTRSXP  = 22;
24 const unsigned int WEAKREFSXP = 23;
25 const unsigned int RAWSXP     = 24;
26 const unsigned int S4SXP      = 25;
27 
28 const unsigned int NEWSXP     = 30;
29 const unsigned int FREESXP    = 31;
30 
31 const unsigned int FUNSXP     = 99;
32 
33 /* include/R_exts/Complex.h */
34 typedef struct {
35     double r;
36     double i;
37 } Rcomplex;
38 
39 /* include/Rinternals.h */
40 typedef int R_len_t;
41 
42 #ifdef RPY2_RLEN_LONG
43 typedef ptrdiff_t R_xlen_t;
44 #else  /* RPY2_RLEN_LONG */
45 typedef int R_xlen_t;
46 #endif  /* RPY2_RLEN_LONG */
47 
48 /* R_ext/Arith.h */
49 extern double R_NaN;  /* IEEE NaN */
50 extern double R_PosInf;  /* IEEE Inf */
51 extern double R_NegInf;  /* IEEE -Inf */
52 extern double R_NaReal;	 /* NA_REAL: IEEE */
53 extern int    R_NaInt;  /* NA_INTEGER:= INT_MIN currently */
54 
55 typedef unsigned char Rbyte;
56 
57 struct symsxp_struct {
58     struct SEXPREC *pname;
59     struct SEXPREC *value;
60     struct SEXPREC *internal;
61 };
62 
63 struct listsxp_struct {
64     struct SEXPREC *carval;
65     struct SEXPREC *cdrval;
66     struct SEXPREC *tagval;
67 };
68 
69 struct envsxp_struct {
70     struct SEXPREC *frame;
71     struct SEXPREC *enclos;
72     struct SEXPREC *hashtab;
73 };
74 
75 struct closxp_struct {
76     struct SEXPREC *formals;
77     struct SEXPREC *body;
78     struct SEXPREC *env;
79 };
80 
81 struct promsxp_struct {
82     struct SEXPREC *value;
83     struct SEXPREC *expr;
84     struct SEXPREC *env;
85 };
86 
87 typedef struct SEXPREC *SEXP;
88 
89 struct sxpinfo_struct {
90     SEXPTYPE type      : 5;
91     unsigned int scalar: 1;
92     unsigned int alt   : 1;
93     unsigned int obj   : 1;
94     unsigned int gp    : 16;
95     unsigned int mark  : 1;
96     unsigned int debug : 1;
97     unsigned int trace : 1;
98     unsigned int spare : 1;
99     unsigned int gcgen : 1;
100     unsigned int gccls : 3;
101     unsigned int named : 16;
102     unsigned int extra : 32;
103 };
104 
105 struct primsxp_struct {
106 int offset;
107 };
108 
109 struct vecsxp_struct {
110     R_xlen_t length;
111     R_xlen_t truelength;
112 };
113 
114 typedef struct SEXPREC {
115   /* defined as a macro SEXPREC_HEADER in R headers */
116   struct sxpinfo_struct sxpinfo;
117   struct SEXPREC *attrib;
118   struct SEXPREC *gengc_next_node, *gengc_prev_node;
119   /* --- */
120   union {
121     struct primsxp_struct primsxp;
122     struct symsxp_struct symsxp;
123     struct listsxp_struct listsxp;
124     struct envsxp_struct envsxp;
125     struct closxp_struct closxp;
126     struct promsxp_struct promsxp;
127   } u;
128 } SEXPREC;
129 
130 typedef struct {
131   /* defined as a macro SEXPREC_HEADER in R headers */
132   struct sxpinfo_struct sxpinfo;
133   struct SEXPREC *attrib;
134   struct SEXPREC *gengc_next_node, *gengc_prev_node;
135   /* --- */
136   struct vecsxp_struct vecsxp;
137 } VECTOR_SEXPREC, *VECSEXP;
138 
139 typedef union {
140     VECTOR_SEXPREC s;
141     double align;
142 } SEXPREC_ALIGN;
143 
144 const char* R_CHAR(SEXP x);
145 
146 /* include/R_ext/Boolean.h */
147 typedef enum { FALSE = 0, TRUE } Rboolean;
148 
149 /* include/Rembedded.h */
150 int Rf_initialize_R(int ac, char **av);
151 extern int Rf_initEmbeddedR(int argc, char *argv[]);
152 extern void R_RunExitFinalizers(void);
153 extern void Rf_KillAllDevices(void);
154 extern void R_CleanTempDir(void);
155 
156 extern void Rf_endEmbeddedR(int fatal);
157 
158 /* include/R_ext/Memory.h */
159 void	R_gc(void);
160 
161 /* include/Rinternals.h */
162 void R_ClearExternalPtr(SEXP s);
163 void R_dot_Last(void);
164 
165 /* src/include/Rinlinedfunc.h */
166 void* DATAPTR(SEXP x);
167 
168 /* include/Rinternals.h */
169 SEXP (TAG)(SEXP e);
170 SEXP SET_TAG(SEXP x, SEXP y);
171 
172 SEXP (CDR)(SEXP e);
173 SEXP SETCDR(SEXP x, SEXP y);
174 SEXP Rf_nthcdr(SEXP, int);
175 
176 SEXP (CAR)(SEXP e);
177 SEXP SETCAR(SEXP x, SEXP y);
178 
179 SEXP Rf_getAttrib(SEXP sexp, SEXP what);
180 SEXP Rf_setAttrib(SEXP x, SEXP what, SEXP n);
181 
182 SEXP Rf_namesgets(SEXP, SEXP);
183 
184 int R_has_slot(SEXP sexp, SEXP name);
185 SEXP R_do_slot(SEXP sexp, SEXP name);
186 SEXP R_do_slot_assign(SEXP sexp, SEXP name, SEXP value);
187 
188 SEXP (ATTRIB)(SEXP x);
189 
190 SEXP Rf_asChar(SEXP sexp);
191 
192 SEXP Rf_allocList(int n);
193 SEXP Rf_allocVector(SEXPTYPE sexp_t, R_xlen_t n);
194 SEXP Rf_elt(SEXP, int);
195 
196 typedef void (*R_CFinalizer_t)(SEXP);
197 void R_RegisterCFinalizer(SEXP s, R_CFinalizer_t fun);
198 
199 typedef void* (*DL_FUNC)();
200 SEXP R_MakeExternalPtr(DL_FUNC p, SEXP tag, SEXP prot);
201 
202 SEXP Rf_lang1(SEXP);
203 SEXP Rf_lang2(SEXP, SEXP);
204 SEXP Rf_lang3(SEXP, SEXP, SEXP);
205 SEXP Rf_lang4(SEXP, SEXP, SEXP, SEXP);
206 SEXP Rf_lang5(SEXP, SEXP, SEXP, SEXP, SEXP);
207 SEXP Rf_lang6(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
208 R_len_t Rf_length(SEXP x);
209 
210 SEXP Rf_ScalarComplex(Rcomplex c);
211 SEXP Rf_ScalarInteger(int n);
212 SEXP Rf_ScalarLogical(int n);
213 SEXP Rf_ScalarRaw(Rbyte b);
214 SEXP Rf_ScalarReal(double f);
215 SEXP Rf_ScalarString(SEXP s);
216 
217 void *(STDVEC_DATAPTR)(SEXP x);
218 
219 /* Integer.*/
220 int (INTEGER_ELT)(SEXP x, R_xlen_t i);
221 void SET_INTEGER_ELT(SEXP x, R_xlen_t i, int v);
222 int *(INTEGER)(SEXP x);
223 
224 /* Double / real. */
225 double (REAL_ELT)(SEXP x, R_xlen_t i);
226 void SET_REAL_ELT(SEXP x, R_xlen_t i, double v);
227 double *(REAL)(SEXP x);
228 
229 /* Boolean / logical. */
230 int (LOGICAL_ELT)(SEXP x, R_xlen_t i);
231 void SET_LOGICAL_ELT(SEXP x, R_xlen_t i, int v);
232 int *(LOGICAL)(SEXP x);
233 
234 /* Complex. */
235 Rcomplex (COMPLEX_ELT)(SEXP x, R_xlen_t i);
236 Rcomplex *(COMPLEX)(SEXP x);
237 
238 /* Bytes / raw. */
239 Rbyte *(RAW)(SEXP x);
240 Rbyte (RAW_ELT)(SEXP x, R_xlen_t i);
241 
242 SEXP (STRING_ELT)(SEXP x, R_xlen_t i);
243 void SET_STRING_ELT(SEXP x, R_xlen_t i, SEXP v);
244 
245 SEXP (VECTOR_ELT)(SEXP x, R_xlen_t i);
246 SEXP SET_VECTOR_ELT(SEXP x, R_xlen_t i, SEXP v);
247 
248 SEXP (CLOENV)(SEXP x);
249 
250 SEXP Rf_eval(SEXP, SEXP);
251 SEXP R_tryEval(SEXP, SEXP, int*);
252 
253 Rboolean R_ToplevelExec(void (*fun)(void *), void *data);
254 SEXP R_tryCatchError(SEXP (*fun)(void *data), void *data,
255 		     SEXP (*hndlr)(SEXP cond, void *hdata), void *hdata);
256 
257 SEXP Rf_findFun(SEXP sym, SEXP env);
258 // SEXP Rf_findFun3(SEXP, SEXP, SEXP);
259 
260 SEXP Rf_findVar(SEXP sym, SEXP env);
261 SEXP Rf_findVarInFrame(SEXP env, SEXP sym);
262 SEXP Rf_findVarInFrame3(SEXP, SEXP, Rboolean);
263 
264 R_xlen_t Rf_xlength(SEXP);
265 
266 SEXP R_lsInternal(SEXP, Rboolean);
267 
268 SEXP Rf_duplicate(SEXP s);
269 
270 SEXP Rf_defineVar(SEXP sym, SEXP s, SEXP env);
271 
272 /* src/include/Rinlinedfunc.h */
273 SEXP Rf_protect(SEXP s);
274 void Rf_unprotect(int n);
275 
276 void R_PreserveObject(SEXP s);
277 void R_ReleaseObject(SEXP s);
278 
279 extern SEXP R_NaString; /* a CHARSXP */
280 extern SEXP R_BlankString;
281 extern SEXP R_BlankScalarString;
282 
283 extern SEXP R_GlobalEnv;
284 
285 extern SEXP R_EmptyEnv;
286 
287 Rboolean R_EnvironmentIsLocked(SEXP env);
288 
289 extern SEXP R_BaseEnv;
290 extern SEXP R_BaseNamespace;
291 
292 extern SEXP R_NilValue;
293 extern SEXP R_UnboundValue;
294 extern SEXP R_MissingArg;
295 
296 Rboolean (Rf_isNull)(SEXP s);
297 Rboolean (Rf_isList)(SEXP s);
298 
299 SEXP Rf_install(const char *);
300 SEXP Rf_installChar(SEXP x);
301 SEXP Rf_mkChar(const char *);
302 SEXP Rf_mkString(const char *);
303 
304 typedef enum {
305   CE_NATIVE = 0,
306   CE_UTF8   = 1,
307   CE_LATIN1 = 2,
308   CE_BYTES  = 3,
309   CE_SYMBOL = 5,
310   CE_ANY    = 99
311 } cetype_t;
312 
313 cetype_t Rf_getCharCE(SEXP);
314 SEXP Rf_mkCharCE(const char *, cetype_t);
315 SEXP Rf_mkCharLenCE(const char *, int n, cetype_t encoding);
316 
317 typedef enum {
318   Bytes = 0,
319   Chars = 1,
320   Width = 2
321 } nchar_type;
322 
323 int R_nchar(SEXP string, nchar_type type_,
324             Rboolean allowNA, Rboolean keepNA,
325             const char* msg_name);
326 
327 SEXP (PRINTNAME)(SEXP x);
328 
329 SEXP (FRAME)(SEXP x);
330 SEXP (ENCLOS)(SEXP x);
331 SEXP (HASHTAB)(SEXP x);
332 int (ENVFLAGS)(SEXP x);
333 void (SET_ENVFLAGS)(SEXP x, int v);
334 
335 void SET_FRAME(SEXP x, SEXP v);
336 void SET_ENCLOS(SEXP x, SEXP v);
337 void SET_HASHTAB(SEXP x, SEXP v);
338 
339 /* include/Rdefines.h */
340 
341 extern SEXP R_ClassSymbol;
342 extern SEXP R_NameSymbol;
343 extern SEXP R_DimSymbol;
344 
345 /* include/Rinternals.h */
346 Rboolean (Rf_isSymbol)(SEXP s);
347 
348 /* include/R_ext/Parse.h */
349 typedef enum {
350     PARSE_NULL,
351     PARSE_OK,
352     PARSE_INCOMPLETE,
353     PARSE_ERROR,
354     PARSE_EOF
355 } ParseStatus;
356 
357 SEXP R_ParseVector(SEXP text, int num, ParseStatus *status, SEXP srcfile);
358 
359 /* include/Rinterface.h */
360 extern Rboolean R_Interactive ;
361 extern void* R_GlobalContext;
362 extern int R_SignalHandlers;
363 extern uintptr_t R_CStackLimit;
364 extern uintptr_t R_CStackStart;
365 
366 typedef enum {
367     SA_NORESTORE,/* = 0 */
368     SA_RESTORE,
369     SA_DEFAULT,/* was === SA_RESTORE */
370     SA_NOSAVE,
371     SA_SAVE,
372     SA_SAVEASK,
373     SA_SUICIDE
374 } SA_TYPE;
375 
376 
377 #ifdef OSNAME_NT
378 char *getDLLVersion(void);
379 extern char *getRUser(void);
380 extern char *get_R_HOME(void);
381 void setup_term_ui(void);
382 extern int UserBreak;
383 extern Rboolean AllDevicesKilled;
384 void editorcleanall(void);
385 extern int GA_initapp(int, char **);
386 extern void GA_appcleanup(void);
387 void readconsolecfg(void);
388 
389 typedef int (*blah1) (const char *, char *, int, int);
390 typedef void (*blah2) (const char *, int);
391 typedef void (*blah3) (void);
392 typedef void (*blah4) (const char *);
393 /* Return value here is expected to be 1 for Yes, -1 for No and
394  * 0 for Cancel: symbolic constants in graphapp.h */
395 typedef int (*blah5) (const char *);
396 typedef void (*blah6) (int);
397 typedef void (*blah7) (const char *, int, int);
398 typedef enum {RGui, RTerm, LinkDLL} UImode;
399 #else  /* OSNAME_NT */
400 #endif  /* OSNAME_NT */
401 
402 /* preprocess-define-begin */
403 #define R_SIZE_T size_t
404 /* preprocess-define-end */
405 
406 typedef struct
407 {
408   Rboolean R_Quiet;
409   Rboolean R_Slave;
410   Rboolean R_Interactive;
411   Rboolean R_Verbose;
412   Rboolean LoadSiteFile;
413   Rboolean LoadInitFile;
414   Rboolean DebugInitFile;
415   SA_TYPE RestoreAction;
416   SA_TYPE SaveAction;
417   R_SIZE_T vsize;
418   R_SIZE_T nsize;
419   R_SIZE_T max_vsize;
420   R_SIZE_T max_nsize;
421   R_SIZE_T ppsize;
422   int NoRenviron;
423 
424 #ifdef OSNAME_NT
425   char *rhome;               /* R_HOME */
426   char *home;                /* HOME  */
427   blah1 ReadConsole;
428   blah2 WriteConsole;
429   blah3 CallBack;
430   blah4 ShowMessage;
431   blah5 YesNoCancel;
432   blah6 Busy;
433   UImode CharacterMode;
434   blah7 WriteConsoleEx; /* used only if WriteConsole is NULL */
435 #else  /* OSNAME_NT */
436 #endif  /* OSNAME_NT */
437 } structRstart;
438 
439 typedef structRstart *Rstart;
440 
441 void R_DefParams(Rstart rs);
442 void R_SetParams(Rstart rs);
443 
444 /*
445 void R_SizeFromEnv(Rstart rs);
446 void R_common_command_line(int *n, char **argv, Rstart rs);
447 */
448 
449 void R_set_command_line_arguments(int argc, char **argv);
450 
451 void setup_Rmainloop(void);
452 void run_Rmainloop(void);
453 void Rf_mainloop(void);
454 
455 extern FILE *R_Consolefile;
456 extern FILE *R_Outputfile;
457 
458 #ifdef R_INTERFACE_PTRS
459 extern void (*ptr_R_Suicide)(const char *);
460 extern void (*ptr_R_ShowMessage)(const char *);
461 extern int  (*ptr_R_ReadConsole)(const char *, unsigned char *, int, int);
462 extern void (*ptr_R_WriteConsole)(const char *, int);
463 extern void (*ptr_R_WriteConsoleEx)(const char *, int, int);
464 extern void (*ptr_R_ResetConsole)(void);
465 extern void (*ptr_R_FlushConsole)(void);
466 extern void (*ptr_R_ClearerrConsole)(void);
467 extern void (*ptr_R_Busy)(int);
468 extern void (*ptr_R_CleanUp)(SA_TYPE, int, int);
469 extern int  (*ptr_R_ShowFiles)(int, const char **, const char **,
470                                const char *, Rboolean, const char *);
471 extern int  (*ptr_R_ChooseFile)(int, char *, int);
472 extern int  (*ptr_R_EditFile)(const char *);
473 extern void (*ptr_R_loadhistory)(SEXP, SEXP, SEXP, SEXP);
474 extern void (*ptr_R_savehistory)(SEXP, SEXP, SEXP, SEXP);
475 extern void (*ptr_R_addhistory)(SEXP, SEXP, SEXP, SEXP);
476 
477 // added in 3.0.0
478 extern int  (*ptr_R_EditFiles)(int, const char **,
479                                const char **, const char *);
480 // naming follows earlier versions in R.app
481 extern SEXP (*ptr_do_selectlist)(SEXP, SEXP, SEXP, SEXP);
482 extern SEXP (*ptr_do_dataentry)(SEXP, SEXP, SEXP, SEXP);
483 extern SEXP (*ptr_do_dataviewer)(SEXP, SEXP, SEXP, SEXP);
484 extern void (*ptr_R_ProcessEvents)(void);
485 #endif  /* R_INTERFACE_PTRS */
486 
487 typedef unsigned int R_NativePrimitiveArgType;
488 
489 typedef struct {
490     const char *name;
491     DL_FUNC     fun;
492     int         numArgs;
493     R_NativePrimitiveArgType *types;
494 } R_CMethodDef;
495 
496 typedef R_CMethodDef R_FortranMethodDef;
497 
498 
499 typedef struct {
500     const char *name;
501     DL_FUNC     fun;
502     int         numArgs;
503 } R_CallMethodDef;
504 
505 typedef R_CallMethodDef R_ExternalMethodDef;
506 
507 typedef struct _DllInfo DllInfo;
508 
509 int R_registerRoutines(DllInfo *info,
510                        const R_CMethodDef * const croutines,
511                        const R_CallMethodDef * const callRoutines,
512                        const R_FortranMethodDef * const fortranRoutines,
513                        const R_ExternalMethodDef * const externalRoutines);
514 
515 DllInfo *R_getEmbeddingDllInfo(void);
516 
517 void *R_ExternalPtrAddr(SEXP s);
518