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>
276 lines
10 KiB
C
276 lines
10 KiB
C
/*
|
|
* Harbour 3.2.0dev (r2510040809)
|
|
* GNU C 13.3 (64-bit)
|
|
* Generated C source from "src/TSqlLexer.prg"
|
|
*/
|
|
|
|
#include "hbvmpub.h"
|
|
#include "hbinit.h"
|
|
|
|
|
|
HB_FUNC( TSQLLEXER );
|
|
HB_FUNC_EXTERN( __CLSLOCKDEF );
|
|
HB_FUNC_EXTERN( HBCLASS );
|
|
HB_FUNC_EXTERN( HBOBJECT );
|
|
HB_FUNC_STATIC( TSQLLEXER_NEW );
|
|
HB_FUNC_STATIC( TSQLLEXER_TOKENIZE );
|
|
HB_FUNC_STATIC( TSQLLEXER_GETTOKENS );
|
|
HB_FUNC_EXTERN( __CLSUNLOCKDEF );
|
|
HB_FUNC_EXTERN( __OBJHASMSG );
|
|
HB_FUNC_EXTERN( LEN );
|
|
HB_FUNC_EXTERN( SUBSTR );
|
|
HB_FUNC_EXTERN( AADD );
|
|
HB_FUNC_EXTERN( ISALPHA );
|
|
HB_FUNC_EXTERN( ISDIGIT );
|
|
HB_FUNC_EXTERN( UPPER );
|
|
HB_FUNC_INITSTATICS();
|
|
|
|
|
|
HB_INIT_SYMBOLS_BEGIN( hb_vm_SymbolInit_TSQLLEXER )
|
|
{ "TSQLLEXER", {HB_FS_PUBLIC | HB_FS_FIRST | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLLEXER )}, 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 },
|
|
{ "TSQLLEXER_NEW", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLLEXER_NEW )}, NULL },
|
|
{ "TSQLLEXER_TOKENIZE", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLLEXER_TOKENIZE )}, NULL },
|
|
{ "TSQLLEXER_GETTOKENS", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLLEXER_GETTOKENS )}, 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 },
|
|
{ "_CINPUT", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "_ATOKENS", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "_NLEN", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "LEN", {HB_FS_PUBLIC}, {HB_FUNCNAME( LEN )}, NULL },
|
|
{ "ATOKENS", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "NLEN", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "SUBSTR", {HB_FS_PUBLIC}, {HB_FUNCNAME( SUBSTR )}, NULL },
|
|
{ "CINPUT", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
|
|
{ "AADD", {HB_FS_PUBLIC}, {HB_FUNCNAME( AADD )}, NULL },
|
|
{ "ISALPHA", {HB_FS_PUBLIC}, {HB_FUNCNAME( ISALPHA )}, NULL },
|
|
{ "ISDIGIT", {HB_FS_PUBLIC}, {HB_FUNCNAME( ISDIGIT )}, NULL },
|
|
{ "UPPER", {HB_FS_PUBLIC}, {HB_FUNCNAME( UPPER )}, NULL },
|
|
{ "(_INITSTATICS00001)", {HB_FS_INITEXIT | HB_FS_LOCAL}, {hb_INITSTATICS}, NULL }
|
|
HB_INIT_SYMBOLS_EX_END( hb_vm_SymbolInit_TSQLLEXER, "src/TSqlLexer.prg", 0x0, 0x0003 )
|
|
|
|
#if defined( HB_PRAGMA_STARTUP )
|
|
#pragma startup hb_vm_SymbolInit_TSQLLEXER
|
|
#elif defined( HB_DATASEG_STARTUP )
|
|
#define HB_DATASEG_BODY HB_DATASEG_FUNC( hb_vm_SymbolInit_TSQLLEXER )
|
|
#include "hbiniseg.h"
|
|
#endif
|
|
|
|
HB_FUNC( TSQLLEXER )
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
149,3,0,116,27,0,36,15,0,103,1,0,100,8,
|
|
29,60,1,176,1,0,104,1,0,12,1,29,49,1,
|
|
166,243,0,0,122,80,1,48,2,0,176,3,0,12,
|
|
0,106,10,84,83,113,108,76,101,120,101,114,0,108,
|
|
4,4,1,0,108,0,112,3,80,2,36,17,0,48,
|
|
5,0,95,2,100,100,95,1,121,72,121,72,121,72,
|
|
106,7,99,73,110,112,117,116,0,4,1,0,9,112,
|
|
5,73,36,18,0,48,5,0,95,2,100,100,95,1,
|
|
121,72,121,72,121,72,106,8,97,84,111,107,101,110,
|
|
115,0,4,1,0,9,112,5,73,36,19,0,48,5,
|
|
0,95,2,100,100,95,1,121,72,121,72,121,72,106,
|
|
5,110,76,101,110,0,4,1,0,9,112,5,73,36,
|
|
21,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,
|
|
22,0,48,6,0,95,2,106,9,84,111,107,101,110,
|
|
105,122,101,0,108,8,95,1,121,72,121,72,121,72,
|
|
112,3,73,36,23,0,48,6,0,95,2,106,10,71,
|
|
101,116,84,111,107,101,110,115,0,108,9,95,1,121,
|
|
72,121,72,121,72,112,3,73,36,25,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( TSQLLEXER_NEW )
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
13,0,1,36,29,0,48,15,0,102,95,1,112,1,
|
|
73,36,30,0,48,16,0,102,4,0,0,112,1,73,
|
|
36,31,0,48,17,0,102,176,18,0,95,1,12,1,
|
|
112,1,73,36,33,0,102,110,7
|
|
};
|
|
|
|
hb_vmExecute( pcode, symbols );
|
|
}
|
|
|
|
HB_FUNC_STATIC( TSQLLEXER_GETTOKENS )
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
36,36,0,48,19,0,102,112,0,110,7
|
|
};
|
|
|
|
hb_vmExecute( pcode, symbols );
|
|
}
|
|
|
|
HB_FUNC_STATIC( TSQLLEXER_TOKENIZE )
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
13,3,0,36,42,0,122,80,1,36,43,0,48,16,
|
|
0,102,4,0,0,112,1,73,36,45,0,95,1,48,
|
|
20,0,102,112,0,34,29,1,7,36,46,0,176,21,
|
|
0,48,22,0,102,112,0,95,1,122,12,3,80,2,
|
|
36,49,0,95,2,106,2,32,0,8,31,29,95,2,
|
|
106,2,9,0,8,31,20,95,2,106,2,10,0,8,
|
|
31,11,95,2,106,2,13,0,8,28,10,36,50,0,
|
|
174,1,0,25,177,36,55,0,95,2,106,2,45,0,
|
|
8,28,82,95,1,48,20,0,102,112,0,35,28,71,
|
|
176,21,0,48,22,0,102,112,0,95,1,122,72,122,
|
|
12,3,106,2,45,0,8,28,48,36,56,0,95,1,
|
|
48,20,0,102,112,0,34,28,31,176,21,0,48,22,
|
|
0,102,112,0,95,1,122,12,3,106,2,10,0,69,
|
|
28,10,36,57,0,174,1,0,25,215,26,86,255,36,
|
|
63,0,95,2,106,2,47,0,8,29,125,0,95,1,
|
|
48,20,0,102,112,0,35,28,113,176,21,0,48,22,
|
|
0,102,112,0,95,1,122,72,122,12,3,106,2,42,
|
|
0,8,28,90,36,64,0,126,1,2,0,36,65,0,
|
|
95,1,48,20,0,102,112,0,35,28,66,36,66,0,
|
|
176,21,0,48,22,0,102,112,0,95,1,122,12,3,
|
|
106,2,42,0,8,28,34,176,21,0,48,22,0,102,
|
|
112,0,95,1,122,72,122,12,3,106,2,47,0,8,
|
|
28,11,36,67,0,126,1,2,0,25,10,36,70,0,
|
|
174,1,0,25,180,26,207,254,36,76,0,95,2,106,
|
|
2,39,0,8,29,169,0,36,77,0,174,1,0,36,
|
|
78,0,106,1,0,80,3,36,79,0,95,1,48,20,
|
|
0,102,112,0,34,28,116,36,80,0,176,21,0,48,
|
|
22,0,102,112,0,95,1,122,12,3,80,2,36,81,
|
|
0,95,2,106,2,39,0,8,28,67,36,82,0,95,
|
|
1,48,20,0,102,112,0,35,28,45,176,21,0,48,
|
|
22,0,102,112,0,95,1,122,72,122,12,3,106,2,
|
|
39,0,8,28,22,36,83,0,96,3,0,106,2,39,
|
|
0,135,36,84,0,126,1,2,0,25,156,36,86,0,
|
|
174,1,0,25,20,36,90,0,96,3,0,95,2,135,
|
|
36,91,0,174,1,0,26,131,255,36,94,0,176,23,
|
|
0,48,19,0,102,112,0,92,2,95,3,4,2,0,
|
|
20,2,26,28,254,36,99,0,95,2,106,2,48,0,
|
|
16,29,124,0,95,2,106,2,57,0,34,28,114,36,
|
|
100,0,106,1,0,80,3,36,101,0,95,1,48,20,
|
|
0,102,112,0,34,28,68,36,102,0,176,21,0,48,
|
|
22,0,102,112,0,95,1,122,12,3,80,2,36,103,
|
|
0,95,2,106,2,48,0,16,28,11,95,2,106,2,
|
|
57,0,34,31,11,95,2,106,2,46,0,8,28,19,
|
|
36,104,0,96,3,0,95,2,135,36,105,0,174,1,
|
|
0,25,178,36,110,0,176,23,0,48,19,0,102,112,
|
|
0,92,3,95,3,4,2,0,20,2,26,150,253,36,
|
|
115,0,176,24,0,95,2,12,1,31,11,95,2,106,
|
|
2,95,0,8,28,118,36,116,0,106,1,0,80,3,
|
|
36,117,0,95,1,48,20,0,102,112,0,34,28,68,
|
|
36,118,0,176,21,0,48,22,0,102,112,0,95,1,
|
|
122,12,3,80,2,36,119,0,176,24,0,95,2,12,
|
|
1,31,20,176,25,0,95,2,12,1,31,11,95,2,
|
|
106,2,95,0,8,28,19,36,120,0,96,3,0,95,
|
|
2,135,36,121,0,174,1,0,25,178,36,126,0,176,
|
|
23,0,48,19,0,102,112,0,122,176,26,0,95,3,
|
|
12,1,4,2,0,20,2,26,13,253,36,131,0,95,
|
|
2,106,2,91,0,8,29,129,0,36,132,0,174,1,
|
|
0,36,133,0,106,1,0,80,3,36,134,0,95,1,
|
|
48,20,0,102,112,0,34,28,52,176,21,0,48,22,
|
|
0,102,112,0,95,1,122,12,3,106,2,93,0,69,
|
|
28,31,36,135,0,96,3,0,176,21,0,48,22,0,
|
|
102,112,0,95,1,122,12,3,135,36,136,0,174,1,
|
|
0,25,194,36,138,0,95,1,48,20,0,102,112,0,
|
|
34,28,8,36,139,0,174,1,0,36,141,0,176,23,
|
|
0,48,19,0,102,112,0,122,176,26,0,95,3,12,
|
|
1,4,2,0,20,2,26,130,252,36,146,0,95,2,
|
|
106,2,63,0,8,28,34,36,147,0,176,23,0,48,
|
|
19,0,102,112,0,92,15,106,2,63,0,4,2,0,
|
|
20,2,36,148,0,174,1,0,26,86,252,36,154,0,
|
|
95,2,106,2,44,0,8,28,31,36,155,0,176,23,
|
|
0,48,19,0,102,112,0,92,4,106,2,44,0,4,
|
|
2,0,20,2,174,1,0,26,45,252,36,156,0,95,
|
|
2,106,2,46,0,8,28,31,36,157,0,176,23,0,
|
|
48,19,0,102,112,0,92,5,106,2,46,0,4,2,
|
|
0,20,2,174,1,0,26,4,252,36,158,0,95,2,
|
|
106,2,42,0,8,28,31,36,159,0,176,23,0,48,
|
|
19,0,102,112,0,92,6,106,2,42,0,4,2,0,
|
|
20,2,174,1,0,26,219,251,36,160,0,95,2,106,
|
|
2,40,0,8,28,31,36,161,0,176,23,0,48,19,
|
|
0,102,112,0,92,7,106,2,40,0,4,2,0,20,
|
|
2,174,1,0,26,178,251,36,162,0,95,2,106,2,
|
|
41,0,8,28,31,36,163,0,176,23,0,48,19,0,
|
|
102,112,0,92,8,106,2,41,0,4,2,0,20,2,
|
|
174,1,0,26,137,251,36,164,0,95,2,106,2,43,
|
|
0,8,28,31,36,165,0,176,23,0,48,19,0,102,
|
|
112,0,92,16,106,2,43,0,4,2,0,20,2,174,
|
|
1,0,26,96,251,36,166,0,95,2,106,2,45,0,
|
|
8,28,31,36,167,0,176,23,0,48,19,0,102,112,
|
|
0,92,17,106,2,45,0,4,2,0,20,2,174,1,
|
|
0,26,55,251,36,168,0,95,2,106,2,47,0,8,
|
|
28,31,36,169,0,176,23,0,48,19,0,102,112,0,
|
|
92,18,106,2,47,0,4,2,0,20,2,174,1,0,
|
|
26,14,251,36,170,0,95,2,106,2,124,0,8,28,
|
|
79,36,171,0,95,1,48,20,0,102,112,0,35,28,
|
|
56,176,21,0,48,22,0,102,112,0,95,1,122,72,
|
|
122,12,3,106,2,124,0,8,28,33,36,172,0,176,
|
|
23,0,48,19,0,102,112,0,92,19,106,3,124,124,
|
|
0,4,2,0,20,2,126,1,2,0,26,190,250,36,
|
|
174,0,174,1,0,26,181,250,36,176,0,95,2,106,
|
|
2,61,0,8,28,31,36,177,0,176,23,0,48,19,
|
|
0,102,112,0,92,9,106,2,61,0,4,2,0,20,
|
|
2,174,1,0,26,140,250,36,178,0,95,2,106,2,
|
|
60,0,8,29,168,0,36,179,0,95,1,48,20,0,
|
|
102,112,0,35,28,56,176,21,0,48,22,0,102,112,
|
|
0,95,1,122,72,122,12,3,106,2,61,0,8,28,
|
|
33,36,180,0,176,23,0,48,19,0,102,112,0,92,
|
|
13,106,3,60,61,0,4,2,0,20,2,126,1,2,
|
|
0,26,59,250,36,181,0,95,1,48,20,0,102,112,
|
|
0,35,28,56,176,21,0,48,22,0,102,112,0,95,
|
|
1,122,72,122,12,3,106,2,62,0,8,28,33,36,
|
|
182,0,176,23,0,48,19,0,102,112,0,92,10,106,
|
|
3,60,62,0,4,2,0,20,2,126,1,2,0,26,
|
|
247,249,36,184,0,176,23,0,48,19,0,102,112,0,
|
|
92,11,106,2,60,0,4,2,0,20,2,174,1,0,
|
|
26,218,249,36,186,0,95,2,106,2,62,0,8,28,
|
|
99,36,187,0,95,1,48,20,0,102,112,0,35,28,
|
|
56,176,21,0,48,22,0,102,112,0,95,1,122,72,
|
|
122,12,3,106,2,61,0,8,28,33,36,188,0,176,
|
|
23,0,48,19,0,102,112,0,92,14,106,3,62,61,
|
|
0,4,2,0,20,2,126,1,2,0,26,138,249,36,
|
|
190,0,176,23,0,48,19,0,102,112,0,92,12,106,
|
|
2,62,0,4,2,0,20,2,174,1,0,26,109,249,
|
|
36,192,0,95,2,106,2,33,0,8,28,79,36,193,
|
|
0,95,1,48,20,0,102,112,0,35,28,56,176,21,
|
|
0,48,22,0,102,112,0,95,1,122,72,122,12,3,
|
|
106,2,61,0,8,28,33,36,194,0,176,23,0,48,
|
|
19,0,102,112,0,92,10,106,3,33,61,0,4,2,
|
|
0,20,2,126,1,2,0,26,29,249,36,196,0,174,
|
|
1,0,26,20,249,36,198,0,95,2,106,2,59,0,
|
|
8,28,11,36,199,0,174,1,0,26,255,248,36,201,
|
|
0,174,1,0,26,246,248,36,206,0,176,23,0,48,
|
|
19,0,102,112,0,121,106,1,0,4,2,0,20,2,
|
|
36,208,0,102,110,7
|
|
};
|
|
|
|
hb_vmExecute( pcode, symbols );
|
|
}
|
|
|
|
HB_FUNC_INITSTATICS()
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
117,27,0,1,0,7
|
|
};
|
|
|
|
hb_vmExecute( pcode, symbols );
|
|
}
|
|
|