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