CXXR (C++ R) API
Enumerations
SEXPTYPE.h File Reference

($Id: SEXPTYPE.h 1348 2013-02-25 17:49:03Z arr $)

The SEXPTYPE enumeration. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  SEXPTYPE {
  NILSXP = 0, SYMSXP = 1, LISTSXP = 2, CLOSXP = 3,
  ENVSXP = 4, PROMSXP = 5, LANGSXP = 6, SPECIALSXP = 7,
  BUILTINSXP = 8, CHARSXP = 9, LGLSXP = 10, INTSXP = 13,
  REALSXP = 14, CPLXSXP = 15, STRSXP = 16, DOTSXP = 17,
  ANYSXP = 18, VECSXP = 19, EXPRSXP = 20, BCODESXP = 21,
  EXTPTRSXP = 22, WEAKREFSXP = 23, RAWSXP = 24, S4SXP = 25,
  CXXSXP = 43, BAILSXP = 44, FUNSXP = 99
}
 CR's object type identification. More...

Detailed Description

The SEXPTYPE enumeration.


Enumeration Type Documentation

enum SEXPTYPE

CR's object type identification.

This enumeration is used within CR to identify different types of R object. In CXXR the same purpose could be (and sometimes is) achieved by C++ run-time type information (RTTI), virtual function despatch etc. However, a SEXPTYPE field is retained within each CXXR::RObject for backwards compatibility, and indeed efficiency.

Enumerator:
NILSXP 

NULL. In CXXR no CXXR::RObject has this type, but for backward compatibility TYPEOF will return NILSXP if passed a null pointer.

SYMSXP 

symbols, implemented in class CXXR::Symbol.

LISTSXP 

lists of dotted pairs, implemented in class CXXR::PairList.

CLOSXP 

closures, implemented in class CXXR::Closure.

ENVSXP 

environments, implemented in class CXXR::Environment.

PROMSXP 

promises: [un]evaluated closure arguments, implemented in class CXXR::Promise.

LANGSXP 

language constructs (special lists), implemented in class CXXR::Expression.

SPECIALSXP 

special forms, implemented in class CXXR::BuiltInFunction.

BUILTINSXP 

builtin non-special forms, also implemented in class CXXR::BuiltInFunction.

CHARSXP 

"scalar" string type (internal only), implemented in class CXXR::String.

LGLSXP 

logical vectors, implemented in class CXXR::LogicalVector.

INTSXP 

integer vectors, implemented in class CXXR::IntVector.

REALSXP 

real variables, implemented in class CXXR::RealVector.

CPLXSXP 

complex variables, implemented in class CXXR::ComplexVector.

STRSXP 

string vectors, implemented in class CXXR::StringVector.

DOTSXP 

dot-dot-dot objects, implemented in class CXXR::DottedArgs.

ANYSXP 

Used to make "any" args work. No CXXR::RObject has this type.

VECSXP 

generic vectors, implemented in class CXXR::ListVector.

EXPRSXP 

expression vectors, implemented in class CXXR::ExpressionVector.

BCODESXP 

byte code, implemented in class CXXR::ByteCode.

EXTPTRSXP 

external pointers, implemented in class CXXR::ExternalPointer.

WEAKREFSXP 

weak references, implemented in class CXXR::WeakRef.

RAWSXP 

raw bytes, implemented in class CXXR::RawVector.

S4SXP 

S4 object not inheriting from another SEXPTYPE, implemented in class CXXR::S4Object.

CXXSXP 

object types specific to CXXR.

BAILSXP 

Object used to implement indirect flow of control in R without using a C++ exception.

FUNSXP 

Closure or Builtin. No CXXR::RObject has this type.