Files
five/_FiveSql2/bin/.hbmk/linux/gcc/TFiveSQL.c
Charles KWON OhJun 486e466592 feat: FiveSql2 43/43, @byref, mutable closure, RTL 479, DateTime fix
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>
2026-04-11 11:35:37 +09:00

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 );
}