55
55
DOUBLE = 12
56
56
FLOAT = 13
57
57
CHAR = 14
58
+ CHAR_PTR = 15
58
59
59
60
FIRST_OBJ_ID = 100
60
61
@@ -63,33 +64,33 @@ def is_obj(ty):
63
64
64
65
Type2Str = { VOID : 'void' , VOID_PTR : 'void*' , INT : 'int' , UINT : 'unsigned' , INT64 : 'int64_t' , UINT64 : 'uint64_t' , DOUBLE : 'double' ,
65
66
FLOAT : 'float' , STRING : 'Z3_string' , STRING_PTR : 'Z3_string_ptr' , BOOL : 'bool' , SYMBOL : 'Z3_symbol' ,
66
- PRINT_MODE : 'Z3_ast_print_mode' , ERROR_CODE : 'Z3_error_code' , CHAR : 'char'
67
+ PRINT_MODE : 'Z3_ast_print_mode' , ERROR_CODE : 'Z3_error_code' , CHAR : 'char' , CHAR_PTR : 'char*'
67
68
}
68
69
69
70
Type2PyStr = { VOID_PTR : 'ctypes.c_void_p' , INT : 'ctypes.c_int' , UINT : 'ctypes.c_uint' , INT64 : 'ctypes.c_longlong' ,
70
71
UINT64 : 'ctypes.c_ulonglong' , DOUBLE : 'ctypes.c_double' , FLOAT : 'ctypes.c_float' ,
71
72
STRING : 'ctypes.c_char_p' , STRING_PTR : 'ctypes.POINTER(ctypes.c_char_p)' , BOOL : 'ctypes.c_bool' , SYMBOL : 'Symbol' ,
72
- PRINT_MODE : 'ctypes.c_uint' , ERROR_CODE : 'ctypes.c_uint' , CHAR : 'ctypes.c_char'
73
+ PRINT_MODE : 'ctypes.c_uint' , ERROR_CODE : 'ctypes.c_uint' , CHAR : 'ctypes.c_char' , CHAR_PTR : 'ctypes.c_char_p'
73
74
}
74
75
75
76
# Mapping to .NET types
76
77
Type2Dotnet = { VOID : 'void' , VOID_PTR : 'IntPtr' , INT : 'int' , UINT : 'uint' , INT64 : 'Int64' , UINT64 : 'UInt64' , DOUBLE : 'double' ,
77
78
FLOAT : 'float' , STRING : 'string' , STRING_PTR : 'byte**' , BOOL : 'byte' , SYMBOL : 'IntPtr' ,
78
- PRINT_MODE : 'uint' , ERROR_CODE : 'uint' , CHAR : 'char' }
79
+ PRINT_MODE : 'uint' , ERROR_CODE : 'uint' , CHAR : 'char' , CHAR_PTR : 'char*' }
79
80
80
81
# Mapping to Java types
81
82
Type2Java = { VOID : 'void' , VOID_PTR : 'long' , INT : 'int' , UINT : 'int' , INT64 : 'long' , UINT64 : 'long' , DOUBLE : 'double' ,
82
83
FLOAT : 'float' , STRING : 'String' , STRING_PTR : 'StringPtr' ,
83
- BOOL : 'boolean' , SYMBOL : 'long' , PRINT_MODE : 'int' , ERROR_CODE : 'int' , CHAR : 'char' }
84
+ BOOL : 'boolean' , SYMBOL : 'long' , PRINT_MODE : 'int' , ERROR_CODE : 'int' , CHAR : 'char' , CHAR_PTR : 'long' }
84
85
85
86
Type2JavaW = { VOID : 'void' , VOID_PTR : 'jlong' , INT : 'jint' , UINT : 'jint' , INT64 : 'jlong' , UINT64 : 'jlong' , DOUBLE : 'jdouble' ,
86
87
FLOAT : 'jfloat' , STRING : 'jstring' , STRING_PTR : 'jobject' ,
87
- BOOL : 'jboolean' , SYMBOL : 'jlong' , PRINT_MODE : 'jint' , ERROR_CODE : 'jint' , CHAR : 'jchar' }
88
+ BOOL : 'jboolean' , SYMBOL : 'jlong' , PRINT_MODE : 'jint' , ERROR_CODE : 'jint' , CHAR : 'jchar' , CHAR_PTR : 'jlong' }
88
89
89
90
# Mapping to ML types
90
91
Type2ML = { VOID : 'unit' , VOID_PTR : 'VOIDP' , INT : 'int' , UINT : 'int' , INT64 : 'int' , UINT64 : 'int' , DOUBLE : 'float' ,
91
92
FLOAT : 'float' , STRING : 'string' , STRING_PTR : 'char**' ,
92
- BOOL : 'bool' , SYMBOL : 'z3_symbol' , PRINT_MODE : 'int' , ERROR_CODE : 'int' , CHAR : 'char' }
93
+ BOOL : 'bool' , SYMBOL : 'z3_symbol' , PRINT_MODE : 'int' , ERROR_CODE : 'int' , CHAR : 'char' , CHAR_PTR : 'char*' }
93
94
94
95
next_type_id = FIRST_OBJ_ID
95
96
0 commit comments