Major changes since last commit: - FiveSql2 SQL:1999 engine (10,458 LOC) — 43/43 ALL PASS - 21 compiler/runtime bugs fixed (short-circuit AND/OR, FOR LOOP, etc.) - @byref pass-by-reference via RefCell pattern - Mutable closure capture (EnsureLocalRef + RefCell sharing) - RTL: 400 → 479 functions (+79: file, string, datetime, hash, UTF-8) - DateTime/Timestamp fully working (hb_DateTime, hb_Hour/Min/Sec, display) - Reserved word guard (39 keywords blocked from function calls) - AEval arg order fix (element before index) - Closure capture redecl fix (unique _cap_ names per block) - Hash/string indexing in ArrayPush/ArrayPop - Harbour compat test suite: 51/51 - 4 docs: Porting Report, Implementation Plan, Optimization Plan, Commercialization Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
162 lines
5.5 KiB
C
162 lines
5.5 KiB
C
/*
|
|
* Harbour 3.2.0dev (r2510040809)
|
|
* GNU C 13.3 (64-bit)
|
|
* Generated C source from "src/TFiveSQL.prg"
|
|
*/
|
|
|
|
#include "hbvmpub.h"
|
|
#include "hbinit.h"
|
|
|
|
|
|
HB_FUNC( TFIVESQL );
|
|
HB_FUNC_EXTERN( __CLSLOCKDEF );
|
|
HB_FUNC_EXTERN( HBCLASS );
|
|
HB_FUNC_EXTERN( HBOBJECT );
|
|
HB_FUNC_STATIC( TFIVESQL_NEW );
|
|
HB_FUNC_STATIC( TFIVESQL_EXECUTE );
|
|
HB_FUNC_STATIC( TFIVESQL_EXECUTEWITH );
|
|
HB_FUNC_EXTERN( __CLSUNLOCKDEF );
|
|
HB_FUNC_EXTERN( __OBJHASMSG );
|
|
HB_FUNC_EXTERN( TSQLLEXER );
|
|
HB_FUNC_EXTERN( TSQLPARSER2 );
|
|
HB_FUNC_EXTERN( TSQLEXECUTOR );
|
|
HB_FUNC_INITSTATICS();
|
|
|
|
|
|
HB_INIT_SYMBOLS_BEGIN( hb_vm_SymbolInit_TFIVESQL )
|
|
{ "TFIVESQL", {HB_FS_PUBLIC | HB_FS_FIRST | HB_FS_LOCAL}, {HB_FUNCNAME( TFIVESQL )}, NULL },
|
|
{ "__CLSLOCKDEF", {HB_FS_PUBLIC}, {HB_FUNCNAME( __CLSLOCKDEF )}, NULL },
|
|
{ "NEW", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "HBCLASS", {HB_FS_PUBLIC}, {HB_FUNCNAME( HBCLASS )}, NULL },
|
|
{ "HBOBJECT", {HB_FS_PUBLIC}, {HB_FUNCNAME( HBOBJECT )}, NULL },
|
|
{ "ADDMULTIDATA", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "ADDMETHOD", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "TFIVESQL_NEW", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TFIVESQL_NEW )}, NULL },
|
|
{ "TFIVESQL_EXECUTE", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TFIVESQL_EXECUTE )}, NULL },
|
|
{ "TFIVESQL_EXECUTEWITH", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TFIVESQL_EXECUTEWITH )}, NULL },
|
|
{ "CREATE", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "__CLSUNLOCKDEF", {HB_FS_PUBLIC}, {HB_FUNCNAME( __CLSUNLOCKDEF )}, NULL },
|
|
{ "INSTANCE", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "__OBJHASMSG", {HB_FS_PUBLIC}, {HB_FUNCNAME( __OBJHASMSG )}, NULL },
|
|
{ "INITCLASS", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "_APARAMS", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "_OLEXER", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "TSQLLEXER", {HB_FS_PUBLIC}, {HB_FUNCNAME( TSQLLEXER )}, NULL },
|
|
{ "TOKENIZE", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "OLEXER", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "GETTOKENS", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "_OPARSER", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "TSQLPARSER2", {HB_FS_PUBLIC}, {HB_FUNCNAME( TSQLPARSER2 )}, NULL },
|
|
{ "APARAMS", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "PARSE", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "OPARSER", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "_OEXEC", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "TSQLEXECUTOR", {HB_FS_PUBLIC}, {HB_FUNCNAME( TSQLEXECUTOR )}, NULL },
|
|
{ "RUN", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "OEXEC", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "EXECUTE", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "(_INITSTATICS00001)", {HB_FS_INITEXIT | HB_FS_LOCAL}, {hb_INITSTATICS}, NULL }
|
|
HB_INIT_SYMBOLS_EX_END( hb_vm_SymbolInit_TFIVESQL, "src/TFiveSQL.prg", 0x0, 0x0003 )
|
|
|
|
#if defined( HB_PRAGMA_STARTUP )
|
|
#pragma startup hb_vm_SymbolInit_TFIVESQL
|
|
#elif defined( HB_DATASEG_STARTUP )
|
|
#define HB_DATASEG_BODY HB_DATASEG_FUNC( hb_vm_SymbolInit_TFIVESQL )
|
|
#include "hbiniseg.h"
|
|
#endif
|
|
|
|
HB_FUNC( TFIVESQL )
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
149,3,0,116,31,0,36,17,0,103,1,0,100,8,
|
|
29,98,1,176,1,0,104,1,0,12,1,29,87,1,
|
|
166,25,1,0,122,80,1,48,2,0,176,3,0,12,
|
|
0,106,9,84,70,105,118,101,83,81,76,0,108,4,
|
|
4,1,0,108,0,112,3,80,2,36,19,0,48,5,
|
|
0,95,2,100,100,95,1,121,72,121,72,121,72,106,
|
|
7,111,76,101,120,101,114,0,4,1,0,9,112,5,
|
|
73,36,20,0,48,5,0,95,2,100,100,95,1,121,
|
|
72,121,72,121,72,106,8,111,80,97,114,115,101,114,
|
|
0,4,1,0,9,112,5,73,36,21,0,48,5,0,
|
|
95,2,100,100,95,1,121,72,121,72,121,72,106,6,
|
|
111,69,120,101,99,0,4,1,0,9,112,5,73,36,
|
|
22,0,48,5,0,95,2,100,4,0,0,95,1,121,
|
|
72,121,72,121,72,106,8,97,80,97,114,97,109,115,
|
|
0,4,1,0,9,112,5,73,36,24,0,48,6,0,
|
|
95,2,106,4,78,101,119,0,108,7,95,1,92,8,
|
|
72,121,72,121,72,112,3,73,36,25,0,48,6,0,
|
|
95,2,106,8,69,120,101,99,117,116,101,0,108,8,
|
|
95,1,121,72,121,72,121,72,112,3,73,36,26,0,
|
|
48,6,0,95,2,106,12,69,120,101,99,117,116,101,
|
|
87,105,116,104,0,108,9,95,1,121,72,121,72,121,
|
|
72,112,3,73,36,28,0,48,10,0,95,2,112,0,
|
|
73,167,14,0,0,176,11,0,104,1,0,95,2,20,
|
|
2,168,48,12,0,95,2,112,0,80,3,176,13,0,
|
|
95,3,106,10,73,110,105,116,67,108,97,115,115,0,
|
|
12,2,28,12,48,14,0,95,3,164,146,1,0,73,
|
|
95,3,110,7,48,12,0,103,1,0,112,0,110,7
|
|
};
|
|
|
|
hb_vmExecute( pcode, symbols );
|
|
}
|
|
|
|
HB_FUNC_STATIC( TFIVESQL_NEW )
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
13,0,1,36,33,0,95,1,100,69,28,14,36,34,
|
|
0,48,15,0,102,95,1,112,1,73,36,37,0,102,
|
|
110,7
|
|
};
|
|
|
|
hb_vmExecute( pcode, symbols );
|
|
}
|
|
|
|
HB_FUNC_STATIC( TFIVESQL_EXECUTE )
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
13,3,1,36,44,0,48,16,0,102,48,2,0,176,
|
|
17,0,12,0,95,1,112,1,112,1,73,36,45,0,
|
|
48,18,0,48,19,0,102,112,0,112,0,73,36,46,
|
|
0,48,20,0,48,19,0,102,112,0,112,0,80,2,
|
|
36,48,0,48,21,0,102,48,2,0,176,22,0,12,
|
|
0,95,2,48,23,0,102,112,0,112,2,112,1,73,
|
|
36,49,0,48,24,0,48,25,0,102,112,0,112,0,
|
|
80,3,36,51,0,95,3,100,8,28,58,36,52,0,
|
|
106,10,95,95,101,114,114,111,114,95,95,0,4,1,
|
|
0,93,233,3,106,20,70,97,105,108,101,100,32,116,
|
|
111,32,112,97,114,115,101,32,83,81,76,0,95,1,
|
|
4,3,0,4,1,0,4,2,0,110,7,36,55,0,
|
|
48,26,0,102,48,2,0,176,27,0,12,0,95,3,
|
|
48,23,0,102,112,0,112,2,112,1,73,36,56,0,
|
|
48,28,0,48,29,0,102,112,0,112,0,80,4,36,
|
|
58,0,95,4,110,7
|
|
};
|
|
|
|
hb_vmExecute( pcode, symbols );
|
|
}
|
|
|
|
HB_FUNC_STATIC( TFIVESQL_EXECUTEWITH )
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
13,0,2,36,63,0,48,15,0,102,95,2,112,1,
|
|
73,36,65,0,48,30,0,102,95,1,112,1,110,7
|
|
};
|
|
|
|
hb_vmExecute( pcode, symbols );
|
|
}
|
|
|
|
HB_FUNC_INITSTATICS()
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
117,31,0,1,0,7
|
|
};
|
|
|
|
hb_vmExecute( pcode, symbols );
|
|
}
|
|
|