added most parsing

This commit is contained in:
Booklordofthedings 2024-05-24 10:27:28 +02:00
parent 9186c0b444
commit cf1fc0e042
8 changed files with 1102 additions and 33 deletions

957
output Normal file
View file

@ -0,0 +1,957 @@
[CLink]
public static extern void __va_start( va_list* bf_arg0);
[CLink]
public static extern void __security_init_cookie();
[CLink]
public static extern void __security_check_cookie( c_uintptr _StackCookie);
[CLink]
public static extern void __report_gsfailure( c_uintptr _StackCookie);
[CLink]
public static extern c_char* sqlite3_libversion();
[CLink]
public static extern c_char* sqlite3_sourceid();
[CLink]
public static extern c_int sqlite3_libversion_number();
[CLink]
public static extern c_int sqlite3_compileoption_used( c_char* zOptName);
[CLink]
public static extern c_char* sqlite3_compileoption_get( c_int N);
[CLink]
public static extern c_int sqlite3_threadsafe();
[CLink]
public static extern c_int sqlite3_close( sqlite3* bf_arg0);
[CLink]
public static extern c_int sqlite3_close_v2( sqlite3* bf_arg0);
[CLink]
public static extern c_int sqlite3_exec( sqlite3* bf_arg0, c_char* sql, int(*)(void*,int,char**,char**) callback, void* bf_arg3, c_char** errmsg);
[CLink]
public static extern c_int sqlite3_initialize();
[CLink]
public static extern c_int sqlite3_shutdown();
[CLink]
public static extern c_int sqlite3_os_init();
[CLink]
public static extern c_int sqlite3_os_end();
[CLink]
public static extern c_int sqlite3_config( c_int bf_arg0);
[CLink]
public static extern c_int sqlite3_db_config( sqlite3* bf_arg0, c_int op);
[CLink]
public static extern c_int sqlite3_extended_result_codes( sqlite3* bf_arg0, c_int onoff);
[CLink]
public static extern sqlite3_int64 sqlite3_last_insert_rowid( sqlite3* bf_arg0);
[CLink]
public static extern void sqlite3_set_last_insert_rowid( sqlite3* bf_arg0, sqlite3_int64 bf_arg1);
[CLink]
public static extern c_int sqlite3_changes( sqlite3* bf_arg0);
[CLink]
public static extern sqlite3_int64 sqlite3_changes64( sqlite3* bf_arg0);
[CLink]
public static extern c_int sqlite3_total_changes( sqlite3* bf_arg0);
[CLink]
public static extern sqlite3_int64 sqlite3_total_changes64( sqlite3* bf_arg0);
[CLink]
public static extern void sqlite3_interrupt( sqlite3* bf_arg0);
[CLink]
public static extern c_int sqlite3_is_interrupted( sqlite3* bf_arg0);
[CLink]
public static extern c_int sqlite3_complete( c_char* sql);
[CLink]
public static extern c_int sqlite3_complete16( void* sql);
[CLink]
public static extern c_int sqlite3_busy_handler( sqlite3* bf_arg0, int(*)(void*,int) bf_arg1, void* bf_arg2);
[CLink]
public static extern c_int sqlite3_busy_timeout( sqlite3* bf_arg0, c_int ms);
[CLink]
public static extern c_int sqlite3_get_table( sqlite3* db, c_char* zSql, c_char*** pazResult, c_int* pnRow, c_int* pnColumn, c_char** pzErrmsg);
[CLink]
public static extern void sqlite3_free_table( c_char** result);
[CLink]
public static extern c_char* sqlite3_mprintf( c_char* bf_arg0);
[CLink]
public static extern c_char* sqlite3_vmprintf( c_char* bf_arg0, va_list bf_arg1);
[CLink]
public static extern c_char* sqlite3_snprintf( c_int bf_arg0, c_char* bf_arg1, c_char* bf_arg2);
[CLink]
public static extern c_char* sqlite3_vsnprintf( c_int bf_arg0, c_char* bf_arg1, c_char* bf_arg2, va_list bf_arg3);
[CLink]
public static extern void* sqlite3_malloc( c_int bf_arg0);
[CLink]
public static extern void* sqlite3_malloc64( sqlite3_uint64 bf_arg0);
[CLink]
public static extern void* sqlite3_realloc( void* bf_arg0, c_int bf_arg1);
[CLink]
public static extern void* sqlite3_realloc64( void* bf_arg0, sqlite3_uint64 bf_arg1);
[CLink]
public static extern void sqlite3_free( void* bf_arg0);
[CLink]
public static extern sqlite3_uint64 sqlite3_msize( void* bf_arg0);
[CLink]
public static extern sqlite3_int64 sqlite3_memory_used();
[CLink]
public static extern sqlite3_int64 sqlite3_memory_highwater( c_int resetFlag);
[CLink]
public static extern void sqlite3_randomness( c_int N, void* P);
[CLink]
public static extern c_int sqlite3_set_authorizer( sqlite3* bf_arg0, int(*)(void*,int,char*,char*,char*,char*) xAuth, void* pUserData);
[CLink]
public static extern void* sqlite3_trace( sqlite3* bf_arg0, void(*)(void*,char*) xTrace, void* bf_arg2);
[CLink]
public static extern void* sqlite3_profile( sqlite3* bf_arg0, void(*)(void*,char*,sqlite3_uint64) xProfile, void* bf_arg2);
[CLink]
public static extern c_int sqlite3_trace_v2( sqlite3* bf_arg0, c_uint uMask, int(*)(unsignedint,void*,void*,void*) xCallback, void* pCtx);
[CLink]
public static extern void sqlite3_progress_handler( sqlite3* bf_arg0, c_int bf_arg1, int(*)(void*) bf_arg2, void* bf_arg3);
[CLink]
public static extern c_int sqlite3_open( c_char* filename, sqlite3** ppDb);
[CLink]
public static extern c_int sqlite3_open16( void* filename, sqlite3** ppDb);
[CLink]
public static extern c_int sqlite3_open_v2( c_char* filename, sqlite3** ppDb, c_int flags, c_char* zVfs);
[CLink]
public static extern c_char* sqlite3_uri_parameter( sqlite3_filename z, c_char* zParam);
[CLink]
public static extern c_int sqlite3_uri_boolean( sqlite3_filename z, c_char* zParam, c_int bDefault);
[CLink]
public static extern sqlite3_int64 sqlite3_uri_int64( sqlite3_filename bf_arg0, c_char* bf_arg1, sqlite3_int64 bf_arg2);
[CLink]
public static extern c_char* sqlite3_uri_key( sqlite3_filename z, c_int N);
[CLink]
public static extern c_char* sqlite3_filename_database( sqlite3_filename bf_arg0);
[CLink]
public static extern c_char* sqlite3_filename_journal( sqlite3_filename bf_arg0);
[CLink]
public static extern c_char* sqlite3_filename_wal( sqlite3_filename bf_arg0);
[CLink]
public static extern sqlite3_file* sqlite3_database_file_object( c_char* bf_arg0);
[CLink]
public static extern sqlite3_filename sqlite3_create_filename( c_char* zDatabase, c_char* zJournal, c_char* zWal, c_int nParam, c_char** azParam);
[CLink]
public static extern void sqlite3_free_filename( sqlite3_filename bf_arg0);
[CLink]
public static extern c_int sqlite3_errcode( sqlite3* db);
[CLink]
public static extern c_int sqlite3_extended_errcode( sqlite3* db);
[CLink]
public static extern c_char* sqlite3_errmsg( sqlite3* bf_arg0);
[CLink]
public static extern void* sqlite3_errmsg16( sqlite3* bf_arg0);
[CLink]
public static extern c_char* sqlite3_errstr( c_int bf_arg0);
[CLink]
public static extern c_int sqlite3_error_offset( sqlite3* db);
[CLink]
public static extern c_int sqlite3_limit( sqlite3* bf_arg0, c_int id, c_int newVal);
[CLink]
public static extern c_int sqlite3_prepare( sqlite3* db, c_char* zSql, c_int nByte, sqlite3_stmt** ppStmt, c_char** pzTail);
[CLink]
public static extern c_int sqlite3_prepare_v2( sqlite3* db, c_char* zSql, c_int nByte, sqlite3_stmt** ppStmt, c_char** pzTail);
[CLink]
public static extern c_int sqlite3_prepare_v3( sqlite3* db, c_char* zSql, c_int nByte, c_uint prepFlags, sqlite3_stmt** ppStmt, c_char** pzTail);
[CLink]
public static extern c_int sqlite3_prepare16( sqlite3* db, void* zSql, c_int nByte, sqlite3_stmt** ppStmt, void** pzTail);
[CLink]
public static extern c_int sqlite3_prepare16_v2( sqlite3* db, void* zSql, c_int nByte, sqlite3_stmt** ppStmt, void** pzTail);
[CLink]
public static extern c_int sqlite3_prepare16_v3( sqlite3* db, void* zSql, c_int nByte, c_uint prepFlags, sqlite3_stmt** ppStmt, void** pzTail);
[CLink]
public static extern c_char* sqlite3_sql( sqlite3_stmt* pStmt);
[CLink]
public static extern c_char* sqlite3_expanded_sql( sqlite3_stmt* pStmt);
[CLink]
public static extern c_int sqlite3_stmt_readonly( sqlite3_stmt* pStmt);
[CLink]
public static extern c_int sqlite3_stmt_isexplain( sqlite3_stmt* pStmt);
[CLink]
public static extern c_int sqlite3_stmt_explain( sqlite3_stmt* pStmt, c_int eMode);
[CLink]
public static extern c_int sqlite3_stmt_busy( sqlite3_stmt* bf_arg0);
[CLink]
public static extern c_int sqlite3_bind_blob( sqlite3_stmt* bf_arg0, c_int bf_arg1, void* bf_arg2, c_int n, void(*)(void*) bf_arg4);
[CLink]
public static extern c_int sqlite3_bind_blob64( sqlite3_stmt* bf_arg0, c_int bf_arg1, void* bf_arg2, sqlite3_uint64 bf_arg3, void(*)(void*) bf_arg4);
[CLink]
public static extern c_int sqlite3_bind_double( sqlite3_stmt* bf_arg0, c_int bf_arg1, double bf_arg2);
[CLink]
public static extern c_int sqlite3_bind_int( sqlite3_stmt* bf_arg0, c_int bf_arg1, c_int bf_arg2);
[CLink]
public static extern c_int sqlite3_bind_int64( sqlite3_stmt* bf_arg0, c_int bf_arg1, sqlite3_int64 bf_arg2);
[CLink]
public static extern c_int sqlite3_bind_null( sqlite3_stmt* bf_arg0, c_int bf_arg1);
[CLink]
public static extern c_int sqlite3_bind_text( sqlite3_stmt* bf_arg0, c_int bf_arg1, c_char* bf_arg2, c_int bf_arg3, void(*)(void*) bf_arg4);
[CLink]
public static extern c_int sqlite3_bind_text16( sqlite3_stmt* bf_arg0, c_int bf_arg1, void* bf_arg2, c_int bf_arg3, void(*)(void*) bf_arg4);
[CLink]
public static extern c_int sqlite3_bind_text64( sqlite3_stmt* bf_arg0, c_int bf_arg1, c_char* bf_arg2, sqlite3_uint64 bf_arg3, void(*)(void*) bf_arg4, c_uchar encoding);
[CLink]
public static extern c_int sqlite3_bind_value( sqlite3_stmt* bf_arg0, c_int bf_arg1, sqlite3_value* bf_arg2);
[CLink]
public static extern c_int sqlite3_bind_pointer( sqlite3_stmt* bf_arg0, c_int bf_arg1, void* bf_arg2, c_char* bf_arg3, void(*)(void*) bf_arg4);
[CLink]
public static extern c_int sqlite3_bind_zeroblob( sqlite3_stmt* bf_arg0, c_int bf_arg1, c_int n);
[CLink]
public static extern c_int sqlite3_bind_zeroblob64( sqlite3_stmt* bf_arg0, c_int bf_arg1, sqlite3_uint64 bf_arg2);
[CLink]
public static extern c_int sqlite3_bind_parameter_count( sqlite3_stmt* bf_arg0);
[CLink]
public static extern c_char* sqlite3_bind_parameter_name( sqlite3_stmt* bf_arg0, c_int bf_arg1);
[CLink]
public static extern c_int sqlite3_bind_parameter_index( sqlite3_stmt* bf_arg0, c_char* zName);
[CLink]
public static extern c_int sqlite3_clear_bindings( sqlite3_stmt* bf_arg0);
[CLink]
public static extern c_int sqlite3_column_count( sqlite3_stmt* pStmt);
[CLink]
public static extern c_char* sqlite3_column_name( sqlite3_stmt* bf_arg0, c_int N);
[CLink]
public static extern void* sqlite3_column_name16( sqlite3_stmt* bf_arg0, c_int N);
[CLink]
public static extern c_char* sqlite3_column_database_name( sqlite3_stmt* bf_arg0, c_int bf_arg1);
[CLink]
public static extern void* sqlite3_column_database_name16( sqlite3_stmt* bf_arg0, c_int bf_arg1);
[CLink]
public static extern c_char* sqlite3_column_table_name( sqlite3_stmt* bf_arg0, c_int bf_arg1);
[CLink]
public static extern void* sqlite3_column_table_name16( sqlite3_stmt* bf_arg0, c_int bf_arg1);
[CLink]
public static extern c_char* sqlite3_column_origin_name( sqlite3_stmt* bf_arg0, c_int bf_arg1);
[CLink]
public static extern void* sqlite3_column_origin_name16( sqlite3_stmt* bf_arg0, c_int bf_arg1);
[CLink]
public static extern c_char* sqlite3_column_decltype( sqlite3_stmt* bf_arg0, c_int bf_arg1);
[CLink]
public static extern void* sqlite3_column_decltype16( sqlite3_stmt* bf_arg0, c_int bf_arg1);
[CLink]
public static extern c_int sqlite3_step( sqlite3_stmt* bf_arg0);
[CLink]
public static extern c_int sqlite3_data_count( sqlite3_stmt* pStmt);
[CLink]
public static extern void* sqlite3_column_blob( sqlite3_stmt* bf_arg0, c_int iCol);
[CLink]
public static extern double sqlite3_column_double( sqlite3_stmt* bf_arg0, c_int iCol);
[CLink]
public static extern c_int sqlite3_column_int( sqlite3_stmt* bf_arg0, c_int iCol);
[CLink]
public static extern sqlite3_int64 sqlite3_column_int64( sqlite3_stmt* bf_arg0, c_int iCol);
[CLink]
public static extern c_uchar* sqlite3_column_text( sqlite3_stmt* bf_arg0, c_int iCol);
[CLink]
public static extern void* sqlite3_column_text16( sqlite3_stmt* bf_arg0, c_int iCol);
[CLink]
public static extern sqlite3_value* sqlite3_column_value( sqlite3_stmt* bf_arg0, c_int iCol);
[CLink]
public static extern c_int sqlite3_column_bytes( sqlite3_stmt* bf_arg0, c_int iCol);
[CLink]
public static extern c_int sqlite3_column_bytes16( sqlite3_stmt* bf_arg0, c_int iCol);
[CLink]
public static extern c_int sqlite3_column_type( sqlite3_stmt* bf_arg0, c_int iCol);
[CLink]
public static extern c_int sqlite3_finalize( sqlite3_stmt* pStmt);
[CLink]
public static extern c_int sqlite3_reset( sqlite3_stmt* pStmt);
[CLink]
public static extern c_int sqlite3_create_function( sqlite3* db, c_char* zFunctionName, c_int nArg, c_int eTextRep, void* pApp, void(*)(sqlite3_context*,int,sqlite3_value**) xFunc, void(*)(sqlite3_context*,int,sqlite3_value**) xStep, void(*)(sqlite3_context*) xFinal);
[CLink]
public static extern c_int sqlite3_create_function16( sqlite3* db, void* zFunctionName, c_int nArg, c_int eTextRep, void* pApp, void(*)(sqlite3_context*,int,sqlite3_value**) xFunc, void(*)(sqlite3_context*,int,sqlite3_value**) xStep, void(*)(sqlite3_context*) xFinal);
[CLink]
public static extern c_int sqlite3_create_function_v2( sqlite3* db, c_char* zFunctionName, c_int nArg, c_int eTextRep, void* pApp, void(*)(sqlite3_context*,int,sqlite3_value**) xFunc, void(*)(sqlite3_context*,int,sqlite3_value**) xStep, void(*)(sqlite3_context*) xFinal, void(*)(void*) xDestroy);
[CLink]
public static extern c_int sqlite3_create_window_function( sqlite3* db, c_char* zFunctionName, c_int nArg, c_int eTextRep, void* pApp, void(*)(sqlite3_context*,int,sqlite3_value**) xStep, void(*)(sqlite3_context*) xFinal, void(*)(sqlite3_context*) xValue, void(*)(sqlite3_context*,int,sqlite3_value**) xInverse, void(*)(void*) xDestroy);
[CLink]
public static extern c_int sqlite3_aggregate_count( sqlite3_context* bf_arg0);
[CLink]
public static extern c_int sqlite3_expired( sqlite3_stmt* bf_arg0);
[CLink]
public static extern c_int sqlite3_transfer_bindings( sqlite3_stmt* bf_arg0, sqlite3_stmt* bf_arg1);
[CLink]
public static extern c_int sqlite3_global_recover();
[CLink]
public static extern void sqlite3_thread_cleanup();
[CLink]
public static extern c_int sqlite3_memory_alarm( void(*)(void*,sqlite3_int64,int) bf_arg0, void* bf_arg1, sqlite3_int64 bf_arg2);
[CLink]
public static extern void* sqlite3_value_blob( sqlite3_value* bf_arg0);
[CLink]
public static extern double sqlite3_value_double( sqlite3_value* bf_arg0);
[CLink]
public static extern c_int sqlite3_value_int( sqlite3_value* bf_arg0);
[CLink]
public static extern sqlite3_int64 sqlite3_value_int64( sqlite3_value* bf_arg0);
[CLink]
public static extern void* sqlite3_value_pointer( sqlite3_value* bf_arg0, c_char* bf_arg1);
[CLink]
public static extern c_uchar* sqlite3_value_text( sqlite3_value* bf_arg0);
[CLink]
public static extern void* sqlite3_value_text16( sqlite3_value* bf_arg0);
[CLink]
public static extern void* sqlite3_value_text16le( sqlite3_value* bf_arg0);
[CLink]
public static extern void* sqlite3_value_text16be( sqlite3_value* bf_arg0);
[CLink]
public static extern c_int sqlite3_value_bytes( sqlite3_value* bf_arg0);
[CLink]
public static extern c_int sqlite3_value_bytes16( sqlite3_value* bf_arg0);
[CLink]
public static extern c_int sqlite3_value_type( sqlite3_value* bf_arg0);
[CLink]
public static extern c_int sqlite3_value_numeric_type( sqlite3_value* bf_arg0);
[CLink]
public static extern c_int sqlite3_value_nochange( sqlite3_value* bf_arg0);
[CLink]
public static extern c_int sqlite3_value_frombind( sqlite3_value* bf_arg0);
[CLink]
public static extern c_int sqlite3_value_encoding( sqlite3_value* bf_arg0);
[CLink]
public static extern c_uint sqlite3_value_subtype( sqlite3_value* bf_arg0);
[CLink]
public static extern sqlite3_value* sqlite3_value_dup( sqlite3_value* bf_arg0);
[CLink]
public static extern void sqlite3_value_free( sqlite3_value* bf_arg0);
[CLink]
public static extern void* sqlite3_aggregate_context( sqlite3_context* bf_arg0, c_int nBytes);
[CLink]
public static extern void* sqlite3_user_data( sqlite3_context* bf_arg0);
[CLink]
public static extern sqlite3* sqlite3_context_db_handle( sqlite3_context* bf_arg0);
[CLink]
public static extern void* sqlite3_get_auxdata( sqlite3_context* bf_arg0, c_int N);
[CLink]
public static extern void sqlite3_set_auxdata( sqlite3_context* bf_arg0, c_int N, void* bf_arg2, void(*)(void*) bf_arg3);
[CLink]
public static extern void* sqlite3_get_clientdata( sqlite3* bf_arg0, c_char* bf_arg1);
[CLink]
public static extern c_int sqlite3_set_clientdata( sqlite3* bf_arg0, c_char* bf_arg1, void* bf_arg2, void(*)(void*) bf_arg3);
[CLink]
public static extern void sqlite3_result_blob( sqlite3_context* bf_arg0, void* bf_arg1, c_int bf_arg2, void(*)(void*) bf_arg3);
[CLink]
public static extern void sqlite3_result_blob64( sqlite3_context* bf_arg0, void* bf_arg1, sqlite3_uint64 bf_arg2, void(*)(void*) bf_arg3);
[CLink]
public static extern void sqlite3_result_double( sqlite3_context* bf_arg0, double bf_arg1);
[CLink]
public static extern void sqlite3_result_error( sqlite3_context* bf_arg0, c_char* bf_arg1, c_int bf_arg2);
[CLink]
public static extern void sqlite3_result_error16( sqlite3_context* bf_arg0, void* bf_arg1, c_int bf_arg2);
[CLink]
public static extern void sqlite3_result_error_toobig( sqlite3_context* bf_arg0);
[CLink]
public static extern void sqlite3_result_error_nomem( sqlite3_context* bf_arg0);
[CLink]
public static extern void sqlite3_result_error_code( sqlite3_context* bf_arg0, c_int bf_arg1);
[CLink]
public static extern void sqlite3_result_int( sqlite3_context* bf_arg0, c_int bf_arg1);
[CLink]
public static extern void sqlite3_result_int64( sqlite3_context* bf_arg0, sqlite3_int64 bf_arg1);
[CLink]
public static extern void sqlite3_result_null( sqlite3_context* bf_arg0);
[CLink]
public static extern void sqlite3_result_text( sqlite3_context* bf_arg0, c_char* bf_arg1, c_int bf_arg2, void(*)(void*) bf_arg3);
[CLink]
public static extern void sqlite3_result_text64( sqlite3_context* bf_arg0, c_char* bf_arg1, sqlite3_uint64 bf_arg2, void(*)(void*) bf_arg3, c_uchar encoding);
[CLink]
public static extern void sqlite3_result_text16( sqlite3_context* bf_arg0, void* bf_arg1, c_int bf_arg2, void(*)(void*) bf_arg3);
[CLink]
public static extern void sqlite3_result_text16le( sqlite3_context* bf_arg0, void* bf_arg1, c_int bf_arg2, void(*)(void*) bf_arg3);
[CLink]
public static extern void sqlite3_result_text16be( sqlite3_context* bf_arg0, void* bf_arg1, c_int bf_arg2, void(*)(void*) bf_arg3);
[CLink]
public static extern void sqlite3_result_value( sqlite3_context* bf_arg0, sqlite3_value* bf_arg1);
[CLink]
public static extern void sqlite3_result_pointer( sqlite3_context* bf_arg0, void* bf_arg1, c_char* bf_arg2, void(*)(void*) bf_arg3);
[CLink]
public static extern void sqlite3_result_zeroblob( sqlite3_context* bf_arg0, c_int n);
[CLink]
public static extern c_int sqlite3_result_zeroblob64( sqlite3_context* bf_arg0, sqlite3_uint64 n);
[CLink]
public static extern void sqlite3_result_subtype( sqlite3_context* bf_arg0, c_uint bf_arg1);
[CLink]
public static extern c_int sqlite3_create_collation( sqlite3* bf_arg0, c_char* zName, c_int eTextRep, void* pArg, int(*)(void*,int,void*,int,void*) xCompare);
[CLink]
public static extern c_int sqlite3_create_collation_v2( sqlite3* bf_arg0, c_char* zName, c_int eTextRep, void* pArg, int(*)(void*,int,void*,int,void*) xCompare, void(*)(void*) xDestroy);
[CLink]
public static extern c_int sqlite3_create_collation16( sqlite3* bf_arg0, void* zName, c_int eTextRep, void* pArg, int(*)(void*,int,void*,int,void*) xCompare);
[CLink]
public static extern c_int sqlite3_collation_needed( sqlite3* bf_arg0, void* bf_arg1, void(*)(void*,sqlite3*,int,char*) bf_arg2);
[CLink]
public static extern c_int sqlite3_collation_needed16( sqlite3* bf_arg0, void* bf_arg1, void(*)(void*,sqlite3*,int,void*) bf_arg2);
[CLink]
public static extern c_int sqlite3_sleep( c_int bf_arg0);
[CLink]
public static extern c_int sqlite3_win32_set_directory( c_ulong type, void* zValue);
[CLink]
public static extern c_int sqlite3_win32_set_directory8( c_ulong type, c_char* zValue);
[CLink]
public static extern c_int sqlite3_win32_set_directory16( c_ulong type, void* zValue);
[CLink]
public static extern c_int sqlite3_get_autocommit( sqlite3* bf_arg0);
[CLink]
public static extern sqlite3* sqlite3_db_handle( sqlite3_stmt* bf_arg0);
[CLink]
public static extern c_char* sqlite3_db_name( sqlite3* db, c_int N);
[CLink]
public static extern sqlite3_filename sqlite3_db_filename( sqlite3* db, c_char* zDbName);
[CLink]
public static extern c_int sqlite3_db_readonly( sqlite3* db, c_char* zDbName);
[CLink]
public static extern c_int sqlite3_txn_state( sqlite3* bf_arg0, c_char* zSchema);
[CLink]
public static extern sqlite3_stmt* sqlite3_next_stmt( sqlite3* pDb, sqlite3_stmt* pStmt);
[CLink]
public static extern void* sqlite3_commit_hook( sqlite3* bf_arg0, int(*)(void*) bf_arg1, void* bf_arg2);
[CLink]
public static extern void* sqlite3_rollback_hook( sqlite3* bf_arg0, void(*)(void*) bf_arg1, void* bf_arg2);
[CLink]
public static extern c_int sqlite3_autovacuum_pages( sqlite3* db, unsignedint(*)(void*,char*,unsignedint,unsignedint,unsignedint) bf_arg1, void* bf_arg2, void(*)(void*) bf_arg3);
[CLink]
public static extern void* sqlite3_update_hook( sqlite3* bf_arg0, void(*)(void*,int,char*,char*,sqlite3_int64) bf_arg1, void* bf_arg2);
[CLink]
public static extern c_int sqlite3_enable_shared_cache( c_int bf_arg0);
[CLink]
public static extern c_int sqlite3_release_memory( c_int bf_arg0);
[CLink]
public static extern c_int sqlite3_db_release_memory( sqlite3* bf_arg0);
[CLink]
public static extern sqlite3_int64 sqlite3_soft_heap_limit64( sqlite3_int64 N);
[CLink]
public static extern sqlite3_int64 sqlite3_hard_heap_limit64( sqlite3_int64 N);
[CLink]
public static extern void sqlite3_soft_heap_limit( c_int N);
[CLink]
public static extern c_int sqlite3_table_column_metadata( sqlite3* db, c_char* zDbName, c_char* zTableName, c_char* zColumnName, c_char** pzDataType, c_char** pzCollSeq, c_int* pNotNull, c_int* pPrimaryKey, c_int* pAutoinc);
[CLink]
public static extern c_int sqlite3_load_extension( sqlite3* db, c_char* zFile, c_char* zProc, c_char** pzErrMsg);
[CLink]
public static extern c_int sqlite3_enable_load_extension( sqlite3* db, c_int onoff);
[CLink]
public static extern c_int sqlite3_auto_extension( void(*)(void) xEntryPoint);
[CLink]
public static extern c_int sqlite3_cancel_auto_extension( void(*)(void) xEntryPoint);
[CLink]
public static extern void sqlite3_reset_auto_extension();
[CLink]
public static extern c_int sqlite3_create_module( sqlite3* db, c_char* zName, sqlite3_module* p, void* pClientData);
[CLink]
public static extern c_int sqlite3_create_module_v2( sqlite3* db, c_char* zName, sqlite3_module* p, void* pClientData, void(*)(void*) xDestroy);
[CLink]
public static extern c_int sqlite3_drop_modules( sqlite3* db, c_char** azKeep);
[CLink]
public static extern c_int sqlite3_declare_vtab( sqlite3* bf_arg0, c_char* zSQL);
[CLink]
public static extern c_int sqlite3_overload_function( sqlite3* bf_arg0, c_char* zFuncName, c_int nArg);
[CLink]
public static extern c_int sqlite3_blob_open( sqlite3* bf_arg0, c_char* zDb, c_char* zTable, c_char* zColumn, sqlite3_int64 iRow, c_int flags, sqlite3_blob** ppBlob);
[CLink]
public static extern c_int sqlite3_blob_reopen( sqlite3_blob* bf_arg0, sqlite3_int64 bf_arg1);
[CLink]
public static extern c_int sqlite3_blob_close( sqlite3_blob* bf_arg0);
[CLink]
public static extern c_int sqlite3_blob_bytes( sqlite3_blob* bf_arg0);
[CLink]
public static extern c_int sqlite3_blob_read( sqlite3_blob* bf_arg0, void* Z, c_int N, c_int iOffset);
[CLink]
public static extern c_int sqlite3_blob_write( sqlite3_blob* bf_arg0, void* z, c_int n, c_int iOffset);
[CLink]
public static extern sqlite3_vfs* sqlite3_vfs_find( c_char* zVfsName);
[CLink]
public static extern c_int sqlite3_vfs_register( sqlite3_vfs* bf_arg0, c_int makeDflt);
[CLink]
public static extern c_int sqlite3_vfs_unregister( sqlite3_vfs* bf_arg0);
[CLink]
public static extern sqlite3_mutex* sqlite3_mutex_alloc( c_int bf_arg0);
[CLink]
public static extern void sqlite3_mutex_free( sqlite3_mutex* bf_arg0);
[CLink]
public static extern void sqlite3_mutex_enter( sqlite3_mutex* bf_arg0);
[CLink]
public static extern c_int sqlite3_mutex_try( sqlite3_mutex* bf_arg0);
[CLink]
public static extern void sqlite3_mutex_leave( sqlite3_mutex* bf_arg0);
[CLink]
public static extern c_int sqlite3_mutex_held( sqlite3_mutex* bf_arg0);
[CLink]
public static extern c_int sqlite3_mutex_notheld( sqlite3_mutex* bf_arg0);
[CLink]
public static extern sqlite3_mutex* sqlite3_db_mutex( sqlite3* bf_arg0);
[CLink]
public static extern c_int sqlite3_file_control( sqlite3* bf_arg0, c_char* zDbName, c_int op, void* bf_arg3);
[CLink]
public static extern c_int sqlite3_test_control( c_int op);
[CLink]
public static extern c_int sqlite3_keyword_count();
[CLink]
public static extern c_int sqlite3_keyword_name( c_int bf_arg0, c_char** bf_arg1, c_int* bf_arg2);
[CLink]
public static extern c_int sqlite3_keyword_check( c_char* bf_arg0, c_int bf_arg1);
[CLink]
public static extern sqlite3_str* sqlite3_str_new( sqlite3* bf_arg0);
[CLink]
public static extern c_char* sqlite3_str_finish( sqlite3_str* bf_arg0);
[CLink]
public static extern void sqlite3_str_appendf( sqlite3_str* bf_arg0, c_char* zFormat);
[CLink]
public static extern void sqlite3_str_vappendf( sqlite3_str* bf_arg0, c_char* zFormat, va_list bf_arg2);
[CLink]
public static extern void sqlite3_str_append( sqlite3_str* bf_arg0, c_char* zIn, c_int N);
[CLink]
public static extern void sqlite3_str_appendall( sqlite3_str* bf_arg0, c_char* zIn);
[CLink]
public static extern void sqlite3_str_appendchar( sqlite3_str* bf_arg0, c_int N, c_char C);
[CLink]
public static extern void sqlite3_str_reset( sqlite3_str* bf_arg0);
[CLink]
public static extern c_int sqlite3_str_errcode( sqlite3_str* bf_arg0);
[CLink]
public static extern c_int sqlite3_str_length( sqlite3_str* bf_arg0);
[CLink]
public static extern c_char* sqlite3_str_value( sqlite3_str* bf_arg0);
[CLink]
public static extern c_int sqlite3_status( c_int op, c_int* pCurrent, c_int* pHighwater, c_int resetFlag);
[CLink]
public static extern c_int sqlite3_status64( c_int op, sqlite3_int64* pCurrent, sqlite3_int64* pHighwater, c_int resetFlag);
[CLink]
public static extern c_int sqlite3_db_status( sqlite3* bf_arg0, c_int op, c_int* pCur, c_int* pHiwtr, c_int resetFlg);
[CLink]
public static extern c_int sqlite3_stmt_status( sqlite3_stmt* bf_arg0, c_int op, c_int resetFlg);
[CLink]
public static extern sqlite3_backup* sqlite3_backup_init( sqlite3* pDest, c_char* zDestName, sqlite3* pSource, c_char* zSourceName);
[CLink]
public static extern c_int sqlite3_backup_step( sqlite3_backup* p, c_int nPage);
[CLink]
public static extern c_int sqlite3_backup_finish( sqlite3_backup* p);
[CLink]
public static extern c_int sqlite3_backup_remaining( sqlite3_backup* p);
[CLink]
public static extern c_int sqlite3_backup_pagecount( sqlite3_backup* p);
[CLink]
public static extern c_int sqlite3_unlock_notify( sqlite3* pBlocked, void(*)(void**,int) xNotify, void* pNotifyArg);
[CLink]
public static extern c_int sqlite3_stricmp( c_char* bf_arg0, c_char* bf_arg1);
[CLink]
public static extern c_int sqlite3_strnicmp( c_char* bf_arg0, c_char* bf_arg1, c_int bf_arg2);
[CLink]
public static extern c_int sqlite3_strglob( c_char* zGlob, c_char* zStr);
[CLink]
public static extern c_int sqlite3_strlike( c_char* zGlob, c_char* zStr, c_uint cEsc);
[CLink]
public static extern void sqlite3_log( c_int iErrCode, c_char* zFormat);
[CLink]
public static extern void* sqlite3_wal_hook( sqlite3* bf_arg0, int(*)(void*,sqlite3*,char*,int) bf_arg1, void* bf_arg2);
[CLink]
public static extern c_int sqlite3_wal_autocheckpoint( sqlite3* db, c_int N);
[CLink]
public static extern c_int sqlite3_wal_checkpoint( sqlite3* db, c_char* zDb);
[CLink]
public static extern c_int sqlite3_wal_checkpoint_v2( sqlite3* db, c_char* zDb, c_int eMode, c_int* pnLog, c_int* pnCkpt);
[CLink]
public static extern c_int sqlite3_vtab_config( sqlite3* bf_arg0, c_int op);
[CLink]
public static extern c_int sqlite3_vtab_on_conflict( sqlite3* bf_arg0);
[CLink]
public static extern c_int sqlite3_vtab_nochange( sqlite3_context* bf_arg0);
[CLink]
public static extern c_char* sqlite3_vtab_collation( sqlite3_index_info* bf_arg0, c_int bf_arg1);
[CLink]
public static extern c_int sqlite3_vtab_distinct( sqlite3_index_info* bf_arg0);
[CLink]
public static extern c_int sqlite3_vtab_in( sqlite3_index_info* bf_arg0, c_int iCons, c_int bHandle);
[CLink]
public static extern c_int sqlite3_vtab_in_first( sqlite3_value* pVal, sqlite3_value** ppOut);
[CLink]
public static extern c_int sqlite3_vtab_in_next( sqlite3_value* pVal, sqlite3_value** ppOut);
[CLink]
public static extern c_int sqlite3_vtab_rhs_value( sqlite3_index_info* bf_arg0, c_int bf_arg1, sqlite3_value** ppVal);
[CLink]
public static extern c_int sqlite3_stmt_scanstatus( sqlite3_stmt* pStmt, c_int idx, c_int iScanStatusOp, void* pOut);
[CLink]
public static extern c_int sqlite3_stmt_scanstatus_v2( sqlite3_stmt* pStmt, c_int idx, c_int iScanStatusOp, c_int flags, void* pOut);
[CLink]
public static extern void sqlite3_stmt_scanstatus_reset( sqlite3_stmt* bf_arg0);
[CLink]
public static extern c_int sqlite3_db_cacheflush( sqlite3* bf_arg0);
[CLink]
public static extern c_int sqlite3_system_errno( sqlite3* bf_arg0);
[CLink]
public static extern c_int sqlite3_snapshot_get( sqlite3* db, c_char* zSchema, sqlite3_snapshot** ppSnapshot);
[CLink]
public static extern c_int sqlite3_snapshot_open( sqlite3* db, c_char* zSchema, sqlite3_snapshot* pSnapshot);
[CLink]
public static extern void sqlite3_snapshot_free( sqlite3_snapshot* bf_arg0);
[CLink]
public static extern c_int sqlite3_snapshot_cmp( sqlite3_snapshot* p1, sqlite3_snapshot* p2);
[CLink]
public static extern c_int sqlite3_snapshot_recover( sqlite3* db, c_char* zDb);
[CLink]
public static extern c_uchar* sqlite3_serialize( sqlite3* db, c_char* zSchema, sqlite3_int64* piSize, c_uint mFlags);
[CLink]
public static extern c_int sqlite3_deserialize( sqlite3* db, c_char* zSchema, c_uchar* pData, sqlite3_int64 szDb, sqlite3_int64 szBuf, c_uint mFlags);
[CLink]
public static extern c_int sqlite3_rtree_geometry_callback( sqlite3* db, c_char* zGeom, int(*)(sqlite3_rtree_geometry*,int,sqlite3_rtree_dbl*,int*) xGeom, void* pContext);
[CLink]
public static extern c_int sqlite3_rtree_query_callback( sqlite3* db, c_char* zQueryFunc, int(*)(sqlite3_rtree_query_info*) xQueryFunc, void* pContext, void(*)(void*) xDestructor);
[CRepr]
public struct sqlite3
{
}
[CRepr]
public struct sqlite3_file
{
}
[CRepr]
public struct sqlite3_file
{
}
[CRepr]
public struct sqlite3_io_methods
{
public structsqlite3_io_methods* pMethods;
}
[CRepr]
public struct sqlite3_io_methods
{
}
[CRepr]
public struct sqlite3_mutex
{
}
[CRepr]
public struct sqlite3_api_routines
{
}
[CRepr]
public struct sqlite3_vfs
{
}
[CRepr]
public struct sqlite3_vfs
{
}
[CRepr]
public struct sqlite3_mem_methods
{
}
[CRepr]
public struct sqlite3_mem_methods
{
public void*(*)(int) xMalloc;
public void(*)(void*) xFree;
public void*(*)(void*,int) xRealloc;
public int(*)(void*) xSize;
public int(*)(int) xRoundup;
public int(*)(void*) xInit;
public void(*)(void*) xShutdown;
public void* pAppData;
}
[CRepr]
public struct sqlite3_stmt
{
}
[CRepr]
public struct sqlite3_value
{
}
[CRepr]
public struct sqlite3_context
{
}
[CRepr]
public struct sqlite3_vtab
{
}
[CRepr]
public struct sqlite3_index_info
{
}
[CRepr]
public struct sqlite3_vtab_cursor
{
}
[CRepr]
public struct sqlite3_module
{
}
[CRepr]
public struct sqlite3_module
{
public c_int iVersion;
public int(*)(sqlite3*,void*,int,char**,sqlite3_vtab**,char**) xCreate;
public int(*)(sqlite3*,void*,int,char**,sqlite3_vtab**,char**) xConnect;
public int(*)(sqlite3_vtab*,sqlite3_index_info*) xBestIndex;
public int(*)(sqlite3_vtab*) xDisconnect;
public int(*)(sqlite3_vtab*) xDestroy;
public int(*)(sqlite3_vtab*,sqlite3_vtab_cursor**) xOpen;
public int(*)(sqlite3_vtab_cursor*) xClose;
public int(*)(sqlite3_vtab_cursor*,int,char*,int,sqlite3_value**) xFilter;
public int(*)(sqlite3_vtab_cursor*) xNext;
public int(*)(sqlite3_vtab_cursor*) xEof;
public int(*)(sqlite3_vtab_cursor*,sqlite3_context*,int) xColumn;
public int(*)(sqlite3_vtab_cursor*,sqlite3_int64*) xRowid;
public int(*)(sqlite3_vtab*,int,sqlite3_value**,sqlite3_int64*) xUpdate;
public int(*)(sqlite3_vtab*) xBegin;
public int(*)(sqlite3_vtab*) xSync;
public int(*)(sqlite3_vtab*) xCommit;
public int(*)(sqlite3_vtab*) xRollback;
public int(*)(sqlite3_vtab*,int,char*,void(**)(sqlite3_context*,int,sqlite3_value**),void**) xFindFunction;
public int(*)(sqlite3_vtab*,char*) xRename;
public int(*)(sqlite3_vtab*,int) xSavepoint;
public int(*)(sqlite3_vtab*,int) xRelease;
public int(*)(sqlite3_vtab*,int) xRollbackTo;
public int(*)(char*) xShadowName;
public int(*)(sqlite3_vtab*,char*,char*,int,char**) xIntegrity;
}
[CRepr]
public struct sqlite3_index_info
{
public c_int nConstraint;
}
[CRepr]
public struct sqlite3_index_constraint
{
public c_int iColumn;
public c_uchar op;
public c_uchar usable;
public c_int iTermOffset;
public structsqlite3_index_raint* aConstraint;
public c_int nOrderBy;
}
[CRepr]
public struct sqlite3_index_orderby
{
public c_int iColumn;
public c_uchar desc;
public structsqlite3_index_orderby* aOrderBy;
}
[CRepr]
public struct sqlite3_index_orderby
{
public c_int iColumn;
public c_uchar desc;
}
[CRepr]
public struct sqlite3_index_constraint_usage
{
public c_int argvIndex;
public c_uchar omit;
public structsqlite3_index_raint_usage* aConstraintUsage;
}
[CRepr]
public struct sqlite3_index_constraint_usage
{
public c_int argvIndex;
public c_uchar omit;
public c_int idxNum;
public c_char* idxStr;
public c_int needToFreeIdxStr;
public c_int orderByConsumed;
public double estimatedCost;
public sqlite3_int64 estimatedRows;
public c_int idxFlags;
public sqlite3_uint64 colUsed;
}
[CRepr]
public struct sqlite3_vtab
{
public sqlite3_module* pModule;
public c_int nRef;
public c_char* zErrMsg;
}
[CRepr]
public struct sqlite3_vtab_cursor
{
public sqlite3_vtab* pVtab;
}
[CRepr]
public struct sqlite3_blob
{
}
[CRepr]
public struct sqlite3_mutex_methods
{
}
[CRepr]
public struct sqlite3_mutex_methods
{
public int(*)(void) xMutexInit;
public int(*)(void) xMutexEnd;
public sqlite3_mutex*(*)(int) xMutexAlloc;
public void(*)(sqlite3_mutex*) xMutexFree;
public void(*)(sqlite3_mutex*) xMutexEnter;
public int(*)(sqlite3_mutex*) xMutexTry;
public void(*)(sqlite3_mutex*) xMutexLeave;
public int(*)(sqlite3_mutex*) xMutexHeld;
public int(*)(sqlite3_mutex*) xMutexNotheld;
}
[CRepr]
public struct sqlite3_str
{
}
[CRepr]
public struct sqlite3_pcache
{
}
[CRepr]
public struct sqlite3_pcache_page
{
}
[CRepr]
public struct sqlite3_pcache_page
{
public void* pBuf;
public void* pExtra;
}
[CRepr]
public struct sqlite3_pcache_methods2
{
}
[CRepr]
public struct sqlite3_pcache_methods2
{
public c_int iVersion;
public void* pArg;
public int(*)(void*) xInit;
public void(*)(void*) xShutdown;
public sqlite3_pcache*(*)(int,int,int) xCreate;
public void(*)(sqlite3_pcache*,int) xCachesize;
public int(*)(sqlite3_pcache*) xPagecount;
public sqlite3_pcache_page*(*)(sqlite3_pcache*,unsignedint,int) xFetch;
public void(*)(sqlite3_pcache*,sqlite3_pcache_page*,int) xUnpin;
public void(*)(sqlite3_pcache*,sqlite3_pcache_page*,unsignedint,unsignedint) xRekey;
public void(*)(sqlite3_pcache*,unsignedint) xTruncate;
public void(*)(sqlite3_pcache*) xDestroy;
public void(*)(sqlite3_pcache*) xShrink;
}
[CRepr]
public struct sqlite3_pcache_methods
{
}
[CRepr]
public struct sqlite3_pcache_methods
{
public void* pArg;
public int(*)(void*) xInit;
public void(*)(void*) xShutdown;
public sqlite3_pcache*(*)(int,int) xCreate;
public void(*)(sqlite3_pcache*,int) xCachesize;
public int(*)(sqlite3_pcache*) xPagecount;
public void*(*)(sqlite3_pcache*,unsignedint,int) xFetch;
public void(*)(sqlite3_pcache*,void*,int) xUnpin;
public void(*)(sqlite3_pcache*,void*,unsignedint,unsignedint) xRekey;
public void(*)(sqlite3_pcache*,unsignedint) xTruncate;
public void(*)(sqlite3_pcache*) xDestroy;
}
[CRepr]
public struct sqlite3_backup
{
}
[CRepr]
public struct sqlite3_snapshot
{
public unsignedchar[48] hidden;
}
[CRepr]
public struct sqlite3_rtree_geometry
{
}
[CRepr]
public struct sqlite3_rtree_query_info
{
}
[CRepr]
public struct sqlite3_rtree_geometry
{
public void* pContext;
public c_int nParam;
public sqlite3_rtree_dbl* aParam;
public void* pUser;
public void(*)(void*) xDelUser;
}
[CRepr]
public struct sqlite3_rtree_query_info
{
public void* pContext;
public c_int nParam;
public sqlite3_rtree_dbl* aParam;
public void* pUser;
public void(*)(void*) xDelUser;
public sqlite3_rtree_dbl* aCoord;
public c_uint* anQueue;
public c_int nCoord;
public c_int iLevel;
public c_int mxLevel;
public sqlite3_int64 iRowid;
public sqlite3_rtree_dbl rParentScore;
public c_int eParentWithin;
public c_int eWithin;
public sqlite3_rtree_dbl rScore;
public sqlite3_value** apSqlParam;
}
[CRepr]
public struct Fts5ExtensionApi
{
}
[CRepr]
public struct Fts5Context
{
}
[CRepr]
public struct Fts5PhraseIter
{
}
[CRepr]
public struct Fts5PhraseIter
{
public c_uchar* a;
public c_uchar* b;
}
[CRepr]
public struct Fts5ExtensionApi
{
public c_int iVersion;
public void*(*)(Fts5Context*) xUserData;
public int(*)(Fts5Context*) xColumnCount;
public int(*)(Fts5Context*,sqlite3_int64*) xRowCount;
public int(*)(Fts5Context*,int,sqlite3_int64*) xColumnTotalSize;
public int(*)(Fts5Context*,char*,int,void*,int(*)(void*,int,char*,int,int,int)) xTokenize;
public int(*)(Fts5Context*) xPhraseCount;
public int(*)(Fts5Context*,int) xPhraseSize;
public int(*)(Fts5Context*,int*) xInstCount;
public int(*)(Fts5Context*,int,int*,int*,int*) xInst;
public sqlite3_int64(*)(Fts5Context*) xRowid;
public int(*)(Fts5Context*,int,char**,int*) xColumnText;
public int(*)(Fts5Context*,int,int*) xColumnSize;
public int(*)(Fts5Context*,int,void*,int(*)(Fts5ExtensionApi*,Fts5Context*,void*)) xQueryPhrase;
public int(*)(Fts5Context*,void*,void(*)(void*)) xSetAuxdata;
public void*(*)(Fts5Context*,int) xGetAuxdata;
public int(*)(Fts5Context*,int,Fts5PhraseIter*,int*,int*) xPhraseFirst;
public void(*)(Fts5Context*,Fts5PhraseIter*,int*,int*) xPhraseNext;
public int(*)(Fts5Context*,int,Fts5PhraseIter*,int*) xPhraseFirstColumn;
public void(*)(Fts5Context*,Fts5PhraseIter*,int*) xPhraseNextColumn;
public int(*)(Fts5Context*,int,int,char**,int*) xQueryToken;
public int(*)(Fts5Context*,int,int,char**,int*) xInstToken;
}
[CRepr]
public struct Fts5Tokenizer
{
}
[CRepr]
public struct fts5_tokenizer
{
}
[CRepr]
public struct fts5_tokenizer
{
public int(*)(void*,char**,int,Fts5Tokenizer**) xCreate;
public void(*)(Fts5Tokenizer*) xDelete;
public int(*)(Fts5Tokenizer*,void*,int,char*,int,int(*)(void*,int,char*,int,int,int)) xTokenize;
}
[CRepr]
public struct fts5_api
{
}
[CRepr]
public struct fts5_api
{
public c_int iVersion;
public int(*)(fts5_api*,char*,void*,fts5_tokenizer*,void(*)(void*)) xCreateTokenizer;
public int(*)(fts5_api*,char*,void**,fts5_tokenizer*) xFindTokenizer;
public int(*)(fts5_api*,char*,void*,fts5_extension_function,void(*)(void*)) xCreateFunction;
}

View file

@ -9,9 +9,20 @@ class Binding
public static List<BindingFunction> Function = new .() ~ DeleteContainerAndItems!(_); public static List<BindingFunction> Function = new .() ~ DeleteContainerAndItems!(_);
public static List<BindingEnum> Enums = new .() ~ DeleteContainerAndItems!(_); public static List<BindingEnum> Enums = new .() ~ DeleteContainerAndItems!(_);
public static List<BindingStruct> Structs = new .() ~ DeleteContainerAndItems!(_); public static List<BindingStruct> Structs = new .() ~ DeleteContainerAndItems!(_);
public static BindingOptions Options; public static BindingOptions Options = new .() ~ delete _;
public static Dictionary<CXCursorKind, function void(CXCursor)> CursorHandlers = new .() {
(.CXCursor_FunctionDecl, => HandleFunctionDecl),
(.CXCursor_StructDecl, => HandleStructDecl),
(.CXCursor_FieldDecl, => HandleFieldDecl),
(.CXCursor_EnumDecl, => HandleEnumDecl),
(.CXCursor_EnumConstantDecl, => HandleEnumConstDecl),
(.CXCursor_ParmDecl, => DoNothing),
public static void Bind(ref String[] pArgs, BindingOptions pOptions)
} ~ delete _;
public static void Bind(ref String[] pArgs)
{ {
CXIndex index = clang_createIndex(0, 0); CXIndex index = clang_createIndex(0, 0);
CXTranslationUnit* unit; CXTranslationUnit* unit;
@ -28,33 +39,11 @@ class Binding
clang_visitChildren( clang_visitChildren(
cursor, cursor,
(cursor, parent, client_data) => { (cursor, parent, client_data) => {
if(clang_getCursorKind(cursor) == .CXCursor_FunctionDecl)
{
var name = clang_getCursorSpelling(cursor);
BindingFunction func = new .(name.text, clang_getCursorResultType(cursor));
var count = clang_Cursor_getNumArguments(cursor); if(CursorHandlers.ContainsKey(clang_getCursorKind(cursor)))
for(int i < count) CursorHandlers[clang_getCursorKind(cursor)](cursor);
{ else
var arg = clang_Cursor_getArgument(cursor, (.)i); Console.WriteLine(scope $"{clang_getCursorKind(cursor)} {clang_getCursorSpelling(cursor).text}");
var argType = clang_getCursorType(arg);
var argName = clang_getCursorSpelling(arg);
func.Args.Add(new .(argName.text, argType));
}
Function.Add(func);
}
else if(clang_getCursorKind(cursor) == .CXCursor_StructDecl)
{
var name = clang_getCursorSpelling(cursor);
BindingStruct strct = new .(name.text);
Structs.Add(strct);
}
else if(clang_getCursorKind(cursor) == .CXCursor_FieldDecl)
{
if(Structs.Count > 0)
Structs[Structs.Count-1].Fields.Add(new .(clang_getCursorSpelling(cursor).text, clang_getCursorType(cursor)));
}
return CXChildVisitResult.CXChildVisit_Recurse; return CXChildVisitResult.CXChildVisit_Recurse;
@ -65,13 +54,64 @@ class Binding
clang_disposeIndex(index); clang_disposeIndex(index);
} }
public static void HandleFunctionDecl(CXCursor cursor)
{
var name = clang_getCursorSpelling(cursor);
BindingFunction func = new .(name.text, clang_getCursorResultType(cursor));
var count = clang_Cursor_getNumArguments(cursor);
for(int i < count)
{
var arg = clang_Cursor_getArgument(cursor, (.)i);
var argType = clang_getCursorType(arg);
var argName = clang_getCursorSpelling(arg);
func.Args.Add(new .(argName.text, argType));
}
Function.Add(func);
}
public static void HandleStructDecl(CXCursor cursor)
{
var name = clang_getCursorSpelling(cursor);
BindingStruct strct = new .(name.text);
Structs.Add(strct);
}
public static void HandleFieldDecl(CXCursor cursor)
{
if(Structs.Count > 0)
Structs[Structs.Count-1].Fields.Add(new .(clang_getCursorSpelling(cursor).text, clang_getCursorType(cursor)));
}
public static void HandleEnumDecl(CXCursor cursor)
{
var name = clang_getCursorSpelling(cursor);
BindingEnum enm = new .(name.text);
Enums.Add(enm);
}
public static void HandleEnumConstDecl(CXCursor cursor)
{
if(Enums.Count > 0)
{
Enums[Enums.Count-1].Entries.Add(new .(clang_getCursorSpelling(cursor).text, (.)clang_getEnumConstantDeclValue(cursor)));
}
}
private static void DoNothing(CXCursor cursor) {}
///Generate the actual file strings and try to write them according to the input parameter and the options ///Generate the actual file strings and try to write them according to the input parameter and the options
public static Result<void> Generate(StringView pOutputDir = "") public static Result<void> Generate(StringView pOutputDir = "")
{ {
if(pOutputDir == "") if(pOutputDir == "")
return .Err; return .Err;
String toWrite = new .(); String toWrite = new .(scope $"""
namespace {Binding.Options.Namespace};
static
\{\n
""");
defer delete toWrite; defer delete toWrite;
for(var i in Function) for(var i in Function)
@ -80,6 +120,7 @@ class Binding
i.ToBeef(toWrite); i.ToBeef(toWrite);
for(var i in Enums) for(var i in Enums)
i.ToBeef(toWrite); i.ToBeef(toWrite);
toWrite.Append("\n}");
return System.IO.File.WriteAllText(pOutputDir, toWrite); return System.IO.File.WriteAllText(pOutputDir, toWrite);
} }

View file

@ -14,23 +14,30 @@ class BindingEnum
public this(StringView pName, c_int pValue) public this(StringView pName, c_int pValue)
{ {
Name = new .(pName); Name = new .(pName);
if(Binding.Options.LowercaseEnums)
Name.ToLower();
Value = pValue; Value = pValue;
} }
} }
public String Name ~ delete _; public String Name ~ delete _;
public List<BindingEnumEntry> Entries = new .() ~ delete _; public List<BindingEnumEntry> Entries = new .() ~ DeleteContainerAndItems!(_);
public this(StringView pName) public this(StringView pName)
{ {
Name = new .(pName); Name = new .(pName);
if(Name.StartsWith(Binding.Options.Namespace) && Name.Length > Binding.Options.Namespace.Length)
Name.Remove(0, Binding.Options.Namespace.Length);
} }
///Generate the beef representation of an enum ///Generate the beef representation of an enum
public void ToBeef(String pBuffer) public void ToBeef(String pBuffer)
{ {
if(Binding.Options.RemoveEnumStart)
CalcCommonDenominator();
pBuffer.Append(scope $""" pBuffer.Append(scope $"""
[AllowDublicates] [AllowDuplicates]
public enum {Name} public enum {Name}
\{\n \{\n
"""); """);
@ -38,4 +45,33 @@ class BindingEnum
pBuffer.Append(scope $"{i.Name} = {i.Value},\n"); pBuffer.Append(scope $"{i.Name} = {i.Value},\n");
pBuffer.Append("}\n"); pBuffer.Append("}\n");
} }
private void CalcCommonDenominator()
{
if(Entries.Count < 2)
return; //Otherwise we remove too much
StringView? denominator = null;
for(var i in Entries)
{
if(denominator == null)
denominator = i.Name;
else
{
for(int j = 0; j < i.Name.Length && j < denominator.Value.Length; j++)
{
if(denominator.Value[j] == i.Name[j])
continue;
else
{
denominator = i.Name.Substring(0, j);
}
}
}
}
for(var i in Entries)
i.Name.Remove(0, denominator.Value.Length);
}
} }

View file

@ -15,6 +15,9 @@ class BindingFunction
{ {
Name = new .(pName); Name = new .(pName);
Type = new .(pType); Type = new .(pType);
if(Name.StartsWith(Binding.Options.Namespace) && Name.Length > Binding.Options.Namespace.Length)
Name.Remove(0, Binding.Options.Namespace.Length);
} }
} }
@ -26,6 +29,9 @@ class BindingFunction
{ {
Name = new .(pName); Name = new .(pName);
Output = new .(pOutput); Output = new .(pOutput);
if(Name.StartsWith(Binding.Options.Namespace) && Name.Length > Binding.Options.Namespace.Length)
Name.Remove(0, Binding.Options.Namespace.Length);
} }
public void ToBeef(String pBuffer) public void ToBeef(String pBuffer)

View file

@ -1,5 +1,24 @@
namespace Caa; namespace Caa;
using System;
class BindingOptions class BindingOptions
{ {
/*
This handles the C way of namespacing
If something has the namespace infront of it we remove it and incase of functions, generate the linkname property
*/
private String _Namespace = new .("") ~ delete _;
public String Namespace
{
get => _Namespace;
set
{
delete _Namespace;
_Namespace = new .(value);
}
};
public bool RemoveEnumStart = true;
public bool LowercaseEnums = false;
} }

View file

@ -15,6 +15,9 @@ class BindingStruct
{ {
Name = new .(pName); Name = new .(pName);
Type = new .(pType); Type = new .(pType);
if(Name.StartsWith(Binding.Options.Namespace) && Name.Length > Binding.Options.Namespace.Length)
Name.Remove(0, Binding.Options.Namespace.Length);
} }
} }
@ -25,6 +28,9 @@ class BindingStruct
public this(StringView pName) public this(StringView pName)
{ {
Name = new .(pName); Name = new .(pName);
if(Name.StartsWith(Binding.Options.Namespace) && Name.Length > Binding.Options.Namespace.Length)
Name.Remove(0, Binding.Options.Namespace.Length);
} }
public void ToBeef(String pBuffer) public void ToBeef(String pBuffer)

View file

@ -42,5 +42,10 @@ class BindingType
TypeName.Replace(" ", ""); TypeName.Replace(" ", "");
//TODO: bools exist and we should really be able to autoparse those //TODO: bools exist and we should really be able to autoparse those
if(TypeName.StartsWith(Binding.Options.Namespace) && TypeName.Length > Binding.Options.Namespace.Length)
TypeName.Remove(0, Binding.Options.Namespace.Length);
if(TypeName.Length > Binding.Options.Namespace.Length)
TypeName.Replace(Binding.Options.Namespace, "");
} }
} }

View file

@ -44,8 +44,7 @@ class Program
arguments[i] = arg; arguments[i] = arg;
} }
BindingOptions options = scope .(); Binding.Bind(ref arguments);
Binding.Bind(ref arguments, options);
Console.WriteLine("Finished analyzing the file now please input your output directory/file"); Console.WriteLine("Finished analyzing the file now please input your output directory/file");
String output = scope .(); String output = scope .();