{ $define libseehelper} {$mode objfpc} {$h+} unit libsee; interface uses ctypes; { Automatically converted by H2Pas 1.0.0 from libsee.c The following command line parameters were used: -D -l see -C -u libsee -T -o libsee.pas -P libsee.c } const {$ifdef unix} LibSeeLibraryName='libsee.so'; {$else} LibSeeLibraryName='libsee.dll'; {$endif} Type Tsize_t = csize_t; tcuchar = char; Tuint16_t = word; Tuint32_t = cardinal; Tuint64_t = qword; Tint16_t = integer; Tint32_t = longint; Tint64_t = int64; TDouble = double; tcuint = word; tcint = integer; PTcchar = pchar; PPTcchar = ^PTcchar; Ptcint = ^tcint; PTcuint = ^tcuint; tcchar = char; var SEE_literal_NaN : array[0..7] of Tcuchar;cvar;external; Type PFILE = Pointer; PTFILE = Pointer; PPSEE_string = ^PSEE_string; PSEE_context = ^TSEE_context; PSEE_enum = ^TSEE_enum; PSEE_growable = ^TSEE_growable; PSEE_input = ^TSEE_input; PSEE_interpreter = ^TSEE_interpreter; PSEE_module = ^TSEE_module; PSEE_native = ^TSEE_native; PSEE_object = ^TSEE_object; PSEE_objectclass = ^TSEE_objectclass; PSEE_scope = ^TSEE_scope; PSEE_string = ^TSEE_string; PSEE_throw_location = ^TSEE_throw_location; PSEE_try_context = ^TSEE_try_context; PSEE_unicode_t = ^TSEE_unicode_t; PSEE_value = ^TSEE_value; PTSEE_char_t = ^TSEE_Char_t; PTSEE_Code = Pointer; PTSEE_context = ^TSEE_context; PTSEE_enum = ^TSEE_enum; PTSEE_growable = ^TSEE_growable; PTSEE_input = ^TSEE_input; PTSEE_interpreter = ^TSEE_interpreter; PTSEE_module = ^TSEE_module; PTSEE_native = ^TSEE_native; PTSEE_object = ^TSEE_object; PTSEE_objectclass = ^TSEE_objectclass; PTSEE_scope = ^TSEE_scope; PTSEE_string = ^TSEE_string; TPSEE_string = PTSEE_string; PTSEE_throw_location = ^TSEE_throw_location; PTSEE_try_context = ^TSEE_try_context; PTSEE_unicode_t = ^TSEE_unicode_t; PTSEE_value = ^TSEE_value; PPTSEE_value = ^PSEE_value; PTSEE_enumclass = ^TSEE_enumclass; PSEE_system = ^TSEE_System; // PTSEE_property = ^TSEE_property; PTSEE_property = Pointer; TPSEE_object = ^TSEE_object; PTSEE_inputclass = ^TSEE_inputclass; PTSEE_traceback = ^TSEE_traceback; PTSEE_regex_engine = Pointer; PTSEE_stringclass = ^TSEE_stringclass; TPSEE_enum = PSEE_Enum; TPSEE_input = PSEE_INPUT; PTPSEE_string = ^TSEE_STRING; TPSEE_interpreter_state = Pointer; //^TSEE_interpreter_state; {$IFDEF FPC} {$PACKRECORDS C} {$ENDIF} TSEE_uint16_t = Tuint16_t; TSEE_uint32_t = Tuint32_t; TSEE_int32_t = Tint32_t; TSEE_uint64_t = Tuint64_t; TSEE_int64_t = Tint64_t; TSEE_number_t = Tdouble; TSEE_boolean_t = Tcuchar; TSEE_char_t = TSEE_uint16_t; TSEE_unicode_t = TSEE_uint32_t; TSEE_type = (SEE_UNDEFINED,SEE_NULL,SEE_BOOLEAN,SEE_NUMBER, SEE_STRING,SEE_OBJECT,SEE_REFERENCE,SEE_COMPLETION ); TSEE_reference = record base : PTSEE_object; _property : PTSEE_string; end; TSEE_completion = record value : PTSEE_value; target : Tcuint; _type : (SEE_COMPLETION_NORMAL,SEE_COMPLETION_BREAK, SEE_COMPLETION_CONTINUE,SEE_COMPLETION_RETURN, SEE_COMPLETION_THROW); end; TSEE_value = record _type : TSEE_type; u : record case longint of 0 : ( number : TSEE_number_t ); 1 : ( boolean : TSEE_boolean_t ); 2 : ( _object : PTSEE_object ); 3 : ( _string : PTSEE_string ); 4 : ( reference : TSEE_reference ); 5 : ( completion : TSEE_completion ); 6 : ( _padding : array[0..3] of pointer ); end; end; TSEE_get_fn_t = procedure (i:PTSEE_interpreter; obj:PTSEE_object; prop:PTSEE_string; res:PTSEE_value);cdecl; TSEE_put_fn_t = procedure (i:PTSEE_interpreter; obj:PTSEE_object; prop:PTSEE_string; res:PTSEE_value; flags:Tcint);cdecl; TSEE_boolean_fn_t = function (i:PTSEE_interpreter; obj:PTSEE_object; prop:PTSEE_string):Tcint;cdecl; TSEE_hasinstance_fn_t = function (i:PTSEE_interpreter; obj:PTSEE_object; instance:PTSEE_value):Tcint;cdecl; TSEE_default_fn_t = procedure (i:PTSEE_interpreter; obj:PTSEE_object; hint:PTSEE_value; res:PTSEE_value);cdecl; TSEE_call_fn_t = procedure (i:PTSEE_interpreter; obj:PTSEE_object; thisobj:PTSEE_object; argc:Tcint; argv:PPTSEE_value; res:PTSEE_value);cdecl; TSEE_enumerator_fn_t = function (i:PTSEE_interpreter; obj:PTSEE_object):PTSEE_enum;cdecl; TSEE_get_sec_domain_fn_t = function (i:PTSEE_interpreter; obj:PTSEE_object):pointer;cdecl; (* Const before type ignored *) TSEE_objectclass = record _Class : PTcchar; Get : TSEE_get_fn_t; Put : TSEE_put_fn_t; CanPut : TSEE_boolean_fn_t; HasProperty : TSEE_boolean_fn_t; Delete : TSEE_boolean_fn_t; DefaultValue : TSEE_default_fn_t; enumerator : TSEE_enumerator_fn_t; Construct : TSEE_call_fn_t; Call : TSEE_call_fn_t; HasInstance : TSEE_hasinstance_fn_t; get_sec_domain : TSEE_get_sec_domain_fn_t; end; TSEE_object = record objectclass : PTSEE_objectclass; Prototype : PTSEE_object; host_data : pointer; end; TSEE_enumclass = record unused : pointer; next : function (i:PTSEE_interpreter; e:PTSEE_enum; flags_return:pTcint):TPSEE_string;cdecl; end; TSEE_enum = record enumclass : PTSEE_enumclass; end; TSEE_native = record _object : TSEE_object; properties : array[0..256] of PTSEE_property; lru : PTSEE_property; end; TSEE_scope = record next : PTSEE_scope; obj : TPSEE_object; end; TSEE_inputclass = record next : function (para1:PTSEE_input):TSEE_unicode_t;cdecl; close : procedure (para1:PTSEE_input); end; TSEE_input = record inputclass : PTSEE_inputclass; eof : TSEE_boolean_t; lookahead : TSEE_unicode_t; filename : TPSEE_string; first_lineno : Tcint; interpreter : PTSEE_interpreter; end; TSEE_trace_event = (SEE_TRACE_CALL,SEE_TRACE_RETURN,SEE_TRACE_STATEMENT, SEE_TRACE_THROW); TSEE_interpreter = record host_data : pointer; compatibility : Tcint; Global : TPSEE_object; _Object : TPSEE_object; Object_prototype : TPSEE_object; Error : TPSEE_object; EvalError : TPSEE_object; RangeError : TPSEE_object; ReferenceError : TPSEE_object; SyntaxError : TPSEE_object; TypeError : TPSEE_object; URIError : TPSEE_object; _String : TPSEE_object; String_prototype : TPSEE_object; _Function : TPSEE_object; Function_prototype : TPSEE_object; _Array : TPSEE_object; Array_prototype : TPSEE_object; Number : TPSEE_object; Number_prototype : TPSEE_object; Boolean : TPSEE_object; Boolean_prototype : TPSEE_object; Math : TPSEE_object; RegExp : TPSEE_object; RegExp_prototype : TPSEE_object; Date : TPSEE_object; Date_prototype : TPSEE_object; Global_eval : TPSEE_object; Global_scope : PTSEE_scope; try_context : PTSEE_try_context; try_location : PTSEE_throw_location; traceback : PTSEE_traceback; module_private : Ppointer; intern_tab : pointer; random_seed : Tcuint; locale : PTcchar; recursion_limit : Tcint; sec_domain : pointer; trace : procedure (para1:PTSEE_interpreter; para2:PTSEE_throw_location; para3:PTSEE_context; para4:TSEE_trace_event);cdecl; regex_engine : PTSEE_regex_engine; end; TSEE_traceback = record call_location : PTSEE_throw_location; callee : TPSEE_object; call_type : Tcint; prev : PTSEE_traceback; end; TSEE_context = record interpreter : PTSEE_interpreter; activation : TPSEE_object; variable : TPSEE_object; varattr : Tcint; thisobj : TPSEE_object; scope : PTSEE_scope; end; TSEE_growable = record data_ptr : Ppointer; length_ptr : PTcuint; element_size : Tsize_t; allocated : Tsize_t; flag0 : word; end; TSEE_module = record magic : TSEE_uint32_t; name : PTcchar; version : PTcchar; index : Tcuint; mod_init : function :Tcint;cdecl; alloc : procedure (para1:PTSEE_interpreter);cdecl; init : procedure (para1:PTSEE_interpreter);cdecl; end; TSEE_string = record length : Tcuint; data : PTSEE_char_t; stringclass : PTSEE_stringclass; interpreter : PTSEE_interpreter; flags : Tcint; end; TSEE_stringclass = record growby : procedure (para1:TPSEE_string; para2:Tcuint);cdecl; end; TFinalProc = procedure (para1:PTSEE_interpreter; para2:pointer; para3:pointer); cdecl; TSEE_system = record default_locale : PTcchar; default_recursion_limit : Tcint; default_trace : procedure (para1:PTSEE_interpreter; para2:PTSEE_throw_location; para3:PTSEE_context; para4:TSEE_trace_event);cdecl; default_compat_flags : Tcint; random_seed : function :Tcuint; abort : procedure (para1:PTSEE_interpreter; para2:PTcchar); periodic : procedure (para1:PTSEE_interpreter); malloc : function (para1:PTSEE_interpreter; para2:Tsize_t; para3:PTcchar; para4:Tcint):pointer; malloc_finalize : function (para1:PTSEE_interpreter; para2:Tsize_t; para3:tfinalproc; para4:pointer; para5:PTcchar; para6:Tcint):pointer; malloc_string : function (para1:PTSEE_interpreter; para2:Tsize_t; para3:PTcchar; para4:Tcint):pointer; free : procedure (para1:PTSEE_interpreter; para2:pointer; para3:PTcchar; para4:Tcint); mem_exhausted : procedure (para1:PTSEE_interpreter); gcollect : procedure (para1:PTSEE_interpreter); transit_sec_domain : function (para1:PTSEE_interpreter; para2:pointer):pointer; code_alloc : function (para1:PTSEE_interpreter): PTSEE_code; object_construct : procedure (interp:PTSEE_interpreter; self:TPSEE_object; thisobj:TPSEE_object; argc:Tcint; argv:PPTSEE_value; res:PTSEE_value); default_regex_engine : PTSEE_regex_engine; end; TSEE_throw_location = record filename : TPSEE_string; lineno : Tcint; end; Tjmp_buf = record a : array[1..200] of byte; end; TSEE_try_context_t = record interpreter : PTSEE_interpreter; previous : PTSEE_try_context; thrown : TSEE_value; done : Tcint; env : Tjmp_buf; // throw_file : PTcchar; throw_line : Tcint; saved_traceback : PTSEE_traceback; traceback : PTSEE_traceback; end; TSEE_try_context = TSEE_try_context_t; const bm_TSEE_growable_is_string = $1; bp_TSEE_growable_is_string = 0; var _SEE_isnan : function(n:TSEE_number_t):Tcint;cdecl; _SEE_isfinite : function(n:TSEE_number_t):Tcint;cdecl; _SEE_copysign : function(x:TSEE_number_t; y:TSEE_number_t):TSEE_number_t;cdecl; _SEE_ispinf : function(n:TSEE_number_t):Tcint;cdecl; _SEE_isninf : function(n:TSEE_number_t):Tcint;cdecl; SEE_ToPrimitive : procedure(i:PTSEE_interpreter; val:PTSEE_value; _type:PTSEE_value; res:PTSEE_value);cdecl; SEE_ToBoolean : procedure(i:PTSEE_interpreter; val:PTSEE_value; res:PTSEE_value);cdecl; SEE_ToNumber : procedure(i:PTSEE_interpreter; val:PTSEE_value; res:PTSEE_value);cdecl; SEE_ToInteger : procedure(i:PTSEE_interpreter; val:PTSEE_value; res:PTSEE_value);cdecl; SEE_ToString : procedure(i:PTSEE_interpreter; val:PTSEE_value; res:PTSEE_value);cdecl; SEE_ToObject : procedure(i:PTSEE_interpreter; val:PTSEE_value; res:PTSEE_value);cdecl; SEE_ToInt32 : function(i:PTSEE_interpreter; val:PTSEE_value):TSEE_int32_t;cdecl; SEE_ToUint32 : function(i:PTSEE_interpreter; val:PTSEE_value):TSEE_uint32_t;cdecl; SEE_ToUint16 : function(i:PTSEE_interpreter; val:PTSEE_value):TSEE_uint16_t;cdecl; SEE_hexstr_lowercase : array[0..15] of Tcchar;cvar;external; _SEE_intern_assert : function(i:PTSEE_interpreter; s:TPSEE_string):TPSEE_string;cdecl; SEE_intern_ascii : function(para1:PTSEE_interpreter; para2:PTcchar):TPSEE_string;cdecl; SEE_function_is_joined : function(a:PTSEE_object; b:PTSEE_object):Tcint;cdecl; SEE_Object_new : function(para1:PTSEE_interpreter):TPSEE_object;cdecl; SEE_object_call : procedure(para1:PTSEE_interpreter; para2:TPSEE_object; para3:TPSEE_object; para4:Tcint; para5:PPTSEE_value; para6:PTSEE_value);cdecl; SEE_object_construct : procedure(para1:PTSEE_interpreter; para2:TPSEE_object; para3:TPSEE_object; para4:Tcint; para5:PPTSEE_value; para6:PTSEE_value);cdecl; SEE_object_instanceof : function(interp:PTSEE_interpreter; val:PTSEE_value; obj:TPSEE_object):Tcint;cdecl; SEE_native_get : procedure(i:PTSEE_interpreter; obj:TPSEE_object; prop:TPSEE_string; res:PTSEE_value);cdecl; SEE_native_put : procedure(i:PTSEE_interpreter; obj:TPSEE_object; prop:TPSEE_string; val:PTSEE_value; flags:Tcint);cdecl; SEE_native_canput : function(i:PTSEE_interpreter; obj:TPSEE_object; prop:TPSEE_string):Tcint;cdecl; SEE_native_hasproperty : function(i:PTSEE_interpreter; obj:TPSEE_object; prop:TPSEE_string):Tcint;cdecl; SEE_native_hasownproperty : function(i:PTSEE_interpreter; obj:TPSEE_object; prop:TPSEE_string):Tcint;cdecl; SEE_native_getownattr : function(i:PTSEE_interpreter; obj:TPSEE_object; prop:TPSEE_string):Tcint;cdecl; SEE_native_delete : function(i:PTSEE_interpreter; obj:TPSEE_object; prop:TPSEE_string):Tcint;cdecl; SEE_native_defaultvalue : procedure(i:PTSEE_interpreter; obj:TPSEE_object; hint:PTSEE_value; res:PTSEE_value);cdecl; SEE_native_enumerator : function(i:PTSEE_interpreter; obj:TPSEE_object):TPSEE_enum;cdecl; SEE_native_new : function(i:PTSEE_interpreter):TPSEE_object;cdecl; SEE_native_init : procedure(obj:PTSEE_native; i:PTSEE_interpreter; obj_class:PTSEE_objectclass; prototype:TPSEE_object);cdecl; SEE_cfunction_make : function(i:PTSEE_interpreter; func:TSEE_call_fn_t; name:TPSEE_string; length:Tcint):TPSEE_object;cdecl; SEE_parse_args : procedure(i:PTSEE_interpreter; argc:Tcint; argv:PPTSEE_value; fmt:pTcchar);cdecl;varargs; SEE_call_args : procedure(i:PTSEE_interpreter; func:TPSEE_object; thisobj:TPSEE_object; ret:PTSEE_value; fmt:pTcchar);cdecl;varargs; SEE_PrintValue : procedure(i:PTSEE_interpreter; v:PTSEE_value; f:PTFILE);cdecl; SEE_PrintObject : procedure(i:PTSEE_interpreter; o:TPSEE_object; f:PTFILE);cdecl; SEE_PrintString : procedure(i:PTSEE_interpreter; s:TPSEE_string; f:PTFILE);cdecl; SEE_PrintTraceback : procedure(i:PTSEE_interpreter; f:PTFILE);cdecl; SEE_PrintContextTraceback : procedure(i:PTSEE_interpreter; context:PTSEE_try_context; f:PTFILE);cdecl; SEE_Global_eval : procedure(i:PTSEE_interpreter; input:PTSEE_input; res:PTSEE_value);cdecl; SEE_eval : procedure(i:PTSEE_interpreter; input:PTSEE_input; thisobj:TPSEE_object; variable:TPSEE_object; scope:PTSEE_scope; res:PTSEE_value);cdecl; SEE_Function_new : function(i:PTSEE_interpreter; name:TPSEE_string; param_input:PTSEE_input; body_input:PTSEE_input):TPSEE_object;cdecl; SEE_error__throw_string : procedure(i:PTSEE_interpreter; errorobj:TPSEE_object; filename:pTcchar; lineno:Tcint; message:TPSEE_string);cdecl; SEE_error__throw : procedure(i:PTSEE_interpreter; errorobj:TPSEE_object; filename:pTcchar; lineno:Tcint; fmt:pTcchar);cdecl; varargs; SEE_error__throw_sys : procedure(i:PTSEE_interpreter; errorobj:TPSEE_object; filename:pTcchar; lineno:Tcint; fmt:pTcchar);cdecl; varargs; SEE_Error_make : function(i:PTSEE_interpreter; name:TPSEE_string):TPSEE_object;cdecl; SEE_error__throw0 : procedure(i:PTSEE_interpreter; errorobj:TPSEE_object; fmt:pTcchar);cdecl;varargs; SEE_error__throw_sys0 : procedure(i:PTSEE_interpreter; errorobj:TPSEE_object; fmt:pTcchar);cdecl;varargs; SEE_input_file : function(i:PTSEE_interpreter; f:PTFILE; filename:pTcchar; encoding:pTcchar):TPSEE_input;cdecl; SEE_input_string : function(i:PTSEE_interpreter; s:TPSEE_string):TPSEE_input;cdecl; SEE_input_utf8 : function(i:PTSEE_interpreter; s:pTcchar):TPSEE_input;cdecl; SEE_input_lookahead : function(i:TPSEE_input; maxlookahead:Tcint):TPSEE_input;cdecl; SEE_input_lookahead_copy : function(li:TPSEE_input; buf:PTSEE_unicode_t; buflen:Tcint):Tcint;cdecl; _SEE_intern_init : procedure(i:PTSEE_interpreter);cdecl; SEE_intern : function(i:PTSEE_interpreter; s:TPSEE_string):TPSEE_string;cdecl; SEE_intern_and_free : procedure(i:PTSEE_interpreter; s:PTPSEE_string);cdecl; // SEE_intern_ascii : function(i:PTSEE_interpreter; s:pTcchar):TPSEE_string;cdecl; SEE_intern_global : function(s:pTcchar):TPSEE_string;cdecl; SEE_interpreter_init : procedure(i:PTSEE_interpreter);cdecl; SEE_interpreter_init_compat : procedure(i:PTSEE_interpreter; compat_flags:Tcint);cdecl; SEE_interpreter_save_state : function(i:PTSEE_interpreter):TPSEE_interpreter_state;cdecl; SEE_interpreter_restore_state : procedure(i:PTSEE_interpreter; state:TPSEE_interpreter_state);cdecl; SEE_context_eval : procedure(context:PTSEE_context; expr:TPSEE_string; res:PTSEE_value);cdecl; Type Tfinalizefn = procedure( i:PTSEE_interpreter; p:pointer; closure:pointer);cdecl; Var SEE_malloc : function(i:PTSEE_interpreter; sz:Tsize_t):pointer;cdecl; SEE_malloc_string : function(i:PTSEE_interpreter; sz:Tsize_t):pointer;cdecl; SEE_malloc_finalize : function(i:PTSEE_interpreter; sz:Tsize_t; finalizefn:Tfinalizefn; closure:pointer):pointer;cdecl; SEE_free : procedure(i:PTSEE_interpreter; memp:Ppointer);cdecl; SEE_gcollect : procedure(i:PTSEE_interpreter);cdecl; _SEE_malloc_debug : function(i:PTSEE_interpreter; sz:Tsize_t; _file:pTcchar; line:Tcint):pointer;cdecl; _SEE_malloc_string_debug : function(i:PTSEE_interpreter; sz:Tsize_t; _file:pTcchar; line:Tcint):pointer;cdecl; _SEE_malloc_finalize_debug : function(i:PTSEE_interpreter; sz:Tsize_t; finalizefn:Tfinalizefn; closure:pointer; _file:pTcchar; line:Tcint):pointer;cdecl; _SEE_free_debug : procedure(i:PTSEE_interpreter; memp:Ppointer; _file:pTcchar; line:Tcint);cdecl; function is_string(var a : TSEE_growable) : boolean; procedure set_is_string(var a : TSEE_growable; __is_string : boolean); var SEE_grow_to : procedure(i:PTSEE_interpreter; grow:PTSEE_growable; new_len:Tcuint);cdecl; _SEE_grow_to_debug : procedure(i:PTSEE_interpreter; grow:PTSEE_growable; new_len:Tcuint; _file:pTcchar; line:Tcint);cdecl; SEE_module_add : function(module:PTSEE_module):Tcint;cdecl; SEE_no_get : procedure(para1:PTSEE_interpreter; para2:TPSEE_object; para3:TPSEE_string; val:PTSEE_value);cdecl; SEE_no_put : procedure(para1:PTSEE_interpreter; para2:TPSEE_object; para3:TPSEE_string; val:PTSEE_value; para5:Tcint);cdecl; SEE_no_canput : function(para1:PTSEE_interpreter; para2:TPSEE_object; para3:TPSEE_string):Tcint;cdecl; SEE_no_hasproperty : function(para1:PTSEE_interpreter; para2:TPSEE_object; para3:TPSEE_string):Tcint;cdecl; SEE_no_delete : function(para1:PTSEE_interpreter; para2:TPSEE_object; para3:TPSEE_string):Tcint;cdecl; SEE_no_defaultvalue : procedure(para1:PTSEE_interpreter; para2:TPSEE_object; para3:PTSEE_value; para4:PTSEE_value);cdecl; SEE_no_enumerator : function(para1:PTSEE_interpreter; para2:TPSEE_object):TPSEE_enum;cdecl; var SEE_string_addch : procedure(s:TPSEE_string; ch:Tcint);cdecl; SEE_string_append : procedure(s:TPSEE_string; sffx:TPSEE_string);cdecl; SEE_string_append_ascii : procedure(s:TPSEE_string; ascii:pTcchar);cdecl; SEE_string_append_int : procedure(s:TPSEE_string; i:Tcint);cdecl; SEE_string_append_unicode : procedure(s:TPSEE_string; uch:TSEE_unicode_t);cdecl; SEE_string_fputs : function(s:TPSEE_string; _file:PTFILE):Tcint;cdecl; SEE_string_cmp : function(s1:TPSEE_string; s2:TPSEE_string):Tcint;cdecl; SEE_string_cmp_ascii : function(s1:TPSEE_string; s2:pTcchar):Tcint;cdecl; SEE_string_new : function(i:PTSEE_interpreter; space:Tcuint):TPSEE_string;cdecl; SEE_string_dup : function(i:PTSEE_interpreter; s:TPSEE_string):TPSEE_string;cdecl; SEE_string_substr : function(i:PTSEE_interpreter; s:TPSEE_string; index:Tcint; length:Tcint):TPSEE_string;cdecl; SEE_string_concat : function(i:PTSEE_interpreter; s1:TPSEE_string; s2:TPSEE_string):TPSEE_string;cdecl; SEE_string_sprintf : function(i:PTSEE_interpreter; fmt:pTcchar):TPSEE_string;cdecl; varargs; SEE_string_literal : function(i:PTSEE_interpreter; s:TPSEE_string):TPSEE_string;cdecl; SEE_string_fix : function(s:TPSEE_string):TPSEE_string;cdecl; SEE_string_free : procedure(i:PTSEE_interpreter; sp:PTPSEE_string);cdecl; SEE_string_toutf8 : procedure(i:PTSEE_interpreter; buf:pTcchar; buflen:Tsize_t; s:TPSEE_string);cdecl; SEE_string_utf8_size : function(interp:PTSEE_interpreter; s:TPSEE_string):Tsize_t;cdecl; _SEE_string_dup_fix : function(para1:PTSEE_interpreter; para2:TPSEE_string):TPSEE_string;cdecl; var SEE_system : TSEE_system;cvar;external; SEE_init : procedure;cdecl; SEE_regex_engine_list : function:PPTcchar;cdecl; SEE_regex_engine : function(name:pTcchar):PTSEE_regex_engine;cdecl; var SEE_throw_abort : procedure(para1:PTSEE_interpreter; para2:PTSEE_value; para3:PTcchar; para4:Tcint);cdecl; SEE_location_string : function(i:PTSEE_interpreter; loc:PTSEE_throw_location):TPSEE_string;cdecl; SEE_throw : procedure;cdecl; SEE_version : function: PTcchar;cdecl; procedure see_input_close(Inp : PSEE_INPUT); function SEE_VALUE_GET_TYPE(v : PSEE_value) : TSEE_type; procedure SEE_VALUE_COPY(dst, src : PSEE_value); procedure SEE_SET_UNDEFINED(v : PSEE_value); procedure SEE_SET_NULL(v : PSEE_value); procedure SEE_SET_BOOLEAN(v : PSEE_value; b : Boolean); procedure SEE_SET_NUMBER(v : PSEE_value; n : TSEE_number_t); procedure SEE_SET_STRING(v :PSEE_value; s: PSEE_STRING); procedure SEE_SET_OBJECT(v :PSEE_value; o: PSEE_OBJECT); function SEE_isnan (n:TSEE_number_t):Tcint; function SEE_isfinite (n:TSEE_number_t):Tcint; function SEE_copysign (x:TSEE_number_t; y:TSEE_number_t):TSEE_number_t; function SEE_ispinf (n:TSEE_number_t):Tcint; function SEE_isninf (n:TSEE_number_t):Tcint; Function SEE_MODULE_PRIVATE(i : PTSEE_interpreter; m : PSEE_module) : Pointer; procedure SEE_OBJECT_PUT(Interp : PTSEE_interpreter; Obj : PSEE_object; prop:TPSEE_string; val:PTSEE_value; flags:Tcint); CONST SEE_ATTR_READONLY = $01; SEE_ATTR_DONTENUM = $02; SEE_ATTR_DONTDELETE = $04; SEE_ATTR_INTERNAL = $08; SEE_MODULE_MAGIC = $5345456d; SEE_ATTR_DEFAULT = SEE_ATTR_DONTENUM; SEE_ATTR_LENGTH = SEE_ATTR_READONLY or SEE_ATTR_DONTDELETE or SEE_ATTR_DONTENUM; {$ifdef libseehelper} {$l libsee.so} {$l libseewrap.o} function SEE_help_Global_eval (para1 : PSEE_Interpreter; para2: PSEE_input; para3 : PSEE_value) : cint; cdecl; external; function SEE_help_CAUGHT(para1: TSEE_try_context) : PSEE_value; cdecl; external; procedure SEE_help_THROW(para1: PSEE_Interpreter; para2: PSEE_value); cdecl; external; procedure SEE_help_RETHROW(para1: PSEE_Interpreter; para2: PSEE_value); cdecl; external; procedure SEE_help_DEFAULT_CATCH(para1: PSEE_Interpreter; para2: PSEE_try_context); cdecl; external; function new_SEE_interpreter : PSEE_Interpreter; cdecl; external; function new_SEE_value : PSEE_Value; cdecl; external; function new_SEE_objectclass : PSEE_objectclass; cdecl; external; function new_SEE_object : PSEE_object; cdecl; external; function new_SEE_enumclass : PTSEE_enumclass; cdecl; external; function new_SEE_enum : PSEE_enum; cdecl; external; function new_SEE_native : PSEE_native; cdecl; external; function new_SEE_scope : PSEE_scope; cdecl; external; function new_SEE_inputclass : PTSEE_inputclass; cdecl; external; function new_SEE_input : PSEE_input; cdecl; external; function new_SEE_traceback : PTSEE_traceback; cdecl; external; function new_SEE_context : PSEE_context; cdecl; external; function new_SEE_stringclass : PTSEE_stringclass; cdecl; external; function new_SEE_throw_location : PSEE_throw_location; cdecl; external; function new_SEE_try_context : PSEE_try_context; cdecl; external; procedure free_SEE_struct(P : pointer); cdecl; external; {$else} function new_SEE_interpreter : PSEE_Interpreter; function new_SEE_value : PSEE_Value; function new_SEE_objectclass : PSEE_objectclass; function new_SEE_object : PSEE_object; function new_SEE_enumclass : PTSEE_enumclass; function new_SEE_enum : PSEE_enum; function new_SEE_native : PSEE_native; function new_SEE_scope : PSEE_scope; function new_SEE_inputclass : PTSEE_inputclass; function new_SEE_input : PSEE_input; function new_SEE_traceback : PTSEE_traceback; function new_SEE_context : PSEE_context; function new_SEE_stringclass : PTSEE_stringclass; function new_SEE_throw_location : PSEE_throw_location; function new_SEE_try_context : PSEE_try_context; procedure free_SEE_struct(P : pointer); {$endif} procedure Loadlibsee(Const Alib : string); procedure Freelibsee; Function LibseeLoaded : Boolean; implementation uses SysUtils, dynlibs; {$ifndef libseehelper} function new_SEE_interpreter : PSEE_Interpreter; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_interpreter)); end; function new_SEE_value : PSEE_Value; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_Value)); end; function new_SEE_objectclass : PSEE_objectclass; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_objectclass)); end; function new_SEE_object : PSEE_object; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_object)); end; function new_SEE_enumclass : PTSEE_enumclass; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_enumclass)); end; function new_SEE_enum : PSEE_enum; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_enum)); end; function new_SEE_native : PSEE_native; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_native)); end; function new_SEE_scope : PSEE_scope; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_scope)); end; function new_SEE_inputclass : PTSEE_inputclass; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_inputclass)); end; function new_SEE_input : PSEE_input; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_input)); end; function new_SEE_traceback : PTSEE_traceback; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_traceback)); end; function new_SEE_context : PSEE_context; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_context)); end; function new_SEE_stringclass : PTSEE_stringclass; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_stringclass)); end; function new_SEE_throw_location : PSEE_throw_location; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_throw_location)); end; function new_SEE_try_context : PSEE_try_context; begin Result:=SEE_malloc(Nil,SizeOf(TSEE_try_context)); end; procedure free_SEE_struct(P : pointer); begin SEE_free(Nil,P); end; {$endif} procedure SEE_OBJECT_PUT(Interp : PTSEE_interpreter; Obj : PSEE_object; prop:TPSEE_string; val:PTSEE_value; flags:Tcint); begin obj^.objectclass^.Put(Interp,obj,prop,val,flags); end; // SEE_native_put : procedure(i:PTSEE_interpreter; obj:TPSEE_object; prop:TPSEE_string; val:PTSEE_value; flags:Tcint);cdecl; function SEE_VALUE_GET_TYPE(v : PSEE_value) : TSEE_type; begin Result:=v^._type; end; procedure SEE_VALUE_COPY(dst, src : PSEE_value); begin dst^:=src^; end; procedure SEE_SET_TYPE(v: PSEE_VALUE; t : TSEE_type); begin v^._type:=t; end; procedure SEE_SET_UNDEFINED(v : PSEE_value); begin SEE_SET_TYPE(v,SEE_UNDEFINED); end; procedure SEE_SET_NULL(v : PSEE_value); begin SEE_SET_TYPE(V,SEE_NULL); end; procedure SEE_SET_BOOLEAN(v : PSEE_value; b : Boolean); begin SEE_SET_TYPE(V,SEE_BOOLEAN); V^.u.boolean:=char(ord(B)); end; procedure SEE_SET_NUMBER(v : PSEE_value; n : TSEE_number_t); begin SEE_SET_TYPE(V,SEE_NUMBER); V^.u.number:=N; end; procedure SEE_SET_STRING(v :PSEE_value; s: PSEE_STRING); begin SEE_SET_TYPE(V,SEE_STRING); V^.u._string:=s end; procedure SEE_SET_OBJECT(v :PSEE_value; o: PSEE_OBJECT); begin SEE_SET_TYPE(V,SEE_OBJECT); V^.u._object:=o; end; function SEE_isnan (n:TSEE_number_t):Tcint; begin Result:=_see_isnan(n); end; function SEE_isfinite (n:TSEE_number_t):Tcint; begin result:=_see_isfinite(n); end; function SEE_copysign (x:TSEE_number_t; y:TSEE_number_t):TSEE_number_t; begin result:=_see_copysign(x,y); end; function SEE_ispinf (n:TSEE_number_t):Tcint; begin result:=_see_ispinf(n); end; function SEE_isninf (n:TSEE_number_t):Tcint; begin result:=_see_isninf(n); end; function is_string(var a : TSEE_growable) : Boolean; begin is_string:=((a.flag0 and bm_TSEE_growable_is_string) shr bp_TSEE_growable_is_string)<>0; end; procedure set_is_string(var a : TSEE_growable; __is_string : Boolean); begin a.flag0:=a.flag0 or ((ord(__is_string) shl bp_TSEE_growable_is_string) and bm_TSEE_growable_is_string); end; Function SEE_MODULE_PRIVATE(i : PTSEE_interpreter; m : PSEE_module) : Pointer; begin Result:=@I^.module_private[Integer(m^.index)]; end; procedure see_input_close(Inp : PSEE_INPUT); begin Inp^.inputclass^.close(inp); end; var hlib : tlibhandle; procedure Freelibsee; begin If HLib<>NilHandle then FreeLibrary(hlib); _SEE_isnan:=nil; _SEE_isfinite:=nil; _SEE_copysign:=nil; _SEE_ispinf:=nil; _SEE_isninf:=nil; SEE_ToPrimitive:=nil; SEE_ToBoolean:=nil; SEE_ToNumber:=nil; SEE_ToInteger:=nil; SEE_ToString:=nil; SEE_ToObject:=nil; SEE_ToInt32:=nil; SEE_ToUint32:=nil; SEE_ToUint16:=nil; _SEE_intern_assert:=nil; SEE_intern_ascii:=nil; SEE_function_is_joined:=nil; SEE_Object_new:=nil; SEE_object_call:=nil; SEE_object_construct:=nil; SEE_object_instanceof:=nil; SEE_native_get:=nil; SEE_native_put:=nil; SEE_native_canput:=nil; SEE_native_hasproperty:=nil; SEE_native_hasownproperty:=nil; SEE_native_getownattr:=nil; SEE_native_delete:=nil; SEE_native_defaultvalue:=nil; SEE_native_enumerator:=nil; SEE_native_new:=nil; SEE_native_init:=nil; SEE_cfunction_make:=nil; SEE_parse_args:=nil; SEE_parse_args:=nil; SEE_call_args:=nil; SEE_call_args:=nil; SEE_PrintValue:=nil; SEE_PrintObject:=nil; SEE_PrintString:=nil; SEE_PrintTraceback:=nil; SEE_PrintContextTraceback:=nil; SEE_Global_eval:=nil; SEE_eval:=nil; SEE_Function_new:=nil; SEE_error__throw_string:=nil; SEE_error__throw:=nil; SEE_error__throw:=nil; SEE_error__throw_sys:=nil; SEE_error__throw_sys:=nil; SEE_Error_make:=nil; SEE_error__throw0:=nil; SEE_error__throw0:=nil; SEE_error__throw_sys0:=nil; SEE_error__throw_sys0:=nil; SEE_input_file:=nil; SEE_input_string:=nil; SEE_input_utf8:=nil; SEE_input_lookahead:=nil; SEE_input_lookahead_copy:=nil; _SEE_intern_init:=nil; SEE_intern:=nil; SEE_intern_and_free:=nil; SEE_intern_ascii:=nil; SEE_intern_global:=nil; SEE_interpreter_init:=nil; SEE_interpreter_init_compat:=nil; SEE_interpreter_save_state:=nil; SEE_interpreter_restore_state:=nil; SEE_context_eval:=nil; SEE_malloc:=nil; SEE_malloc_string:=nil; SEE_malloc_finalize:=nil; SEE_free:=nil; SEE_gcollect:=nil; _SEE_malloc_debug:=nil; _SEE_malloc_string_debug:=nil; _SEE_malloc_finalize_debug:=nil; _SEE_free_debug:=nil; SEE_grow_to:=nil; _SEE_grow_to_debug:=nil; SEE_module_add:=nil; SEE_no_get:=nil; SEE_no_put:=nil; SEE_no_canput:=nil; SEE_no_hasproperty:=nil; SEE_no_delete:=nil; SEE_no_defaultvalue:=nil; SEE_no_enumerator:=nil; SEE_string_addch:=nil; SEE_string_append:=nil; SEE_string_append_ascii:=nil; SEE_string_append_int:=nil; SEE_string_append_unicode:=nil; SEE_string_fputs:=nil; SEE_string_cmp:=nil; SEE_string_cmp_ascii:=nil; SEE_string_new:=nil; SEE_string_dup:=nil; SEE_string_substr:=nil; SEE_string_concat:=nil; SEE_string_sprintf:=nil; SEE_string_sprintf:=nil; SEE_string_literal:=nil; SEE_string_fix:=nil; SEE_string_free:=nil; SEE_string_toutf8:=nil; SEE_string_utf8_size:=nil; _SEE_string_dup_fix:=nil; SEE_init:=nil; SEE_regex_engine_list:=nil; SEE_regex_engine:=nil; SEE_throw_abort:=nil; SEE_location_string:=nil; SEE_throw:=nil; SEE_version:=nil; end; Function LibseeLoaded : Boolean; begin Result:=hlib<>nilhandle; end; procedure Loadlibsee(Const Alib : string); begin Freelibsee; hlib:=LoadLibrary(pchar(Alib)); if hlib=0 then raise Exception.Create(format('Could not load library: %s',[Alib])); pointer(_SEE_isnan):=GetProcAddress(hlib,'_SEE_isnan'); pointer(_SEE_isfinite):=GetProcAddress(hlib,'_SEE_isfinite'); pointer(_SEE_copysign):=GetProcAddress(hlib,'_SEE_copysign'); pointer(_SEE_ispinf):=GetProcAddress(hlib,'_SEE_ispinf'); pointer(_SEE_isninf):=GetProcAddress(hlib,'_SEE_isninf'); pointer(SEE_ToPrimitive):=GetProcAddress(hlib,'SEE_ToPrimitive'); pointer(SEE_ToBoolean):=GetProcAddress(hlib,'SEE_ToBoolean'); pointer(SEE_ToNumber):=GetProcAddress(hlib,'SEE_ToNumber'); pointer(SEE_ToInteger):=GetProcAddress(hlib,'SEE_ToInteger'); pointer(SEE_ToString):=GetProcAddress(hlib,'SEE_ToString'); pointer(SEE_ToObject):=GetProcAddress(hlib,'SEE_ToObject'); pointer(SEE_ToInt32):=GetProcAddress(hlib,'SEE_ToInt32'); pointer(SEE_ToUint32):=GetProcAddress(hlib,'SEE_ToUint32'); pointer(SEE_ToUint16):=GetProcAddress(hlib,'SEE_ToUint16'); pointer(_SEE_intern_assert):=GetProcAddress(hlib,'_SEE_intern_assert'); pointer(SEE_intern_ascii):=GetProcAddress(hlib,'SEE_intern_ascii'); pointer(SEE_function_is_joined):=GetProcAddress(hlib,'SEE_function_is_joined'); pointer(SEE_Object_new):=GetProcAddress(hlib,'SEE_Object_new'); pointer(SEE_object_call):=GetProcAddress(hlib,'SEE_object_call'); pointer(SEE_object_construct):=GetProcAddress(hlib,'SEE_object_construct'); pointer(SEE_object_instanceof):=GetProcAddress(hlib,'SEE_object_instanceof'); pointer(SEE_native_get):=GetProcAddress(hlib,'SEE_native_get'); pointer(SEE_native_put):=GetProcAddress(hlib,'SEE_native_put'); pointer(SEE_native_canput):=GetProcAddress(hlib,'SEE_native_canput'); pointer(SEE_native_hasproperty):=GetProcAddress(hlib,'SEE_native_hasproperty'); pointer(SEE_native_hasownproperty):=GetProcAddress(hlib,'SEE_native_hasownproperty'); pointer(SEE_native_getownattr):=GetProcAddress(hlib,'SEE_native_getownattr'); pointer(SEE_native_delete):=GetProcAddress(hlib,'SEE_native_delete'); pointer(SEE_native_defaultvalue):=GetProcAddress(hlib,'SEE_native_defaultvalue'); pointer(SEE_native_enumerator):=GetProcAddress(hlib,'SEE_native_enumerator'); pointer(SEE_native_new):=GetProcAddress(hlib,'SEE_native_new'); pointer(SEE_native_init):=GetProcAddress(hlib,'SEE_native_init'); pointer(SEE_cfunction_make):=GetProcAddress(hlib,'SEE_cfunction_make'); pointer(SEE_parse_args):=GetProcAddress(hlib,'SEE_parse_args'); pointer(SEE_parse_args):=GetProcAddress(hlib,'SEE_parse_args'); pointer(SEE_call_args):=GetProcAddress(hlib,'SEE_call_args'); pointer(SEE_call_args):=GetProcAddress(hlib,'SEE_call_args'); pointer(SEE_PrintValue):=GetProcAddress(hlib,'SEE_PrintValue'); pointer(SEE_PrintObject):=GetProcAddress(hlib,'SEE_PrintObject'); pointer(SEE_PrintString):=GetProcAddress(hlib,'SEE_PrintString'); pointer(SEE_PrintTraceback):=GetProcAddress(hlib,'SEE_PrintTraceback'); pointer(SEE_PrintContextTraceback):=GetProcAddress(hlib,'SEE_PrintContextTraceback'); pointer(SEE_Global_eval):=GetProcAddress(hlib,'SEE_Global_eval'); pointer(SEE_eval):=GetProcAddress(hlib,'SEE_eval'); pointer(SEE_Function_new):=GetProcAddress(hlib,'SEE_Function_new'); pointer(SEE_error__throw_string):=GetProcAddress(hlib,'SEE_error__throw_string'); pointer(SEE_error__throw):=GetProcAddress(hlib,'SEE_error__throw'); pointer(SEE_error__throw):=GetProcAddress(hlib,'SEE_error__throw'); pointer(SEE_error__throw_sys):=GetProcAddress(hlib,'SEE_error__throw_sys'); pointer(SEE_error__throw_sys):=GetProcAddress(hlib,'SEE_error__throw_sys'); pointer(SEE_Error_make):=GetProcAddress(hlib,'SEE_Error_make'); pointer(SEE_error__throw0):=GetProcAddress(hlib,'SEE_error__throw0'); pointer(SEE_error__throw0):=GetProcAddress(hlib,'SEE_error__throw0'); pointer(SEE_error__throw_sys0):=GetProcAddress(hlib,'SEE_error__throw_sys0'); pointer(SEE_error__throw_sys0):=GetProcAddress(hlib,'SEE_error__throw_sys0'); pointer(SEE_input_file):=GetProcAddress(hlib,'SEE_input_file'); pointer(SEE_input_string):=GetProcAddress(hlib,'SEE_input_string'); pointer(SEE_input_utf8):=GetProcAddress(hlib,'SEE_input_utf8'); pointer(SEE_input_lookahead):=GetProcAddress(hlib,'SEE_input_lookahead'); pointer(SEE_input_lookahead_copy):=GetProcAddress(hlib,'SEE_input_lookahead_copy'); pointer(_SEE_intern_init):=GetProcAddress(hlib,'_SEE_intern_init'); pointer(SEE_intern):=GetProcAddress(hlib,'SEE_intern'); pointer(SEE_intern_and_free):=GetProcAddress(hlib,'SEE_intern_and_free'); pointer(SEE_intern_ascii):=GetProcAddress(hlib,'SEE_intern_ascii'); pointer(SEE_intern_global):=GetProcAddress(hlib,'SEE_intern_global'); pointer(SEE_interpreter_init):=GetProcAddress(hlib,'SEE_interpreter_init'); pointer(SEE_interpreter_init_compat):=GetProcAddress(hlib,'SEE_interpreter_init_compat'); pointer(SEE_interpreter_save_state):=GetProcAddress(hlib,'SEE_interpreter_save_state'); pointer(SEE_interpreter_restore_state):=GetProcAddress(hlib,'SEE_interpreter_restore_state'); pointer(SEE_context_eval):=GetProcAddress(hlib,'SEE_context_eval'); pointer(SEE_malloc):=GetProcAddress(hlib,'SEE_malloc'); pointer(SEE_malloc_string):=GetProcAddress(hlib,'SEE_malloc_string'); pointer(SEE_malloc_finalize):=GetProcAddress(hlib,'SEE_malloc_finalize'); pointer(SEE_free):=GetProcAddress(hlib,'SEE_free'); pointer(SEE_gcollect):=GetProcAddress(hlib,'SEE_gcollect'); pointer(_SEE_malloc_debug):=GetProcAddress(hlib,'_SEE_malloc_debug'); pointer(_SEE_malloc_string_debug):=GetProcAddress(hlib,'_SEE_malloc_string_debug'); pointer(_SEE_malloc_finalize_debug):=GetProcAddress(hlib,'_SEE_malloc_finalize_debug'); pointer(_SEE_free_debug):=GetProcAddress(hlib,'_SEE_free_debug'); pointer(SEE_grow_to):=GetProcAddress(hlib,'SEE_grow_to'); pointer(_SEE_grow_to_debug):=GetProcAddress(hlib,'_SEE_grow_to_debug'); pointer(SEE_module_add):=GetProcAddress(hlib,'SEE_module_add'); pointer(SEE_no_get):=GetProcAddress(hlib,'SEE_no_get'); pointer(SEE_no_put):=GetProcAddress(hlib,'SEE_no_put'); pointer(SEE_no_canput):=GetProcAddress(hlib,'SEE_no_canput'); pointer(SEE_no_hasproperty):=GetProcAddress(hlib,'SEE_no_hasproperty'); pointer(SEE_no_delete):=GetProcAddress(hlib,'SEE_no_delete'); pointer(SEE_no_defaultvalue):=GetProcAddress(hlib,'SEE_no_defaultvalue'); pointer(SEE_no_enumerator):=GetProcAddress(hlib,'SEE_no_enumerator'); pointer(SEE_string_addch):=GetProcAddress(hlib,'SEE_string_addch'); pointer(SEE_string_append):=GetProcAddress(hlib,'SEE_string_append'); pointer(SEE_string_append_ascii):=GetProcAddress(hlib,'SEE_string_append_ascii'); pointer(SEE_string_append_int):=GetProcAddress(hlib,'SEE_string_append_int'); pointer(SEE_string_append_unicode):=GetProcAddress(hlib,'SEE_string_append_unicode'); pointer(SEE_string_fputs):=GetProcAddress(hlib,'SEE_string_fputs'); pointer(SEE_string_cmp):=GetProcAddress(hlib,'SEE_string_cmp'); pointer(SEE_string_cmp_ascii):=GetProcAddress(hlib,'SEE_string_cmp_ascii'); pointer(SEE_string_new):=GetProcAddress(hlib,'SEE_string_new'); pointer(SEE_string_dup):=GetProcAddress(hlib,'SEE_string_dup'); pointer(SEE_string_substr):=GetProcAddress(hlib,'SEE_string_substr'); pointer(SEE_string_concat):=GetProcAddress(hlib,'SEE_string_concat'); pointer(SEE_string_sprintf):=GetProcAddress(hlib,'SEE_string_sprintf'); pointer(SEE_string_sprintf):=GetProcAddress(hlib,'SEE_string_sprintf'); pointer(SEE_string_literal):=GetProcAddress(hlib,'SEE_string_literal'); pointer(SEE_string_fix):=GetProcAddress(hlib,'SEE_string_fix'); pointer(SEE_string_free):=GetProcAddress(hlib,'SEE_string_free'); pointer(SEE_string_toutf8):=GetProcAddress(hlib,'SEE_string_toutf8'); pointer(SEE_string_utf8_size):=GetProcAddress(hlib,'SEE_string_utf8_size'); pointer(_SEE_string_dup_fix):=GetProcAddress(hlib,'_SEE_string_dup_fix'); pointer(SEE_init):=GetProcAddress(hlib,'SEE_init'); pointer(SEE_regex_engine_list):=GetProcAddress(hlib,'SEE_regex_engine_list'); pointer(SEE_regex_engine):=GetProcAddress(hlib,'SEE_regex_engine'); pointer(SEE_throw_abort):=GetProcAddress(hlib,'SEE_throw_abort'); pointer(SEE_location_string):=GetProcAddress(hlib,'SEE_location_string'); pointer(SEE_throw):=GetProcAddress(hlib,'SEE_throw'); pointer(SEE_version):=GetProcAddress(hlib,'SEE_version'); end; initialization try Loadlibsee(LibSeeLibraryName); except // Ignore errors. end; finalization Freelibsee; end.