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>
280 lines
12 KiB
C
280 lines
12 KiB
C
/*
|
|
* Harbour 3.2.0dev (r2510040809)
|
|
* GNU C 13.3 (64-bit)
|
|
* Generated C source from "test/test_parser2.prg"
|
|
*/
|
|
|
|
#include "hbvmpub.h"
|
|
#include "hbinit.h"
|
|
|
|
|
|
HB_FUNC( MAIN );
|
|
HB_FUNC_EXTERN( FERASE );
|
|
HB_FUNC_EXTERN( DBCREATE );
|
|
HB_FUNC_EXTERN( DBUSEAREA );
|
|
HB_FUNC_EXTERN( DBAPPEND );
|
|
HB_FUNC_EXTERN( FIELDPUT );
|
|
HB_FUNC_EXTERN( DBCOMMIT );
|
|
HB_FUNC_EXTERN( DBCLOSEALL );
|
|
HB_FUNC_EXTERN( DBSELECTAREA );
|
|
HB_FUNC_EXTERN( __SETFORMAT );
|
|
HB_FUNC_EXTERN( QOUT );
|
|
HB_FUNC_EXTERN( FIVE_SQL );
|
|
HB_FUNC_EXTERN( VALTYPE );
|
|
HB_FUNC_EXTERN( LEN );
|
|
HB_FUNC_EXTERN( HB_NTOS );
|
|
|
|
|
|
HB_INIT_SYMBOLS_BEGIN( hb_vm_SymbolInit_TEST_PARSER2 )
|
|
{ "MAIN", {HB_FS_PUBLIC | HB_FS_FIRST | HB_FS_LOCAL}, {HB_FUNCNAME( MAIN )}, NULL },
|
|
{ "FERASE", {HB_FS_PUBLIC}, {HB_FUNCNAME( FERASE )}, NULL },
|
|
{ "DBCREATE", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBCREATE )}, NULL },
|
|
{ "DBUSEAREA", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBUSEAREA )}, NULL },
|
|
{ "DBAPPEND", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBAPPEND )}, NULL },
|
|
{ "FIELDPUT", {HB_FS_PUBLIC}, {HB_FUNCNAME( FIELDPUT )}, NULL },
|
|
{ "DBCOMMIT", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBCOMMIT )}, NULL },
|
|
{ "DBCLOSEALL", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBCLOSEALL )}, NULL },
|
|
{ "DBSELECTAREA", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBSELECTAREA )}, NULL },
|
|
{ "__SETFORMAT", {HB_FS_PUBLIC}, {HB_FUNCNAME( __SETFORMAT )}, NULL },
|
|
{ "QOUT", {HB_FS_PUBLIC}, {HB_FUNCNAME( QOUT )}, NULL },
|
|
{ "FIVE_SQL", {HB_FS_PUBLIC}, {HB_FUNCNAME( FIVE_SQL )}, NULL },
|
|
{ "VALTYPE", {HB_FS_PUBLIC}, {HB_FUNCNAME( VALTYPE )}, NULL },
|
|
{ "LEN", {HB_FS_PUBLIC}, {HB_FUNCNAME( LEN )}, NULL },
|
|
{ "HB_NTOS", {HB_FS_PUBLIC}, {HB_FUNCNAME( HB_NTOS )}, NULL }
|
|
HB_INIT_SYMBOLS_EX_END( hb_vm_SymbolInit_TEST_PARSER2, "test/test_parser2.prg", 0x0, 0x0003 )
|
|
|
|
#if defined( HB_PRAGMA_STARTUP )
|
|
#pragma startup hb_vm_SymbolInit_TEST_PARSER2
|
|
#elif defined( HB_DATASEG_STARTUP )
|
|
#define HB_DATASEG_BODY HB_DATASEG_FUNC( hb_vm_SymbolInit_TEST_PARSER2 )
|
|
#include "hbiniseg.h"
|
|
#endif
|
|
|
|
HB_FUNC( MAIN )
|
|
{
|
|
static const HB_BYTE pcode[] =
|
|
{
|
|
13,3,0,36,6,0,121,80,2,121,80,3,36,8,
|
|
0,176,1,0,106,14,101,109,112,108,111,121,101,101,
|
|
115,46,100,98,102,0,20,1,176,1,0,106,11,111,
|
|
114,100,101,114,115,46,100,98,102,0,20,1,36,9,
|
|
0,176,2,0,106,14,101,109,112,108,111,121,101,101,
|
|
115,46,100,98,102,0,106,3,73,68,0,106,2,78,
|
|
0,92,10,121,4,4,0,106,5,78,65,77,69,0,
|
|
106,2,67,0,92,30,121,4,4,0,106,5,68,69,
|
|
80,84,0,106,2,67,0,92,20,121,4,4,0,106,
|
|
7,83,65,76,65,82,89,0,106,2,78,0,92,12,
|
|
92,2,4,4,0,106,7,77,71,82,95,73,68,0,
|
|
106,2,78,0,92,10,121,4,4,0,4,5,0,20,
|
|
2,36,10,0,176,3,0,120,100,106,14,101,109,112,
|
|
108,111,121,101,101,115,46,100,98,102,0,100,9,9,
|
|
20,6,36,11,0,176,4,0,20,0,176,5,0,122,
|
|
122,20,2,176,5,0,92,2,106,6,65,108,105,99,
|
|
101,0,20,2,176,5,0,92,3,106,12,69,110,103,
|
|
105,110,101,101,114,105,110,103,0,20,2,176,5,0,
|
|
92,4,93,64,31,20,2,176,5,0,92,5,121,20,
|
|
2,36,12,0,176,4,0,20,0,176,5,0,122,92,
|
|
2,20,2,176,5,0,92,2,106,4,66,111,98,0,
|
|
20,2,176,5,0,92,3,106,12,69,110,103,105,110,
|
|
101,101,114,105,110,103,0,20,2,176,5,0,92,4,
|
|
93,88,27,20,2,176,5,0,92,5,122,20,2,36,
|
|
13,0,176,4,0,20,0,176,5,0,122,92,3,20,
|
|
2,176,5,0,92,2,106,8,67,104,97,114,108,105,
|
|
101,0,20,2,176,5,0,92,3,106,12,69,110,103,
|
|
105,110,101,101,114,105,110,103,0,20,2,176,5,0,
|
|
92,4,93,112,23,20,2,176,5,0,92,5,122,20,
|
|
2,36,14,0,176,4,0,20,0,176,5,0,122,92,
|
|
4,20,2,176,5,0,92,2,106,6,68,105,97,110,
|
|
97,0,20,2,176,5,0,92,3,106,6,83,97,108,
|
|
101,115,0,20,2,176,5,0,92,4,93,76,29,20,
|
|
2,176,5,0,92,5,121,20,2,36,15,0,176,4,
|
|
0,20,0,176,5,0,122,92,5,20,2,176,5,0,
|
|
92,2,106,4,69,118,101,0,20,2,176,5,0,92,
|
|
3,106,6,83,97,108,101,115,0,20,2,176,5,0,
|
|
92,4,93,136,19,20,2,176,5,0,92,5,92,4,
|
|
20,2,36,16,0,176,6,0,20,0,176,7,0,20,
|
|
0,176,8,0,106,2,49,0,20,1,176,9,0,100,
|
|
20,1,36,17,0,176,2,0,106,11,111,114,100,101,
|
|
114,115,46,100,98,102,0,106,3,73,68,0,106,2,
|
|
78,0,92,10,121,4,4,0,106,7,69,77,80,95,
|
|
73,68,0,106,2,78,0,92,10,121,4,4,0,106,
|
|
8,80,82,79,68,85,67,84,0,106,2,67,0,92,
|
|
30,121,4,4,0,106,7,65,77,79,85,78,84,0,
|
|
106,2,78,0,92,12,92,2,4,4,0,4,4,0,
|
|
20,2,36,18,0,176,3,0,120,100,106,11,111,114,
|
|
100,101,114,115,46,100,98,102,0,100,9,9,20,6,
|
|
36,19,0,176,4,0,20,0,176,5,0,122,122,20,
|
|
2,176,5,0,92,2,122,20,2,176,5,0,92,3,
|
|
106,7,76,97,112,116,111,112,0,20,2,176,5,0,
|
|
92,4,93,196,9,20,2,36,20,0,176,4,0,20,
|
|
0,176,5,0,122,92,2,20,2,176,5,0,92,2,
|
|
122,20,2,176,5,0,92,3,106,8,77,111,110,105,
|
|
116,111,114,0,20,2,176,5,0,92,4,93,32,3,
|
|
20,2,36,21,0,176,4,0,20,0,176,5,0,122,
|
|
92,3,20,2,176,5,0,92,2,92,4,20,2,176,
|
|
5,0,92,3,106,8,80,114,105,110,116,101,114,0,
|
|
20,2,176,5,0,92,4,93,176,4,20,2,36,22,
|
|
0,176,6,0,20,0,176,7,0,20,0,176,8,0,
|
|
106,2,49,0,20,1,176,9,0,100,20,1,36,24,
|
|
0,176,10,0,106,25,61,61,61,32,84,83,113,108,
|
|
80,97,114,115,101,114,50,32,84,101,115,116,32,61,
|
|
61,61,0,20,1,36,25,0,176,10,0,20,0,36,
|
|
28,0,176,11,0,106,55,83,69,76,69,67,84,32,
|
|
110,97,109,101,44,32,115,97,108,97,114,121,32,70,
|
|
82,79,77,32,101,109,112,108,111,121,101,101,115,32,
|
|
87,72,69,82,69,32,115,97,108,97,114,121,32,62,
|
|
32,54,48,48,48,0,12,1,80,1,36,29,0,176,
|
|
12,0,95,1,12,1,106,2,65,0,8,28,65,176,
|
|
13,0,95,1,12,1,92,2,16,28,53,176,13,0,
|
|
95,1,92,2,1,12,1,92,3,16,28,38,174,2,
|
|
0,176,10,0,106,24,32,32,80,65,83,83,58,32,
|
|
49,32,83,105,109,112,108,101,32,83,69,76,69,67,
|
|
84,0,20,1,25,22,174,3,0,176,10,0,106,10,
|
|
32,32,70,65,73,76,58,32,49,0,20,1,36,30,
|
|
0,176,7,0,20,0,36,33,0,176,11,0,106,75,
|
|
83,69,76,69,67,84,32,101,46,110,97,109,101,44,
|
|
32,111,46,112,114,111,100,117,99,116,32,70,82,79,
|
|
77,32,101,109,112,108,111,121,101,101,115,32,101,32,
|
|
74,79,73,78,32,111,114,100,101,114,115,32,111,32,
|
|
79,78,32,101,46,105,100,32,61,32,111,46,101,109,
|
|
112,95,105,100,0,12,1,80,1,36,34,0,176,12,
|
|
0,95,1,12,1,106,2,65,0,8,28,56,176,13,
|
|
0,95,1,12,1,92,2,16,28,44,176,13,0,95,
|
|
1,92,2,1,12,1,92,2,16,28,29,174,2,0,
|
|
176,10,0,106,15,32,32,80,65,83,83,58,32,50,
|
|
32,74,79,73,78,0,20,1,25,22,174,3,0,176,
|
|
10,0,106,10,32,32,70,65,73,76,58,32,50,0,
|
|
20,1,36,35,0,176,7,0,20,0,36,38,0,176,
|
|
11,0,106,58,83,69,76,69,67,84,32,100,101,112,
|
|
116,44,32,67,79,85,78,84,40,42,41,32,65,83,
|
|
32,99,110,116,32,70,82,79,77,32,101,109,112,108,
|
|
111,121,101,101,115,32,71,82,79,85,80,32,66,89,
|
|
32,100,101,112,116,0,12,1,80,1,36,39,0,176,
|
|
12,0,95,1,12,1,106,2,65,0,8,28,60,176,
|
|
13,0,95,1,12,1,92,2,16,28,48,176,13,0,
|
|
95,1,92,2,1,12,1,92,2,16,28,33,174,2,
|
|
0,176,10,0,106,19,32,32,80,65,83,83,58,32,
|
|
51,32,71,82,79,85,80,32,66,89,0,20,1,25,
|
|
22,174,3,0,176,10,0,106,10,32,32,70,65,73,
|
|
76,58,32,51,0,20,1,36,40,0,176,7,0,20,
|
|
0,36,43,0,176,11,0,106,67,83,69,76,69,67,
|
|
84,32,110,97,109,101,32,70,82,79,77,32,101,109,
|
|
112,108,111,121,101,101,115,32,87,72,69,82,69,32,
|
|
105,100,32,73,78,32,40,83,69,76,69,67,84,32,
|
|
101,109,112,95,105,100,32,70,82,79,77,32,111,114,
|
|
100,101,114,115,41,0,12,1,80,1,36,44,0,176,
|
|
12,0,95,1,12,1,106,2,65,0,8,28,59,176,
|
|
13,0,95,1,12,1,92,2,16,28,47,176,13,0,
|
|
95,1,92,2,1,12,1,122,16,28,33,174,2,0,
|
|
176,10,0,106,19,32,32,80,65,83,83,58,32,52,
|
|
32,83,117,98,113,117,101,114,121,0,20,1,25,22,
|
|
174,3,0,176,10,0,106,10,32,32,70,65,73,76,
|
|
58,32,52,0,20,1,36,45,0,176,7,0,20,0,
|
|
36,48,0,176,11,0,106,91,87,73,84,72,32,116,
|
|
111,112,95,101,32,65,83,32,40,83,69,76,69,67,
|
|
84,32,110,97,109,101,44,32,115,97,108,97,114,121,
|
|
32,70,82,79,77,32,101,109,112,108,111,121,101,101,
|
|
115,32,87,72,69,82,69,32,115,97,108,97,114,121,
|
|
32,62,32,54,48,48,48,41,32,83,69,76,69,67,
|
|
84,32,42,32,70,82,79,77,32,116,111,112,95,101,
|
|
0,12,1,80,1,36,49,0,176,12,0,95,1,12,
|
|
1,106,2,65,0,8,28,55,176,13,0,95,1,12,
|
|
1,92,2,16,28,43,176,13,0,95,1,92,2,1,
|
|
12,1,92,3,16,28,28,174,2,0,176,10,0,106,
|
|
14,32,32,80,65,83,83,58,32,53,32,67,84,69,
|
|
0,20,1,25,22,174,3,0,176,10,0,106,10,32,
|
|
32,70,65,73,76,58,32,53,0,20,1,36,50,0,
|
|
176,7,0,20,0,36,53,0,176,11,0,106,99,87,
|
|
73,84,72,32,82,69,67,85,82,83,73,86,69,32,
|
|
110,117,109,115,32,65,83,32,40,83,69,76,69,67,
|
|
84,32,49,32,65,83,32,110,32,85,78,73,79,78,
|
|
32,65,76,76,32,83,69,76,69,67,84,32,110,43,
|
|
49,32,70,82,79,77,32,110,117,109,115,32,87,72,
|
|
69,82,69,32,110,60,53,41,32,83,69,76,69,67,
|
|
84,32,42,32,70,82,79,77,32,110,117,109,115,0,
|
|
12,1,80,1,36,54,0,176,12,0,95,1,12,1,
|
|
106,2,65,0,8,28,65,176,13,0,95,1,12,1,
|
|
92,2,16,28,53,176,13,0,95,1,92,2,1,12,
|
|
1,92,5,8,28,38,174,2,0,176,10,0,106,24,
|
|
32,32,80,65,83,83,58,32,54,32,82,101,99,117,
|
|
114,115,105,118,101,32,67,84,69,0,20,1,25,22,
|
|
174,3,0,176,10,0,106,10,32,32,70,65,73,76,
|
|
58,32,54,0,20,1,36,55,0,176,7,0,20,0,
|
|
36,58,0,176,11,0,106,83,83,69,76,69,67,84,
|
|
32,110,97,109,101,44,32,115,97,108,97,114,121,44,
|
|
32,82,79,87,95,78,85,77,66,69,82,40,41,32,
|
|
79,86,69,82,32,40,79,82,68,69,82,32,66,89,
|
|
32,115,97,108,97,114,121,32,68,69,83,67,41,32,
|
|
65,83,32,114,110,32,70,82,79,77,32,101,109,112,
|
|
108,111,121,101,101,115,0,12,1,80,1,36,59,0,
|
|
176,12,0,95,1,12,1,106,2,65,0,8,28,69,
|
|
176,13,0,95,1,12,1,92,2,16,28,57,176,13,
|
|
0,95,1,92,2,1,12,1,92,5,8,28,42,174,
|
|
2,0,176,10,0,106,28,32,32,80,65,83,83,58,
|
|
32,55,32,87,105,110,100,111,119,32,82,79,87,95,
|
|
78,85,77,66,69,82,0,20,1,25,22,174,3,0,
|
|
176,10,0,106,10,32,32,70,65,73,76,58,32,55,
|
|
0,20,1,36,60,0,176,7,0,20,0,36,63,0,
|
|
176,11,0,106,90,73,78,83,69,82,84,32,73,78,
|
|
84,79,32,101,109,112,108,111,121,101,101,115,32,40,
|
|
105,100,44,32,110,97,109,101,44,32,100,101,112,116,
|
|
44,32,115,97,108,97,114,121,44,32,109,103,114,95,
|
|
105,100,41,32,86,65,76,85,69,83,32,40,57,57,
|
|
44,32,39,84,101,115,116,39,44,32,39,81,65,39,
|
|
44,32,53,48,48,48,44,32,48,41,0,12,1,80,
|
|
1,36,64,0,174,2,0,176,10,0,106,17,32,32,
|
|
80,65,83,83,58,32,56,32,73,78,83,69,82,84,
|
|
0,20,1,36,65,0,176,7,0,20,0,36,68,0,
|
|
176,11,0,106,48,85,80,68,65,84,69,32,101,109,
|
|
112,108,111,121,101,101,115,32,83,69,84,32,115,97,
|
|
108,97,114,121,32,61,32,57,57,57,57,32,87,72,
|
|
69,82,69,32,105,100,32,61,32,49,0,12,1,80,
|
|
1,36,69,0,174,2,0,176,10,0,106,17,32,32,
|
|
80,65,83,83,58,32,57,32,85,80,68,65,84,69,
|
|
0,20,1,36,70,0,176,7,0,20,0,36,73,0,
|
|
176,11,0,106,207,87,73,84,72,32,82,69,67,85,
|
|
82,83,73,86,69,32,111,114,103,32,65,83,32,40,
|
|
83,69,76,69,67,84,32,105,100,44,32,110,97,109,
|
|
101,44,32,49,32,65,83,32,108,118,108,32,70,82,
|
|
79,77,32,101,109,112,108,111,121,101,101,115,32,87,
|
|
72,69,82,69,32,109,103,114,95,105,100,32,61,32,
|
|
48,32,85,78,73,79,78,32,65,76,76,32,83,69,
|
|
76,69,67,84,32,101,46,105,100,44,32,101,46,110,
|
|
97,109,101,44,32,111,46,108,118,108,43,49,32,70,
|
|
82,79,77,32,101,109,112,108,111,121,101,101,115,32,
|
|
101,32,74,79,73,78,32,111,114,103,32,111,32,79,
|
|
78,32,101,46,109,103,114,95,105,100,32,61,32,111,
|
|
46,105,100,41,32,83,69,76,69,67,84,32,110,97,
|
|
109,101,44,32,108,118,108,32,70,82,79,77,32,111,
|
|
114,103,32,79,82,68,69,82,32,66,89,32,108,118,
|
|
108,0,12,1,80,1,36,74,0,176,12,0,95,1,
|
|
12,1,106,2,65,0,8,28,67,176,13,0,95,1,
|
|
12,1,92,2,16,28,55,176,13,0,95,1,92,2,
|
|
1,12,1,92,5,16,28,40,174,2,0,176,10,0,
|
|
106,26,32,32,80,65,83,83,58,32,49,48,32,82,
|
|
101,99,117,114,115,105,118,101,43,74,79,73,78,0,
|
|
20,1,25,80,174,3,0,176,10,0,106,18,32,32,
|
|
70,65,73,76,58,32,49,48,32,40,114,111,119,115,
|
|
61,0,176,14,0,176,12,0,95,1,12,1,106,2,
|
|
65,0,8,28,26,176,13,0,95,1,12,1,92,2,
|
|
16,28,14,176,13,0,95,1,92,2,1,12,1,25,
|
|
3,121,12,1,72,106,2,41,0,72,20,1,36,75,
|
|
0,176,7,0,20,0,36,77,0,176,10,0,20,0,
|
|
36,78,0,176,10,0,106,9,32,32,80,97,115,115,
|
|
58,32,0,176,14,0,95,2,12,1,72,106,2,47,
|
|
0,72,176,14,0,95,2,95,3,72,12,1,72,20,
|
|
1,36,79,0,176,1,0,106,14,101,109,112,108,111,
|
|
121,101,101,115,46,100,98,102,0,20,1,176,1,0,
|
|
106,11,111,114,100,101,114,115,46,100,98,102,0,20,
|
|
1,36,80,0,176,1,0,106,16,95,95,99,116,101,
|
|
95,116,111,112,95,101,46,100,98,102,0,20,1,176,
|
|
1,0,106,15,95,95,99,116,101,95,110,117,109,115,
|
|
46,100,98,102,0,20,1,176,1,0,106,14,95,95,
|
|
99,116,101,95,111,114,103,46,100,98,102,0,20,1,
|
|
36,81,0,7
|
|
};
|
|
|
|
hb_vmExecute( pcode, symbols );
|
|
}
|
|
|