示例#1
0
ffi = _cffi_backend.FFI(
    '_amzi',
    _version=0x2601,
    _types=
    b'\x00\x00\x0E\x0D\x00\x00\x05\x03\x00\x00\x79\x03\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x78\x03\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x76\x03\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x00\x0B\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x07\x01\x00\x00\x01\x0B\x00\x00\x05\x11\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x01\x11\x00\x00\x0E\x01\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x01\x11\x00\x00\x07\x01\x00\x00\x13\x11\x00\x00\x05\x11\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x01\x11\x00\x00\x09\x01\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x01\x11\x00\x00\x05\x11\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x01\x11\x00\x00\x02\x11\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x01\x11\x00\x00\x02\x11\x00\x00\x06\x01\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x05\x11\x00\x00\x13\x11\x00\x00\x05\x11\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x05\x11\x00\x00\x07\x01\x00\x00\x13\x11\x00\x00\x05\x11\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x05\x11\x00\x00\x05\x11\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x05\x11\x00\x00\x02\x11\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x05\x11\x00\x00\x02\x11\x00\x00\x39\x03\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x02\x11\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x05\x11\x00\x00\x02\x11\x00\x00\x06\x01\x00\x00\x04\x03\x00\x00\x05\x11\x00\x00\x00\x0F\x00\x00\x77\x0D\x00\x00\x05\x11\x00\x00\x05\x11\x00\x00\x00\x0F\x00\x00\x77\x0D\x00\x00\x05\x11\x00\x00\x05\x11\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x00\x05\x0D\x00\x00\x05\x11\x00\x00\x05\x11\x00\x00\x00\x0F\x00\x00\x78\x0D\x00\x00\x05\x11\x00\x00\x02\x11\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x00\x00\x09\x00\x00\x02\x0B\x00\x00\x00\x01\x00\x00\x10\x01',
    _globals=(
        b'\xFF\xFF\xFF\x0BCUR_ERR', 2, b'\xFF\xFF\xFF\x0BCUR_IN', 0,
        b'\xFF\xFF\xFF\x0BCUR_OUT', 1, b'\xFF\xFF\xFF\x0BUSER_ERR', 5,
        b'\xFF\xFF\xFF\x0BUSER_IN', 3, b'\xFF\xFF\xFF\x0BUSER_OUT', 4,
        b'\xFF\xFF\xFF\x0BcAATOM', 0, b'\xFF\xFF\xFF\x0BcADDR', 7,
        b'\xFF\xFF\xFF\x0BcASTR', 1, b'\xFF\xFF\xFF\x0BcDOUBLE', 6,
        b'\xFF\xFF\xFF\x0BcFLOAT', 5, b'\xFF\xFF\xFF\x0BcGOAL', 12,
        b'\xFF\xFF\xFF\x0BcINT', 2, b'\xFF\xFF\xFF\x0BcLONG', 3,
        b'\xFF\xFF\xFF\x0BcMOD', 11, b'\xFF\xFF\xFF\x0BcSHORT', 4,
        b'\xFF\xFF\xFF\x0BcTERM', 8, b'\xFF\xFF\xFF\x0BcWATOM', 10,
        b'\xFF\xFF\xFF\x0BcWSTR', 9, b'\x00\x00\x5D\x23lsAddPredW', 0,
        b'\x00\x00\x59\x23lsAssertaStrW', 0, b'\x00\x00\x59\x23lsAssertzStrW',
        0, b'\x00\x00\x30\x23lsCallStrW', 0, b'\x00\x00\x04\x23lsClearCall', 0,
        b'\x00\x00\x04\x23lsClose', 0, b'\x00\x00\x30\x23lsExecStrW', 0,
        b'\x00\x00\x41\x23lsGetArg', 0, b'\x00\x00\x68\x23lsGetArgType', 0,
        b'\x00\x00\x71\x23lsGetExceptMsgW', 0, b'\x00\x00\x53\x23lsGetFAW', 0,
        b'\x00\x00\x3B\x23lsGetHead', 0, b'\x00\x00\x10\x23lsGetParm', 0,
        b'\x00\x00\x6D\x23lsGetTail', 0, b'\x00\x00\x3B\x23lsGetTerm', 0,
        b'\x00\x00\x64\x23lsGetTermType', 0, b'\x00\x00\x07\x23lsInitPredsW',
        0, b'\x00\x00\x00\x23lsInitW', 0, b'\x00\x00\x59\x23lsLoadW', 0,
        b'\x00\x00\x04\x23lsMain', 0, b'\x00\x00\x30\x23lsMakeAtomW', 0,
        b'\x00\x00\x35\x23lsMakeFAW', 0, b'\x00\x00\x1A\x23lsMakeFloat', 0,
        b'\x00\x00\x26\x23lsMakeInt', 0, b'\x00\x00\x16\x23lsMakeList', 0,
        b'\x00\x00\x30\x23lsMakeStrW', 0, b'\x00\x00\x2B\x23lsPushList', 0,
        b'\x00\x00\x04\x23lsRedo', 0, b'\x00\x00\x48\x23lsSetInput', 0,
        b'\x00\x00\x48\x23lsSetOutputW', 0, b'\x00\x00\x0B\x23lsSetStream', 0,
        b'\x00\x00\x30\x23lsStrToTermW', 0, b'\x00\x00\x4D\x23lsTermToStrQW',
        0, b'\x00\x00\x4D\x23lsTermToStrW', 0, b'\x00\x00\x48\x23lsUnify', 0,
        b'\x00\x00\x1F\x23lsUnifyArg', 0, b'\x00\x00\x10\x23lsUnifyParm', 0,
        b'\xFF\xFF\xFF\x0BpADDR', 7, b'\xFF\xFF\xFF\x0BpATOM', 0,
        b'\xFF\xFF\xFF\x0BpERR', -1, b'\xFF\xFF\xFF\x0BpFLOAT', 3,
        b'\xFF\xFF\xFF\x0BpINT', 1, b'\xFF\xFF\xFF\x0BpLIST', 5,
        b'\xFF\xFF\xFF\x0BpREAL', 11, b'\xFF\xFF\xFF\x0BpSTR', 2,
        b'\xFF\xFF\xFF\x0BpSTRUCT', 4, b'\xFF\xFF\xFF\x0BpTERM', 6,
        b'\xFF\xFF\xFF\x0BpVAR', 8, b'\xFF\xFF\xFF\x0BpWATOM', 10,
        b'\xFF\xFF\xFF\x0BpWSTR', 9),
    _struct_unions=((b'\x00\x00\x00\x76\x00\x00\x00\x02$PRED_INITW',
                     b'\x00\x00\x02\x11Pname', b'\x00\x00\x39\x11Parity',
                     b'\x00\x00\x61\x11Pfunc'), ),
    _enums=
    (b'\x00\x00\x00\x0D\x00\x00\x00\x16$STREAM\x00CUR_IN,CUR_OUT,CUR_ERR,USER_IN,USER_OUT,USER_ERR',
     b'\x00\x00\x00\x13\x00\x00\x00\x16$cTYPE\x00cAATOM,cASTR,cINT,cLONG,cSHORT,cFLOAT,cDOUBLE,cADDR,cTERM,cWSTR,cWATOM,cMOD,cGOAL',
     b'\x00\x00\x00\x77\x00\x00\x00\x15$pTYPE\x00pERR,pATOM,pINT,pSTR,pFLOAT,pSTRUCT,pLIST,pTERM,pADDR,pVAR,pWSTR,pWATOM,pREAL'
     ),
    _typenames=(b'\x00\x00\x00\x39ARITY', b'\x00\x00\x00\x57ARITYptr',
                b'\x00\x00\x00\x05ENGid', b'\x00\x00\x00\x01ENGidptr',
                b'\x00\x00\x00\x61ExtPred', b'\x00\x00\x00\x76PRED_INITW',
                b'\x00\x00\x00\x09PRED_INITWptr', b'\x00\x00\x00\x0DSTREAM',
                b'\x00\x00\x00\x05TERM', b'\x00\x00\x00\x01TERMptr',
                b'\x00\x00\x00\x05VOIDptr', b'\x00\x00\x00\x13cTYPE',
                b'\x00\x00\x00\x77pTYPE', b'\x00\x00\x00\x39uintCH'),
)
示例#2
0
def test_ffi_cache_type_globally():
    ffi1 = _cffi1_backend.FFI()
    ffi2 = _cffi1_backend.FFI()
    t1 = ffi1.typeof("int *")
    t2 = ffi2.typeof("int *")
    assert t1 is t2
示例#3
0
def test_ffi_NULL():
    NULL = _cffi1_backend.FFI.NULL
    assert _cffi1_backend.FFI().typeof(NULL).cname == "void *"
示例#4
0
def test_bool_issue228():
    ffi = _cffi1_backend.FFI()
    fntype = ffi.typeof("int(*callback)(bool is_valid)")
    assert repr(fntype.args[0]) == "<ctype '_Bool'>"
示例#5
0
def test_unpack():
    ffi = _cffi1_backend.FFI()
    p = ffi.new("char[]", b"abc\x00def")
    assert ffi.unpack(p + 1, 7) == b"bc\x00def\x00"
    p = ffi.new("int[]", [-123456789])
    assert ffi.unpack(p, 1) == [-123456789]
示例#6
0
def test_ffi_cast():
    ffi = _cffi1_backend.FFI()
    assert ffi.cast("int(*)(int)", 0) == ffi.NULL
    ffi.callback("int(int)")  # side-effect of registering this string
    py.test.raises(ffi.error, ffi.cast, "int(int)", 0)
示例#7
0
def test_ffi_types():
    CData = _cffi1_backend.FFI.CData
    CType = _cffi1_backend.FFI.CType
    ffi = _cffi1_backend.FFI()
    assert isinstance(ffi.cast("int", 42), CData)
    assert isinstance(ffi.typeof("int"), CType)
示例#8
0
 def test_bug_1(self):
     import _cffi_backend as _cffi1_backend
     ffi = _cffi1_backend.FFI()
     q = ffi.new("char[]", b"abcd")
     p = ffi.cast("char(*)(void)", q)
     raises(TypeError, ffi.string, p)
示例#9
0
 def test_negative_array_size(self):
     import _cffi_backend as _cffi1_backend
     ffi = _cffi1_backend.FFI()
     raises(ffi.error, ffi.cast, "int[-5]", 0)
示例#10
0
 def test_ffi_cast(self):
     import _cffi_backend as _cffi1_backend
     ffi = _cffi1_backend.FFI()
     assert ffi.cast("int(*)(int)", 0) == ffi.NULL
     ffi.callback("int(int)")  # side-effect of registering this string
     raises(ffi.error, ffi.cast, "int(int)", 0)
示例#11
0
 def test_FILE_issue228(self):
     import _cffi_backend as _cffi1_backend
     fntype1 = _cffi1_backend.FFI().typeof("FILE *")
     fntype2 = _cffi1_backend.FFI().typeof("FILE *")
     assert repr(fntype1) == "<ctype 'FILE *'>"
     assert fntype1 is fntype2
示例#12
0
 def test_ffi_string(self):
     import _cffi_backend as _cffi1_backend
     ffi = _cffi1_backend.FFI()
     p = ffi.new("char[]", init=b"foobar\x00baz")
     assert ffi.string(p) == b"foobar"
示例#13
0
ffi = _cffi_backend.FFI(
    'VkInline.cffi',
    _version=0x2601,
    _types=
    b'\x00\x00\x18\x0D\x00\x00\x7E\x03\x00\x00\x00\x0F\x00\x00\x26\x0D\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x2C\x0D\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x32\x0D\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x32\x0D\x00\x00\x01\x11\x00\x00\x01\x11\x00\x00\x01\x11\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x32\x0D\x00\x00\x00\x0F\x00\x00\x38\x0D\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x1F\x0D\x00\x00\x7C\x03\x00\x00\x00\x0F\x00\x00\x1F\x0D\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x18\x11\x00\x00\x0C\x01\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x26\x03\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x0E\x01\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x2C\x03\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x0D\x01\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x32\x03\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x38\x03\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x08\x01\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x08\x01\x00\x00\x08\x01\x00\x00\x08\x01\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x0C\x01\x00\x00\x18\x03\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x0C\x01\x00\x00\x7D\x03\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x01\x11\x00\x00\x18\x11\x00\x00\x00\x0F\x00\x00\x01\x0D\x00\x00\x01\x11\x00\x00\x01\x11\x00\x00\x18\x11\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x18\x11\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x18\x11\x00\x00\x18\x11\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x08\x01\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x01\x11\x00\x00\x26\x03\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x01\x11\x00\x00\x2C\x03\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x01\x11\x00\x00\x32\x03\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x01\x11\x00\x00\x38\x03\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x01\x11\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x01\x11\x00\x00\x01\x11\x00\x00\x0C\x01\x00\x00\x0C\x01\x00\x00\x00\x0F\x00\x00\x7E\x0D\x00\x00\x00\x0F\x00\x00\x02\x01\x00\x00\x7E\x03\x00\x00\x00\x01',
    _globals=(
        b'\x00\x00\x56\x23n_add_built_in_header', 0,
        b'\x00\x00\x53\x23n_add_code_block', 0,
        b'\x00\x00\x53\x23n_add_inlcude_filename', 0,
        b'\x00\x00\x4A\x23n_computer_create', 0,
        b'\x00\x00\x5D\x23n_computer_destroy', 0,
        b'\x00\x00\x0C\x23n_computer_launch', 0,
        b'\x00\x00\x09\x23n_computer_num_params', 0,
        b'\x00\x00\x3A\x23n_dim3_create', 0, b'\x00\x00\x5D\x23n_dim3_destroy',
        0, b'\x00\x00\x43\x23n_pointer_array_create', 0,
        b'\x00\x00\x5D\x23n_pointer_array_destroy', 0,
        b'\x00\x00\x1A\x23n_pointer_array_size', 0,
        b'\x00\x00\x5A\x23n_set_verbose', 0, b'\x00\x00\x17\x23n_size_of', 0,
        b'\x00\x00\x3F\x23n_string_array_create', 0,
        b'\x00\x00\x5D\x23n_string_array_destroy', 0,
        b'\x00\x00\x1A\x23n_string_array_size', 0,
        b'\x00\x00\x5D\x23n_sv_destroy', 0,
        b'\x00\x00\x00\x23n_sv_name_view_type', 0,
        b'\x00\x00\x1D\x23n_svbuffer_create', 0,
        b'\x00\x00\x1A\x23n_svbuffer_elem_size', 0,
        b'\x00\x00\x70\x23n_svbuffer_from_host', 0,
        b'\x00\x00\x00\x23n_svbuffer_name_elem_type', 0,
        b'\x00\x00\x1A\x23n_svbuffer_size', 0,
        b'\x00\x00\x74\x23n_svbuffer_to_host', 0,
        b'\x00\x00\x4E\x23n_svcombine_create', 0,
        b'\x00\x00\x22\x23n_svdmat2x2_create', 0,
        b'\x00\x00\x60\x23n_svdmat2x2_value', 0,
        b'\x00\x00\x22\x23n_svdmat2x3_create', 0,
        b'\x00\x00\x60\x23n_svdmat2x3_value', 0,
        b'\x00\x00\x22\x23n_svdmat2x4_create', 0,
        b'\x00\x00\x60\x23n_svdmat2x4_value', 0,
        b'\x00\x00\x22\x23n_svdmat3x2_create', 0,
        b'\x00\x00\x60\x23n_svdmat3x2_value', 0,
        b'\x00\x00\x22\x23n_svdmat3x3_create', 0,
        b'\x00\x00\x60\x23n_svdmat3x3_value', 0,
        b'\x00\x00\x22\x23n_svdmat3x4_create', 0,
        b'\x00\x00\x60\x23n_svdmat3x4_value', 0,
        b'\x00\x00\x22\x23n_svdmat4x2_create', 0,
        b'\x00\x00\x60\x23n_svdmat4x2_value', 0,
        b'\x00\x00\x22\x23n_svdmat4x3_create', 0,
        b'\x00\x00\x60\x23n_svdmat4x3_value', 0,
        b'\x00\x00\x22\x23n_svdmat4x4_create', 0,
        b'\x00\x00\x60\x23n_svdmat4x4_value', 0,
        b'\x00\x00\x25\x23n_svdouble_create', 0,
        b'\x00\x00\x03\x23n_svdouble_value', 0,
        b'\x00\x00\x22\x23n_svdvec2_create', 0,
        b'\x00\x00\x60\x23n_svdvec2_value', 0,
        b'\x00\x00\x22\x23n_svdvec3_create', 0,
        b'\x00\x00\x60\x23n_svdvec3_value', 0,
        b'\x00\x00\x22\x23n_svdvec4_create', 0,
        b'\x00\x00\x60\x23n_svdvec4_value', 0,
        b'\x00\x00\x2B\x23n_svfloat_create', 0,
        b'\x00\x00\x06\x23n_svfloat_value', 0,
        b'\x00\x00\x31\x23n_svint32_create', 0,
        b'\x00\x00\x09\x23n_svint32_value', 0,
        b'\x00\x00\x2E\x23n_svivec2_create', 0,
        b'\x00\x00\x68\x23n_svivec2_value', 0,
        b'\x00\x00\x2E\x23n_svivec3_create', 0,
        b'\x00\x00\x68\x23n_svivec3_value', 0,
        b'\x00\x00\x2E\x23n_svivec4_create', 0,
        b'\x00\x00\x68\x23n_svivec4_value', 0,
        b'\x00\x00\x28\x23n_svmat2x2_create', 0,
        b'\x00\x00\x64\x23n_svmat2x2_value', 0,
        b'\x00\x00\x28\x23n_svmat2x3_create', 0,
        b'\x00\x00\x64\x23n_svmat2x3_value', 0,
        b'\x00\x00\x28\x23n_svmat2x4_create', 0,
        b'\x00\x00\x64\x23n_svmat2x4_value', 0,
        b'\x00\x00\x28\x23n_svmat3x2_create', 0,
        b'\x00\x00\x64\x23n_svmat3x2_value', 0,
        b'\x00\x00\x28\x23n_svmat3x3_create', 0,
        b'\x00\x00\x64\x23n_svmat3x3_value', 0,
        b'\x00\x00\x28\x23n_svmat3x4_create', 0,
        b'\x00\x00\x64\x23n_svmat3x4_value', 0,
        b'\x00\x00\x28\x23n_svmat4x2_create', 0,
        b'\x00\x00\x64\x23n_svmat4x2_value', 0,
        b'\x00\x00\x28\x23n_svmat4x3_create', 0,
        b'\x00\x00\x64\x23n_svmat4x3_value', 0,
        b'\x00\x00\x28\x23n_svmat4x4_create', 0,
        b'\x00\x00\x64\x23n_svmat4x4_value', 0,
        b'\x00\x00\x47\x23n_svobjbuffer_create', 0,
        b'\x00\x00\x1A\x23n_svobjbuffer_elem_size', 0,
        b'\x00\x00\x00\x23n_svobjbuffer_name_elem_type', 0,
        b'\x00\x00\x1A\x23n_svobjbuffer_size', 0,
        b'\x00\x00\x5D\x23n_svobjbuffer_update', 0,
        b'\x00\x00\x37\x23n_svuint32_create', 0,
        b'\x00\x00\x14\x23n_svuint32_value', 0,
        b'\x00\x00\x34\x23n_svuvec2_create', 0,
        b'\x00\x00\x6C\x23n_svuvec2_value', 0,
        b'\x00\x00\x34\x23n_svuvec3_create', 0,
        b'\x00\x00\x6C\x23n_svuvec3_value', 0,
        b'\x00\x00\x34\x23n_svuvec4_create', 0,
        b'\x00\x00\x6C\x23n_svuvec4_value', 0,
        b'\x00\x00\x28\x23n_svvec2_create', 0,
        b'\x00\x00\x64\x23n_svvec2_value', 0,
        b'\x00\x00\x28\x23n_svvec3_create', 0,
        b'\x00\x00\x64\x23n_svvec3_value', 0,
        b'\x00\x00\x28\x23n_svvec4_create', 0,
        b'\x00\x00\x64\x23n_svvec4_value', 0,
        b'\x00\x00\x12\x23n_vkinline_try_init', 0, b'\x00\x00\x7A\x23n_wait',
        0),
)
ffi = _cffi_backend.FFI(
    '_rinterface_cffi_abi',
    _version=0x2601,
    _types=
    b'\x00\x00\x23\x0D\x00\x00\x00\x0F\x00\x00\x3C\x0D\x00\x01\x08\x03\x00\x00\x00\x0F\x00\x00\x3C\x0D\x00\x00\xFB\x03\x00\x01\x24\x03\x00\x00\x00\x0F\x00\x01\x06\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x4C\x0D\x00\x00\x03\x11\x00\x00\x1B\x01\x00\x00\x00\x0F\x00\x00\x53\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x2E\x0D\x00\x00\x00\x0F\x00\x00\x2A\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x01\x0E\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x5B\x0D\x00\x00\x03\x11\x00\x00\x1B\x01\x00\x00\x00\x0F\x00\x00\x8C\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x2F\x0D\x00\x01\x00\x03\x00\x01\x04\x03\x00\x01\x05\x03\x00\x00\x24\x11\x00\x00\x25\x11\x00\x00\x00\x0F\x00\x00\x2F\x0D\x00\x01\x0D\x03\x00\x00\x00\x0F\x00\x00\x2F\x0D\x00\x00\x2A\x11\x00\x01\x0D\x03\x00\x00\x07\x01\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x00\x2F\x0D\x00\x00\x07\x01\x00\x00\x2E\x03\x00\x00\x00\x0F\x00\x00\x2F\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x2F\x0D\x00\x00\x03\x11\x00\x00\x05\x0B\x00\x00\x01\x0B\x00\x00\x3C\x11\x00\x00\x2A\x11\x00\x00\x00\x0F\x00\x00\x2F\x0D\x00\x00\x03\x11\x00\x00\x1B\x01\x00\x00\x00\x0F\x00\x00\x2F\x0D\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x0E\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x09\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x2A\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x2A\x11\x00\x00\x04\x0B\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x2A\x11\x00\x00\x07\x01\x00\x00\x53\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x0E\x01\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\xB8\x03\x00\x00\x07\x11\x00\x00\xA8\x03\x00\x00\x07\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x3C\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x07\x01\x00\x01\x03\x03\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x1B\x01\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x1B\x01\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x3C\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x2F\x03\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x03\x11\x00\x00\x07\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x04\x01\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x08\x01\x00\x00\x1B\x01\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\xC5\x03\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x03\x0D\x00\x00\x07\x11\x00\x00\x00\x0F\x00\x01\x1D\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\xAD\x0D\x00\x00\x03\x11\x00\x00\x1B\x01\x00\x00\x00\x0F\x00\x00\x07\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x00\x07\x0D\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x2A\x11\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x2A\x11\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x2A\x11\x00\x00\x07\x01\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x07\x01\x00\x00\x34\x11\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x03\x11\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x03\x11\x00\x00\x1B\x01\x00\x00\x0E\x01\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x03\x11\x00\x00\x1B\x01\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x03\x11\x00\x00\x1B\x01\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x03\x11\x00\x00\x03\x11\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x03\x11\x00\x00\xDA\x03\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x01\x1A\x03\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x07\x11\x00\x00\x00\x0F\x00\x01\x24\x0D\x00\x00\x00\x0F\x00\x00\x08\x09\x00\x01\x02\x03\x00\x00\x09\x09\x00\x00\x00\x0B\x00\x00\x01\x09\x00\x00\x02\x09\x00\x00\x4C\x03\x00\x00\x02\x0B\x00\x00\x07\x09\x00\x00\x04\x09\x00\x00\x03\x0B\x00\x01\x0C\x03\x00\x00\x05\x09\x00\x00\x02\x01\x00\x00\x5B\x03\x00\x00\x29\x03\x00\x00\x2C\x03\x00\x00\x1C\x01\x00\x00\x0A\x09\x00\x00\x0B\x09\x00\x00\x0C\x09\x00\x00\x0D\x09\x00\x00\x0E\x09\x00\x00\x0F\x09\x00\x00\x10\x09\x00\x00\x11\x09\x00\x00\x06\x09\x00\x00\x1A\x01\x00\x00\x00\x09\x00\x00\xAD\x03\x00\x00\xB0\x03\x00\x00\xC7\x03\x00\x00\xCA\x03\x00\x00\xCE\x03\x00\x00\xD3\x03\x00\x00\xFE\x03\x00\x00\x00\x01',
    _globals=
    (b'\xFF\xFF\xFF\x1FANYSXP', 18, b'\x00\x00\x66\x23ATTRIB', 0,
     b'\x00\x00\x3C\x21AllDevicesKilled', 0, b'\xFF\xFF\xFF\x1FBCODESXP', 21,
     b'\xFF\xFF\xFF\x1FBUILTINSXP', 8, b'\xFF\xFF\xFF\x0BBytes', 0,
     b'\x00\x00\x66\x23CAR', 0, b'\x00\x00\x66\x23CDR', 0,
     b'\xFF\xFF\xFF\x0BCE_ANY', 99, b'\xFF\xFF\xFF\x0BCE_BYTES', 3,
     b'\xFF\xFF\xFF\x0BCE_LATIN1', 2, b'\xFF\xFF\xFF\x0BCE_NATIVE', 0,
     b'\xFF\xFF\xFF\x0BCE_SYMBOL', 5, b'\xFF\xFF\xFF\x0BCE_UTF8', 1,
     b'\xFF\xFF\xFF\x1FCHARSXP', 9, b'\x00\x00\x66\x23CLOENV', 0,
     b'\xFF\xFF\xFF\x1FCLOSXP', 3, b'\x00\x00\x09\x23COMPLEX', 0,
     b'\x00\x00\x0C\x23COMPLEX_ELT', 0, b'\xFF\xFF\xFF\x1FCPLXSXP', 15,
     b'\xFF\xFF\xFF\x0BChars', 1, b'\x00\x00\xC2\x23DATAPTR', 0,
     b'\xFF\xFF\xFF\x1FDOTSXP', 17, b'\x00\x00\x66\x23ENCLOS', 0,
     b'\x00\x00\x36\x23ENVFLAGS', 0, b'\xFF\xFF\xFF\x1FENVSXP', 4,
     b'\xFF\xFF\xFF\x1FEXPRSXP', 20, b'\xFF\xFF\xFF\x1FEXTPTRSXP', 22,
     b'\xFF\xFF\xFF\x0BFALSE', 0, b'\x00\x00\x66\x23FRAME', 0,
     b'\xFF\xFF\xFF\x1FFREESXP', 31, b'\xFF\xFF\xFF\x1FFUNSXP', 99,
     b'\x00\x00\xFE\x23GA_appcleanup', 0, b'\x00\x00\x32\x23GA_initapp', 0,
     b'\x00\x00\x66\x23HASHTAB', 0, b'\x00\x00\x1F\x23INTEGER', 0,
     b'\x00\x00\x40\x23INTEGER_ELT', 0, b'\xFF\xFF\xFF\x1FINTSXP', 13,
     b'\xFF\xFF\xFF\x1FLANGSXP', 6, b'\xFF\xFF\xFF\x1FLGLSXP', 10,
     b'\xFF\xFF\xFF\x1FLISTSXP', 2, b'\x00\x00\x1F\x23LOGICAL', 0,
     b'\x00\x00\x40\x23LOGICAL_ELT', 0, b'\xFF\xFF\xFF\x0BLinkDLL', 2,
     b'\xFF\xFF\xFF\x1FNEWSXP', 30, b'\xFF\xFF\xFF\x1FNILSXP', 0,
     b'\xFF\xFF\xFF\x0BPARSE_EOF', 4, b'\xFF\xFF\xFF\x0BPARSE_ERROR', 3,
     b'\xFF\xFF\xFF\x0BPARSE_INCOMPLETE', 2, b'\xFF\xFF\xFF\x0BPARSE_NULL', 0,
     b'\xFF\xFF\xFF\x0BPARSE_OK', 1, b'\x00\x00\x66\x23PRINTNAME', 0,
     b'\xFF\xFF\xFF\x1FPROMSXP', 5, b'\x00\x00\xBB\x23RAW', 0,
     b'\xFF\xFF\xFF\x1FRAWSXP', 24, b'\x00\x00\xBE\x23RAW_ELT', 0,
     b'\x00\x00\x18\x23REAL', 0, b'\xFF\xFF\xFF\x1FREALSXP', 14,
     b'\x00\x00\x1B\x23REAL_ELT', 0, b'\xFF\xFF\xFF\x0BRGui', 0,
     b'\xFF\xFF\xFF\x0BRTerm', 1, b'\x00\x00\x03\x21R_BaseEnv', 0,
     b'\x00\x00\x03\x21R_BaseNamespace', 0,
     b'\x00\x00\x03\x21R_BlankScalarString', 0,
     b'\x00\x00\x03\x21R_BlankString', 0, b'\x00\x00\x15\x23R_CHAR', 0,
     b'\x00\x01\x1B\x21R_CStackLimit', 0, b'\x00\x01\x1B\x21R_CStackStart', 0,
     b'\x00\x00\x03\x21R_ClassSymbol', 0, b'\x00\x00\xFE\x23R_CleanTempDir', 0,
     b'\x00\x00\xDA\x23R_ClearExternalPtr', 0,
     b'\x00\x01\x01\x21R_Consolefile', 0, b'\x00\x00\xF8\x23R_DefParams', 0,
     b'\x00\x00\x03\x21R_DimSymbol', 0, b'\x00\x00\x03\x21R_EmptyEnv', 0,
     b'\x00\x00\x02\x23R_EnvironmentIsLocked', 0,
     b'\x00\x00\xC2\x23R_ExternalPtrAddr', 0,
     b'\x00\x00\x07\x21R_GlobalContext', 0, b'\x00\x00\x03\x21R_GlobalEnv', 0,
     b'\x00\x00\x3C\x21R_Interactive', 0, b'\x00\x00\xB3\x23R_MakeExternalPtr',
     0,
     b'\x00\x00\x03\x21R_MissingArg', 0, b'\x00\x00\x2F\x21R_NaInt', 0,
     b'\x00\x00\x5B\x21R_NaN', 0, b'\x00\x00\x5B\x21R_NaReal', 0,
     b'\x00\x00\x03\x21R_NaString', 0, b'\x00\x00\x03\x21R_NameSymbol', 0,
     b'\x00\x00\x5B\x21R_NegInf', 0, b'\x00\x00\x03\x21R_NilValue', 0,
     b'\x00\x01\x01\x21R_Outputfile', 0, b'\x00\x00\x71\x23R_ParseVector', 0,
     b'\x00\x00\x5B\x21R_PosInf', 0, b'\x00\x00\xDA\x23R_PreserveObject', 0,
     b'\x00\x00\xF4\x23R_RegisterCFinalizer', 0,
     b'\x00\x00\xDA\x23R_ReleaseObject', 0,
     b'\x00\x00\xFE\x23R_RunExitFinalizers', 0,
     b'\x00\x00\xF8\x23R_SetParams', 0, b'\x00\x00\x2F\x21R_SignalHandlers', 0,
     b'\x00\x00\x05\x23R_ToplevelExec', 0,
     b'\x00\x00\x03\x21R_UnboundValue', 0, b'\x00\x00\x80\x23R_do_slot', 0,
     b'\x00\x00\x8E\x23R_do_slot_assign', 0, b'\x00\x00\xFE\x23R_dot_Last', 0,
     b'\x00\x00\xFE\x23R_gc', 0, b'\x00\x00\x00\x23R_getEmbeddingDllInfo', 0,
     b'\x00\x00\x44\x23R_has_slot', 0, b'\x00\x00\x69\x23R_lsInternal', 0,
     b'\x00\x00\x39\x23R_nchar', 0, b'\x00\x00\x22\x23R_registerRoutines', 0,
     b'\x00\x00\xD6\x23R_set_command_line_arguments', 0,
     b'\x00\x00\x60\x23R_tryCatchError', 0, b'\x00\x00\x89\x23R_tryEval', 0,
     b'\x00\x00\xFE\x23Rf_KillAllDevices', 0,
     b'\x00\x00\x4B\x23Rf_ScalarComplex', 0,
     b'\x00\x00\x5D\x23Rf_ScalarInteger', 0,
     b'\x00\x00\x5D\x23Rf_ScalarLogical', 0,
     b'\x00\x00\xAC\x23Rf_ScalarRaw', 0, b'\x00\x00\x5A\x23Rf_ScalarReal', 0,
     b'\x00\x00\x66\x23Rf_ScalarString', 0, b'\x00\x00\x5D\x23Rf_allocList', 0,
     b'\x00\x00\xAF\x23Rf_allocVector', 0, b'\x00\x00\x66\x23Rf_asChar', 0,
     b'\x00\x00\x8E\x23Rf_defineVar', 0, b'\x00\x00\x66\x23Rf_duplicate', 0,
     b'\x00\x00\x6D\x23Rf_elt', 0, b'\x00\x00\xD3\x23Rf_endEmbeddedR', 0,
     b'\x00\x00\x80\x23Rf_eval', 0, b'\x00\x00\x80\x23Rf_findFun', 0,
     b'\x00\x00\x80\x23Rf_findVar', 0, b'\x00\x00\x80\x23Rf_findVarInFrame', 0,
     b'\x00\x00\x84\x23Rf_findVarInFrame3', 0,
     b'\x00\x00\x80\x23Rf_getAttrib', 0, b'\x00\x00\x10\x23Rf_getCharCE', 0,
     b'\x00\x00\x32\x23Rf_initEmbeddedR', 0,
     b'\x00\x00\x32\x23Rf_initialize_R', 0, b'\x00\x00\x4E\x23Rf_install', 0,
     b'\x00\x00\x66\x23Rf_installChar', 0, b'\x00\x00\x02\x23Rf_isList', 0,
     b'\x00\x00\x02\x23Rf_isNull', 0, b'\x00\x00\x02\x23Rf_isSymbol', 0,
     b'\x00\x00\x66\x23Rf_lang1', 0, b'\x00\x00\x80\x23Rf_lang2', 0,
     b'\x00\x00\x8E\x23Rf_lang3', 0, b'\x00\x00\x93\x23Rf_lang4', 0,
     b'\x00\x00\x99\x23Rf_lang5', 0, b'\x00\x00\xA0\x23Rf_lang6', 0,
     b'\x00\x00\x36\x23Rf_length', 0, b'\x00\x00\xFE\x23Rf_mainloop', 0,
     b'\x00\x00\x4E\x23Rf_mkChar', 0, b'\x00\x00\x51\x23Rf_mkCharCE', 0,
     b'\x00\x00\x55\x23Rf_mkCharLenCE', 0, b'\x00\x00\x4E\x23Rf_mkString', 0,
     b'\x00\x00\x80\x23Rf_namesgets', 0, b'\x00\x00\x6D\x23Rf_nthcdr', 0,
     b'\x00\x00\x66\x23Rf_protect', 0, b'\x00\x00\x8E\x23Rf_setAttrib', 0,
     b'\x00\x00\xD3\x23Rf_unprotect', 0, b'\x00\x00\x48\x23Rf_xlength', 0,
     b'\xFF\xFF\xFF\x1FS4SXP', 25, b'\xFF\xFF\xFF\x0BSA_DEFAULT', 2,
     b'\xFF\xFF\xFF\x0BSA_NORESTORE', 0, b'\xFF\xFF\xFF\x0BSA_NOSAVE', 3,
     b'\xFF\xFF\xFF\x0BSA_RESTORE', 1, b'\xFF\xFF\xFF\x0BSA_SAVE', 4,
     b'\xFF\xFF\xFF\x0BSA_SAVEASK', 5, b'\xFF\xFF\xFF\x0BSA_SUICIDE', 6,
     b'\x00\x00\x80\x23SETCAR', 0, b'\x00\x00\x80\x23SETCDR', 0,
     b'\x00\x00\xF0\x23SET_ENCLOS', 0, b'\x00\x00\xDD\x23SET_ENVFLAGS', 0,
     b'\x00\x00\xF0\x23SET_FRAME', 0, b'\x00\x00\xF0\x23SET_HASHTAB', 0,
     b'\x00\x00\xE6\x23SET_INTEGER_ELT', 0, b'\x00\x00\xE6\x23SET_LOGICAL_ELT',
     0, b'\x00\x00\xE1\x23SET_REAL_ELT', 0, b'\x00\x00\xEB\x23SET_STRING_ELT',
     0, b'\x00\x00\x80\x23SET_TAG', 0, b'\x00\x00\x7B\x23SET_VECTOR_ELT', 0,
     b'\xFF\xFF\xFF\x1FSPECIALSXP', 7, b'\x00\x00\xC2\x23STDVEC_DATAPTR', 0,
     b'\x00\x00\x77\x23STRING_ELT', 0, b'\xFF\xFF\xFF\x1FSTRSXP', 16,
     b'\xFF\xFF\xFF\x1FSYMSXP', 1, b'\x00\x00\x66\x23TAG', 0,
     b'\xFF\xFF\xFF\x0BTRUE', 1, b'\x00\x00\x2F\x21UserBreak', 0,
     b'\xFF\xFF\xFF\x1FVECSXP', 19, b'\x00\x00\x77\x23VECTOR_ELT', 0,
     b'\xFF\xFF\xFF\x1FWEAKREFSXP', 23, b'\xFF\xFF\xFF\x0BWidth', 2,
     b'\x00\x00\xFE\x23editorcleanall', 0, b'\x00\x00\x13\x23getDLLVersion', 0,
     b'\x00\x00\x13\x23getRUser', 0, b'\x00\x00\x13\x23get_R_HOME', 0,
     b'\x00\x00\xFE\x23readconsolecfg', 0, b'\x00\x00\xFE\x23run_Rmainloop', 0,
     b'\x00\x00\xFE\x23setup_Rmainloop', 0, b'\x00\x00\xFE\x23setup_term_ui',
     0),
    _struct_unions=(
        (b'\x00\x00\x01\x1C\x00\x00\x00\x03$1', b'\x00\x01\x15\x11primsxp',
         b'\x00\x01\x18\x11symsxp', b'\x00\x01\x14\x11listsxp',
         b'\x00\x01\x13\x11envsxp', b'\x00\x01\x12\x11closxp',
         b'\x00\x01\x16\x11promsxp'),
        (b'\x00\x00\x01\x04\x00\x00\x00\x02$R_CMethodDef',
         b'\x00\x00\x2A\x11name', b'\x00\x00\xB4\x11fun',
         b'\x00\x00\x2F\x11numArgs', b'\x00\x01\x1E\x11types'),
        (b'\x00\x00\x01\x05\x00\x00\x00\x02$R_CallMethodDef',
         b'\x00\x00\x2A\x11name', b'\x00\x00\xB4\x11fun',
         b'\x00\x00\x2F\x11numArgs'),
        (b'\x00\x00\x00\x4C\x00\x00\x00\x02$Rcomplex', b'\x00\x00\x5B\x11r',
         b'\x00\x00\x5B\x11i'),
        (b'\x00\x00\x01\x09\x00\x00\x00\x03$SEXPREC_ALIGN',
         b'\x00\x01\x0C\x11s', b'\x00\x00\x5B\x11align'),
        (b'\x00\x00\x01\x0C\x00\x00\x00\x02$VECTOR_SEXPREC',
         b'\x00\x01\x17\x11sxpinfo', b'\x00\x00\x03\x11attrib',
         b'\x00\x00\x03\x11gengc_next_node',
         b'\x00\x00\x03\x11gengc_prev_node', b'\x00\x01\x19\x11vecsxp'),
        (b'\x00\x00\x01\x1A\x00\x00\x00\x02$structRstart',
         b'\x00\x00\x3C\x11R_Quiet', b'\x00\x00\x3C\x11R_Slave',
         b'\x00\x00\x3C\x11R_Interactive', b'\x00\x00\x3C\x11R_Verbose',
         b'\x00\x00\x3C\x11LoadSiteFile', b'\x00\x00\x3C\x11LoadInitFile',
         b'\x00\x00\x3C\x11DebugInitFile', b'\x00\x01\x07\x11RestoreAction',
         b'\x00\x01\x07\x11SaveAction', b'\x00\x01\x11\x11vsize',
         b'\x00\x01\x11\x11nsize', b'\x00\x01\x11\x11max_vsize',
         b'\x00\x01\x11\x11max_nsize', b'\x00\x01\x11\x11ppsize',
         b'\x00\x00\x2F\x11NoRenviron', b'\x00\x00\x2E\x11rhome',
         b'\x00\x00\x2E\x11home', b'\x00\x01\x10\x11ReadConsole',
         b'\x00\x01\x20\x11WriteConsole', b'\x00\x01\x23\x11CallBack',
         b'\x00\x01\x1F\x11ShowMessage', b'\x00\x01\x0F\x11YesNoCancel',
         b'\x00\x01\x22\x11Busy', b'\x00\x01\x0A\x11CharacterMode',
         b'\x00\x01\x21\x11WriteConsoleEx'),
        (b'\x00\x00\x01\x08\x00\x00\x00\x02SEXPREC',
         b'\x00\x01\x17\x11sxpinfo', b'\x00\x00\x03\x11attrib',
         b'\x00\x00\x03\x11gengc_next_node',
         b'\x00\x00\x03\x11gengc_prev_node', b'\x00\x01\x1C\x11u'),
        (b'\x00\x00\x01\x00\x00\x00\x00\x10_DllInfo', ),
        (b'\x00\x00\x01\x02\x00\x00\x00\x10_IO_FILE', ),
        (b'\x00\x00\x01\x12\x00\x00\x00\x02closxp_struct',
         b'\x00\x00\x03\x11formals', b'\x00\x00\x03\x11body',
         b'\x00\x00\x03\x11env'),
        (b'\x00\x00\x01\x13\x00\x00\x00\x02envsxp_struct',
         b'\x00\x00\x03\x11frame', b'\x00\x00\x03\x11enclos',
         b'\x00\x00\x03\x11hashtab'),
        (b'\x00\x00\x01\x14\x00\x00\x00\x02listsxp_struct',
         b'\x00\x00\x03\x11carval', b'\x00\x00\x03\x11cdrval',
         b'\x00\x00\x03\x11tagval'),
        (b'\x00\x00\x01\x15\x00\x00\x00\x02primsxp_struct',
         b'\x00\x00\x2F\x11offset'),
        (b'\x00\x00\x01\x16\x00\x00\x00\x02promsxp_struct',
         b'\x00\x00\x03\x11value', b'\x00\x00\x03\x11expr',
         b'\x00\x00\x03\x11env'),
        (b'\x00\x00\x01\x17\x00\x00\x00\x02sxpinfo_struct',
         b'\x00\x00\xB0\x13\x00\x00\x00\x05type',
         b'\x00\x00\xB0\x13\x00\x00\x00\x01scalar',
         b'\x00\x00\xB0\x13\x00\x00\x00\x01alt',
         b'\x00\x00\xB0\x13\x00\x00\x00\x01obj',
         b'\x00\x00\xB0\x13\x00\x00\x00\x10gp',
         b'\x00\x00\xB0\x13\x00\x00\x00\x01mark',
         b'\x00\x00\xB0\x13\x00\x00\x00\x01debug',
         b'\x00\x00\xB0\x13\x00\x00\x00\x01trace',
         b'\x00\x00\xB0\x13\x00\x00\x00\x01spare',
         b'\x00\x00\xB0\x13\x00\x00\x00\x01gcgen',
         b'\x00\x00\xB0\x13\x00\x00\x00\x03gccls',
         b'\x00\x00\xB0\x13\x00\x00\x00\x10named',
         b'\x00\x00\xB0\x13\x00\x00\x00\x20extra'),
        (b'\x00\x00\x01\x18\x00\x00\x00\x02symsxp_struct',
         b'\x00\x00\x03\x11pname', b'\x00\x00\x03\x11value',
         b'\x00\x00\x03\x11internal'),
        (b'\x00\x00\x01\x19\x00\x00\x00\x02vecsxp_struct',
         b'\x00\x00\x0E\x11length', b'\x00\x00\x0E\x11truelength')),
    _enums=
    (b'\x00\x00\x01\x03\x00\x00\x00\x16$ParseStatus\x00PARSE_NULL,PARSE_OK,PARSE_INCOMPLETE,PARSE_ERROR,PARSE_EOF',
     b'\x00\x00\x00\x3C\x00\x00\x00\x16$Rboolean\x00FALSE,TRUE',
     b'\x00\x00\x01\x07\x00\x00\x00\x16$SA_TYPE\x00SA_NORESTORE,SA_RESTORE,SA_DEFAULT,SA_NOSAVE,SA_SAVE,SA_SAVEASK,SA_SUICIDE',
     b'\x00\x00\x01\x0A\x00\x00\x00\x16$UImode\x00RGui,RTerm,LinkDLL',
     b'\x00\x00\x00\x53\x00\x00\x00\x16$cetype_t\x00CE_NATIVE,CE_UTF8,CE_LATIN1,CE_BYTES,CE_SYMBOL,CE_ANY',
     b'\x00\x00\x00\x3B\x00\x00\x00\x16$nchar_type\x00Bytes,Chars,Width'),
    _typenames=(b'\x00\x00\x00\xB4DL_FUNC', b'\x00\x00\x01\x00DllInfo',
                b'\x00\x00\x01\x02FILE', b'\x00\x00\x01\x03ParseStatus',
                b'\x00\x00\x00\xF6R_CFinalizer_t',
                b'\x00\x00\x01\x04R_CMethodDef',
                b'\x00\x00\x01\x05R_CallMethodDef',
                b'\x00\x00\x01\x05R_ExternalMethodDef',
                b'\x00\x00\x01\x04R_FortranMethodDef',
                b'\x00\x00\x00\xB0R_NativePrimitiveArgType',
                b'\x00\x00\x00\x2FR_len_t', b'\x00\x00\x00\x0ER_xlen_t',
                b'\x00\x00\x00\x3CRboolean', b'\x00\x00\x00\xADRbyte',
                b'\x00\x00\x00\x4CRcomplex', b'\x00\x00\x00\xF9Rstart',
                b'\x00\x00\x01\x07SA_TYPE', b'\x00\x00\x00\x03SEXP',
                b'\x00\x00\x01\x08SEXPREC', b'\x00\x00\x01\x09SEXPREC_ALIGN',
                b'\x00\x00\x00\xB0SEXPTYPE', b'\x00\x00\x01\x0AUImode',
                b'\x00\x00\x01\x0BVECSEXP', b'\x00\x00\x01\x0CVECTOR_SEXPREC',
                b'\x00\x00\x01\x10blah1', b'\x00\x00\x01\x20blah2',
                b'\x00\x00\x01\x23blah3', b'\x00\x00\x01\x1Fblah4',
                b'\x00\x00\x01\x0Fblah5', b'\x00\x00\x01\x22blah6',
                b'\x00\x00\x01\x21blah7', b'\x00\x00\x00\x53cetype_t',
                b'\x00\x00\x00\x3Bnchar_type',
                b'\x00\x00\x01\x1AstructRstart'),
)
示例#15
0
def test_addressof():
    ffi = _cffi1_backend.FFI()
    a = ffi.new("int[10]")
    b = ffi.addressof(a, 5)
    b[2] = -123
    assert a[7] == -123
示例#16
0
 def test_ffi_invalid(self):
     import _cffi_backend as _cffi1_backend
     ffi = _cffi1_backend.FFI()
     # array of 10 times an "int[]" is invalid
     raises(ValueError, ffi.typeof, "int[10][]")
示例#17
0
def test_handle_unique():
    ffi = _cffi1_backend.FFI()
    assert ffi.new_handle(None) is not ffi.new_handle(None)
    assert ffi.new_handle(None) != ffi.new_handle(None)
示例#18
0
 def test_ffi_NULL(self):
     import _cffi_backend as _cffi1_backend
     NULL = _cffi1_backend.FFI.NULL
     assert _cffi1_backend.FFI().typeof(NULL).cname == "void *"
示例#19
0
def test_ffi_buffer():
    ffi = _cffi1_backend.FFI()
    a = ffi.new("signed char[]", [5, 6, 7])
    assert ffi.buffer(a)[:] == b'\x05\x06\x07'
    assert ffi.buffer(cdata=a, size=2)[:] == b'\x05\x06'
    assert type(ffi.buffer(a)) is ffi.buffer
示例#20
0
 def test_ffi_no_attr(self):
     import _cffi_backend as _cffi1_backend
     ffi = _cffi1_backend.FFI()
     raises(AttributeError, "ffi.no_such_name")
     raises(AttributeError, "ffi.no_such_name = 42")
     raises(AttributeError, "del ffi.no_such_name")
示例#21
0
def test_ffi_new():
    ffi = _cffi1_backend.FFI()
    p = ffi.new("int *")
    p[0] = -42
    assert p[0] == -42
    assert type(ffi) is ffi.__class__ is _cffi1_backend.FFI
示例#22
0
def test_ffi_string():
    ffi = _cffi1_backend.FFI()
    p = ffi.new("char[]", init=b"foobar\x00baz")
    assert ffi.string(p) == b"foobar"
    assert ffi.string(cdata=p, maxlen=3) == b"foo"
示例#23
0
def test_FILE_issue228():
    fntype1 = _cffi1_backend.FFI().typeof("FILE *")
    fntype2 = _cffi1_backend.FFI().typeof("FILE *")
    assert repr(fntype1) == "<ctype 'FILE *'>"
    assert fntype1 is fntype2
示例#24
0
def test_ffi_errno():
    # xxx not really checking errno, just checking that we can read/write it
    ffi = _cffi1_backend.FFI()
    ffi.errno = 42
    assert ffi.errno == 42
示例#25
0
def test_negative_array_size():
    ffi = _cffi1_backend.FFI()
    py.test.raises(ffi.error, ffi.cast, "int[-5]", 0)
示例#26
0
def test_ffi_callback():
    ffi = _cffi1_backend.FFI()
    assert ffi.callback("int(int)", lambda x: x + 42)(10) == 52
    assert ffi.callback("int(*)(int)", lambda x: x + 42)(10) == 52
    assert ffi.callback("int(int)", lambda x: x + "", -66)(10) == -66
    assert ffi.callback("int(int)", lambda x: x + "", error=-66)(10) == -66
示例#27
0
def test_ffi_invalid():
    ffi = _cffi1_backend.FFI()
    # array of 10 times an "int[]" is invalid
    py.test.raises(ValueError, ffi.typeof, "int[10][]")
示例#28
0
def test_ffi_callback_decorator():
    ffi = _cffi1_backend.FFI()
    assert ffi.callback(ffi.typeof("int(*)(int)"))(lambda x: x + 42)(10) == 52
    deco = ffi.callback("int(int)", error=-66)
    assert deco(lambda x: x + "")(10) == -66
    assert deco(lambda x: x + 42)(10) == 52
示例#29
0
def test_ffi_no_attr():
    ffi = _cffi1_backend.FFI()
    py.test.raises(AttributeError, "ffi.no_such_name")
    py.test.raises(AttributeError, "ffi.no_such_name = 42")
    py.test.raises(AttributeError, "del ffi.no_such_name")
示例#30
0
ffi = _cffi_backend.FFI(
    'omikuji._libomikuji__ffi',
    _version=0x2601,
    _types=
    b'\x00\x00\x26\x0D\x00\x00\x38\x03\x00\x00\x36\x03\x00\x00\x00\x0F\x00\x00\x08\x0D\x00\x00\x00\x0F\x00\x00\x12\x0D\x00\x00\x33\x03\x00\x00\x01\x09\x00\x00\x02\x11\x00\x00\x00\x0F\x00\x00\x12\x0D\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x31\x0D\x00\x00\x1A\x01\x00\x00\x00\x0F\x00\x00\x39\x0D\x00\x00\x35\x03\x00\x00\x01\x11\x00\x00\x00\x0F\x00\x00\x39\x0D\x00\x00\x00\x0F\x00\x00\x1C\x0D\x00\x00\x35\x03\x00\x00\x00\x0F\x00\x00\x1C\x0D\x00\x00\x18\x11\x00\x00\x1C\x01\x00\x00\x1C\x01\x00\x00\x3A\x03\x00\x00\x2D\x03\x00\x00\x1C\x01\x00\x00\x3A\x03\x00\x00\x2D\x03\x00\x00\x02\x11\x00\x00\x00\x0F\x00\x00\x3E\x0D\x00\x00\x33\x03\x00\x00\x00\x0F\x00\x00\x3E\x0D\x00\x00\x12\x11\x00\x00\x00\x0F\x00\x00\x3E\x0D\x00\x00\x12\x11\x00\x00\x0D\x01\x00\x00\x02\x11\x00\x00\x00\x0F\x00\x00\x3E\x0D\x00\x00\x36\x03\x00\x00\x00\x0F\x00\x00\x00\x09\x00\x00\x00\x0B\x00\x00\x02\x09\x00\x00\x03\x09\x00\x00\x01\x01\x00\x00\x02\x01\x00\x00\x11\x01\x00\x00\x16\x01\x00\x00\x12\x01\x00\x00\x3B\x05\x00\x00\x00\x00\x00\x00\x00\x01',
    _globals=(b'\xFF\xFF\xFF\x0BHinge', 0, b'\xFF\xFF\xFF\x0BLog', 1,
              b'\x00\x00\x2B\x23densify_omikuji_model', 0,
              b'\x00\x00\x25\x23free_omikuji_data_set', 0,
              b'\x00\x00\x28\x23free_omikuji_model', 0,
              b'\x00\x00\x30\x23free_omikuji_thread_pool', 0,
              b'\x00\x00\x0E\x23init_omikuji_thread_pool', 0,
              b'\x00\x00\x00\x23load_omikuji_data_set', 0,
              b'\x00\x00\x0B\x23load_omikuji_model', 0,
              b'\x00\x00\x04\x23omikuji_default_hyper_param', 0,
              b'\x00\x00\x15\x23omikuji_init_logger', 0,
              b'\x00\x00\x17\x23omikuji_n_features', 0,
              b'\x00\x00\x17\x23omikuji_n_trees', 0,
              b'\x00\x00\x1A\x23omikuji_predict', 0,
              b'\x00\x00\x11\x23save_omikuji_model', 0,
              b'\x00\x00\x06\x23train_omikuji_model', 0),
    _struct_unions=(
        (b'\x00\x00\x00\x33\x00\x00\x00\x02$OMIKUJI_DataSet',
         b'\x00\x00\x3C\x11_private'),
        (b'\x00\x00\x00\x08\x00\x00\x00\x02$OMIKUJI_HyperParam',
         b'\x00\x00\x1C\x11n_trees', b'\x00\x00\x1C\x11min_branch_size',
         b'\x00\x00\x1C\x11max_depth', b'\x00\x00\x2D\x11centroid_threshold',
         b'\x00\x00\x1C\x11collapse_every_n_layers',
         b'\x00\x00\x37\x11tree_structure_only',
         b'\x00\x00\x34\x11linear_loss_type', b'\x00\x00\x2D\x11linear_eps',
         b'\x00\x00\x2D\x11linear_c',
         b'\x00\x00\x2D\x11linear_weight_threshold',
         b'\x00\x00\x3A\x11linear_max_iter', b'\x00\x00\x1C\x11cluster_k',
         b'\x00\x00\x37\x11cluster_balanced', b'\x00\x00\x2D\x11cluster_eps',
         b'\x00\x00\x0F\x11cluster_min_size'),
        (b'\x00\x00\x00\x35\x00\x00\x00\x02$OMIKUJI_Model',
         b'\x00\x00\x3C\x11_private'),
        (b'\x00\x00\x00\x36\x00\x00\x00\x02$OMIKUJI_ThreadPool',
         b'\x00\x00\x3C\x11_private')),
    _enums=(
        b'\x00\x00\x00\x34\x00\x00\x00\x16$OMIKUJI_LossType\x00Hinge,Log', ),
    _typenames=(b'\x00\x00\x00\x33OMIKUJI_DataSet',
                b'\x00\x00\x00\x08OMIKUJI_HyperParam',
                b'\x00\x00\x00\x34OMIKUJI_LossType',
                b'\x00\x00\x00\x35OMIKUJI_Model',
                b'\x00\x00\x00\x36OMIKUJI_ThreadPool'),
)