19990824-03:50 GMT+1
This commit is contained in:
@@ -1,3 +1,26 @@
|
||||
19990824-03:50 GMT+1 Victor Szel <info@szelvesz.hu>
|
||||
* tests/working/fileio.prg
|
||||
+ Rewritten to check more functions in more situations, displaying all
|
||||
return values, etc. (almost like RTL_TEST.PRG)
|
||||
* source/compiler/harbour.y
|
||||
+ Changed spaces to tabs in the generated code. This made the
|
||||
generated code size almost 30% smaller, and the comments better aligned.
|
||||
* source/compiler/harbour.l
|
||||
include/hberrors.h
|
||||
+ One yyerror() call converted to standard GenError().
|
||||
* source/hbpp/hbppint.c
|
||||
! 'W' sign changed to 'I' for preprocessor warning.
|
||||
* config/dos/djgpp.cf
|
||||
- -( -) removed.
|
||||
* runner.b32
|
||||
! Fixes by Luiz Rafael Culik <Culik@sl.conex.net> implemented.
|
||||
* include/ctoharb.h
|
||||
+ hb_vmRequest*() functions added.
|
||||
* source/rtl/errorsys.prg
|
||||
+ BREAK uncommented.
|
||||
* include/filesys.h
|
||||
* Some name standardization (fp -> p).
|
||||
|
||||
19990823-19:37 GMT+1 Antonio Linares <alinares@fivetech.com>
|
||||
* source/rtl/tbrowse.prg
|
||||
* Added Class TbColumn DATA ColorBlock support.
|
||||
|
||||
@@ -24,7 +24,7 @@ LINKPATHS += $(foreach lib, $(LIBS), -L$(TOP)$(ROOT)source/$(lib)/$(ARCH))
|
||||
else
|
||||
LINKPATHS += -L$(HB_LIB_COMPILE)
|
||||
endif
|
||||
LINKLIBS += -Wl,-(
|
||||
# LINKLIBS += -Wl,-(
|
||||
LINKLIBS += $(foreach lib, $(LIBS), -l$(lib))
|
||||
|
||||
# If LIBS specifies the rdd library, add all DB drivers.
|
||||
@@ -33,7 +33,7 @@ LINKPATHS += $(foreach drv, $(HB_DB_DRIVERS), -L$(TOP)$(ROOT)source/rdd/$(drv)/$
|
||||
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), -l$(drv))
|
||||
endif
|
||||
|
||||
LINKLIBS += -Wl,-)
|
||||
# LINKLIBS += -Wl,-)
|
||||
LDFLAGS = $(LINKPATHS)
|
||||
|
||||
# Note: The empty line directly before 'endef' HAVE TO exist!
|
||||
|
||||
@@ -32,6 +32,8 @@
|
||||
/* Harbour virtual machine functions */
|
||||
extern void hb_vmExecute( BYTE * pCode, PHB_SYMB pSymbols ); /* invokes the virtual machine */
|
||||
extern void hb_vmProcessSymbols( PHB_SYMB pSymbols, WORD wSymbols ); /* statics symbols initialization */
|
||||
extern void hb_vmRequestQuit( void );
|
||||
extern void hb_vmRequestBreak( PHB_ITEM pItem );
|
||||
|
||||
/* PCode functions */
|
||||
extern void hb_vmAnd( void ); /* performs the logical AND on the latest two values, removes them and leaves result on the stack */
|
||||
|
||||
@@ -61,27 +61,27 @@ typedef struct
|
||||
char * szExtension;
|
||||
} HB_FNAME, * PHB_FNAME, * HB_FNAME_PTR;
|
||||
|
||||
extern BOOL hb_fsChDir ( BYTE * fpDirName );
|
||||
extern BOOL hb_fsChDir ( BYTE * pDirName );
|
||||
extern USHORT hb_fsChDrv ( BYTE * nDrive );
|
||||
extern void hb_fsClose ( FHANDLE hFileHandle );
|
||||
extern void hb_fsCommit ( FHANDLE hFileHandle );
|
||||
extern FHANDLE hb_fsCreate ( BYTE * fpFilename, USHORT uiAttribute );
|
||||
extern FHANDLE hb_fsCreate ( BYTE * pFilename, USHORT uiAttribute );
|
||||
extern BYTE * hb_fsCurDir ( USHORT uiDrive );
|
||||
extern BYTE hb_fsCurDrv ( void );
|
||||
extern void hb_fsDelete ( BYTE * fpFilename );
|
||||
extern void hb_fsDelete ( BYTE * pFilename );
|
||||
extern USHORT hb_fsError ( void );
|
||||
extern FHANDLE hb_fsExtOpen ( BYTE * fpFilename, BYTE * fpDefExt,
|
||||
USHORT uiFlags, BYTE * fpPaths, PHB_ITEM pError );
|
||||
extern FHANDLE hb_fsExtOpen ( BYTE * pFilename, BYTE * pDefExt,
|
||||
USHORT uiFlags, BYTE * pPaths, PHB_ITEM pError );
|
||||
extern USHORT hb_fsIsDrv ( BYTE nDrive );
|
||||
extern BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
|
||||
ULONG ulLength, USHORT uiMode );
|
||||
extern BOOL hb_fsMkDir ( BYTE * fpDirName );
|
||||
extern FHANDLE hb_fsOpen ( BYTE * fpFilename, USHORT uiFlags );
|
||||
extern USHORT hb_fsRead ( FHANDLE hFileHandle, BYTE * fpBuff, USHORT uiCount );
|
||||
extern BOOL hb_fsRmDir ( BYTE * fpDirName );
|
||||
extern void hb_fsRename ( BYTE * fpOldName, BYTE * fpNewName );
|
||||
extern BOOL hb_fsMkDir ( BYTE * pDirName );
|
||||
extern FHANDLE hb_fsOpen ( BYTE * pFilename, USHORT uiFlags );
|
||||
extern USHORT hb_fsRead ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount );
|
||||
extern BOOL hb_fsRmDir ( BYTE * pDirName );
|
||||
extern void hb_fsRename ( BYTE * pOldName, BYTE * pNewName );
|
||||
extern ULONG hb_fsSeek ( FHANDLE hFileHandle, LONG lOffset, USHORT uiMode );
|
||||
extern USHORT hb_fsWrite ( FHANDLE hFileHandle, BYTE * fpBuff, USHORT uiCount );
|
||||
extern USHORT hb_fsWrite ( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount );
|
||||
|
||||
extern PHB_FNAME hb_fsFNameSplit ( char * szFilename ); /* Split given filename into path, name and extension */
|
||||
extern char * hb_fsFNameMerge ( char * szFileName, PHB_FNAME pFileName ); /* This function joins path, name and extension into a string with a filename */
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
#define ERR_INVALID_REFER 23
|
||||
#define ERR_PARAMETERS_NOT_ALLOWED 24
|
||||
#define ERR_EXIT_IN_SEQUENCE 25
|
||||
#define ERR_UNTERM_ARRAY_INDEX 26
|
||||
|
||||
#define WARN_AMBIGUOUS_VAR 1
|
||||
#define WARN_MEMVAR_ASSUMED 2
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
.path.obj = obj;source\runner;source\runner\stdalone
|
||||
.path.prg = source\runner\stdalone
|
||||
|
||||
PROJECT: runner.exe runner.lib
|
||||
PROJECT: runner.lib runner.exe
|
||||
|
||||
runner.lib : runlib.obj
|
||||
|
||||
runlib.obj : runlib.c
|
||||
|
||||
@@ -15,7 +17,7 @@ runner.c : runner.prg
|
||||
external.c : external.prg
|
||||
|
||||
.prg.c:
|
||||
bin\harbour $< /n /osource\runner /iinclude /p
|
||||
bin\harbour $< /n /osource\runner\stdalone /iinclude /p
|
||||
|
||||
.c.obj:
|
||||
bcc32 -c -O2 -I.\include -v -o$@ -DHARBOUR_USE_GTAPI $<
|
||||
|
||||
@@ -193,7 +193,7 @@ Separator {SpaceTab}
|
||||
return LITERAL;
|
||||
}
|
||||
|
||||
<INDEX>\n { yyerror( "Unterminated Array Index" ); exit(1); }
|
||||
<INDEX>\n { GenError( _szCErrors, 'E', ERR_UNTERM_ARRAY_INDEX, NULL, NULL ); }
|
||||
|
||||
<INDEX>\[ { iIndexSets++; return yytext[ 0 ]; }
|
||||
|
||||
|
||||
@@ -2408,68 +2408,68 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
switch( pFunc->pCode[ lPCodePos ] )
|
||||
{
|
||||
case HB_P_AND:
|
||||
fprintf( yyc, " HB_P_AND,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_AND,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_ARRAYAT:
|
||||
fprintf( yyc, " HB_P_ARRAYAT,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_ARRAYAT,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_ARRAYPUT:
|
||||
fprintf( yyc, " HB_P_ARRAYPUT,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_ARRAYPUT,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_DEC:
|
||||
fprintf( yyc, " HB_P_DEC,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_DEC,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_DIMARRAY:
|
||||
w = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
fprintf( yyc, " HB_P_DIMARRAY, %i, %i,\t/* %i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_DIMARRAY, %i, %i,\t/* %i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ], w );
|
||||
lPCodePos += 3;
|
||||
break;
|
||||
|
||||
case HB_P_DIVIDE:
|
||||
fprintf( yyc, " HB_P_DIVIDE,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_DIVIDE,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_DO:
|
||||
fprintf( yyc, " HB_P_DO, %i, %i,\n",
|
||||
fprintf( yyc, "\t\tHB_P_DO, %i, %i,\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ] );
|
||||
lPCodePos += 3;
|
||||
break;
|
||||
|
||||
case HB_P_DUPLICATE:
|
||||
fprintf( yyc, " HB_P_DUPLICATE,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_DUPLICATE,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_DUPLTWO:
|
||||
fprintf( yyc, " HB_P_DUPLTWO,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_DUPLTWO,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_EQUAL:
|
||||
fprintf( yyc, " HB_P_EQUAL,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_EQUAL,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_EXACTLYEQUAL:
|
||||
fprintf( yyc, " HB_P_EXACTLYEQUAL,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_EXACTLYEQUAL,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_ENDBLOCK:
|
||||
--iNestedCodeblock;
|
||||
fprintf( yyc, " HB_P_ENDBLOCK,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_ENDBLOCK,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
@@ -2478,20 +2478,20 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
if( lPCodePos == pFunc->lPCodePos )
|
||||
{
|
||||
bEndProcRequired =FALSE;
|
||||
fprintf( yyc, " HB_P_ENDPROC\n" );
|
||||
fprintf( yyc, "\t\tHB_P_ENDPROC\n" );
|
||||
}
|
||||
else
|
||||
fprintf( yyc, " HB_P_ENDPROC,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_ENDPROC,\n" );
|
||||
break;
|
||||
|
||||
case HB_P_FALSE:
|
||||
fprintf( yyc, " HB_P_FALSE,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_FALSE,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_FORTEST: /* ER For tests. Step > 0 LESS */
|
||||
/* Step < 0 GREATER */
|
||||
fprintf( yyc, " HB_P_FORTEST,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_FORTEST,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
@@ -2507,7 +2507,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
}
|
||||
|
||||
if( bLocals || pFunc->wParamCount )
|
||||
fprintf( yyc, " HB_P_FRAME, %i, %i,\t\t/* locals, params */\n",
|
||||
fprintf( yyc, "\t\tHB_P_FRAME, %i, %i,\t/* locals, params */\n",
|
||||
bLocals - pFunc->wParamCount,
|
||||
pFunc->wParamCount );
|
||||
lPCodePos += 3;
|
||||
@@ -2515,12 +2515,12 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_FUNCPTR:
|
||||
fprintf( yyc, " HB_P_FUNCPTR,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_FUNCPTR,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_FUNCTION:
|
||||
fprintf( yyc, " HB_P_FUNCTION, %i, %i,\n",
|
||||
fprintf( yyc, "\t\tHB_P_FUNCTION, %i, %i,\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ] );
|
||||
lPCodePos += 3;
|
||||
@@ -2528,29 +2528,29 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
|
||||
case HB_P_GENARRAY:
|
||||
w = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
fprintf( yyc, " HB_P_GENARRAY, %i, %i,\t/* %i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_GENARRAY, %i, %i,\t/* %i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ], w );
|
||||
lPCodePos += 3;
|
||||
break;
|
||||
|
||||
case HB_P_GREATER:
|
||||
fprintf( yyc, " HB_P_GREATER,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_GREATER,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_GREATEREQUAL:
|
||||
fprintf( yyc, " HB_P_GREATEREQUAL,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_GREATEREQUAL,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_INC:
|
||||
fprintf( yyc, " HB_P_INC,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_INC,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_INSTRING:
|
||||
fprintf( yyc, " HB_P_INSTRING,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_INSTRING,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
@@ -2558,7 +2558,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
/*if( 1 ) (lPCodePos + 3) < pFunc->lPCodePos ) */
|
||||
{
|
||||
w = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
fprintf( yyc, " HB_P_JUMP, %i, %i,\t/* %i (abs: %05li) */\n",
|
||||
fprintf( yyc, "\t\tHB_P_JUMP, %i, %i,\t/* %i (abs: %05li) */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ], w, lPCodePos + ( w ? w: 3 ) );
|
||||
}
|
||||
@@ -2567,7 +2567,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
|
||||
case HB_P_JUMPFALSE:
|
||||
w = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
fprintf( yyc, " HB_P_JUMPFALSE, %i, %i,\t/* %i (abs: %05li) */\n",
|
||||
fprintf( yyc, "\t\tHB_P_JUMPFALSE, %i, %i,\t/* %i (abs: %05li) */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ], w, lPCodePos + ( w ? w: 3 ) );
|
||||
lPCodePos += 3;
|
||||
@@ -2575,19 +2575,19 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
|
||||
case HB_P_JUMPTRUE:
|
||||
w = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
fprintf( yyc, " HB_P_JUMPTRUE, %i, %i,\t/* %i (abs: %05li) */\n",
|
||||
fprintf( yyc, "\t\tHB_P_JUMPTRUE, %i, %i,\t/* %i (abs: %05li) */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ], w, lPCodePos + ( w ? w: 3 ) );
|
||||
lPCodePos += 3;
|
||||
break;
|
||||
|
||||
case HB_P_LESS:
|
||||
fprintf( yyc, " HB_P_LESS,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_LESS,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_LESSEQUAL:
|
||||
fprintf( yyc, " HB_P_LESSEQUAL,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_LESSEQUAL,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
@@ -2601,7 +2601,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_LOCALNAME:
|
||||
fprintf( yyc, " HB_P_LOCALNAME, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_LOCALNAME, %i, %i,\t/* %s */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
( char * ) pFunc->pCode + lPCodePos + 3 );
|
||||
@@ -2624,7 +2624,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
|
||||
wSym = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
wFixPos =FixSymbolPos( wSym );
|
||||
fprintf( yyc, " HB_P_MESSAGE, %i, %i, /* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_MESSAGE, %i, %i,\t/* %s */\n",
|
||||
LOBYTE( wFixPos ),
|
||||
HIBYTE( wFixPos ),
|
||||
GetSymbolOrd( wSym )->szName );
|
||||
@@ -2633,12 +2633,12 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_MINUS:
|
||||
fprintf( yyc, " HB_P_MINUS,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_MINUS,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_MODULENAME:
|
||||
fprintf( yyc, " HB_P_MODULENAME, /* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_MODULENAME,\t/* %s */\n",
|
||||
( char * ) pFunc->pCode + lPCodePos++ + 1 );
|
||||
while( pFunc->pCode[ lPCodePos ] )
|
||||
{
|
||||
@@ -2653,32 +2653,32 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_MODULUS:
|
||||
fprintf( yyc, " HB_P_MODULUS,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_MODULUS,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_MULT:
|
||||
fprintf( yyc, " HB_P_MULT,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_MULT,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_NEGATE:
|
||||
fprintf( yyc, " HB_P_NEGATE,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_NEGATE,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_NOT:
|
||||
fprintf( yyc, " HB_P_NOT,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_NOT,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_NOTEQUAL:
|
||||
fprintf( yyc, " HB_P_NOTEQUAL,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_NOTEQUAL,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_OR:
|
||||
fprintf( yyc, " HB_P_OR,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_OR,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
@@ -2688,7 +2688,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
|
||||
wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
wFixPos =FixSymbolPos( wVar );
|
||||
fprintf( yyc, " HB_P_PARAMETER, %i, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PARAMETER, %i, %i, %i,\t/* %s */\n",
|
||||
LOBYTE( wFixPos ),
|
||||
HIBYTE( wFixPos ),
|
||||
pFunc->pCode[ lPCodePos + 3 ],
|
||||
@@ -2698,17 +2698,17 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_PLUS:
|
||||
fprintf( yyc, " HB_P_PLUS,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_PLUS,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_POP:
|
||||
fprintf( yyc, " HB_P_POP,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_POP,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_POPALIAS:
|
||||
fprintf( yyc, " HB_P_POPALIAS,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_POPALIAS,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
@@ -2718,7 +2718,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
|
||||
wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
wFixPos =FixSymbolPos( wVar );
|
||||
fprintf( yyc, " HB_P_POPALIASEDFIELD, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_POPALIASEDFIELD, %i, %i,\t/* %s */\n",
|
||||
LOBYTE( wFixPos ),
|
||||
HIBYTE( wFixPos ),
|
||||
GetSymbolOrd( wVar )->szName );
|
||||
@@ -2732,7 +2732,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
|
||||
wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
wFixPos =FixSymbolPos( wVar );
|
||||
fprintf( yyc, " HB_P_POPFIELD, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_POPFIELD, %i, %i,\t/* %s */\n",
|
||||
LOBYTE( wFixPos ),
|
||||
HIBYTE( wFixPos ),
|
||||
GetSymbolOrd( wVar )->szName );
|
||||
@@ -2751,18 +2751,18 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
/* we are accesing variables within a codeblock */
|
||||
/* the names of codeblock variable are lost */
|
||||
if( wVar < 0 )
|
||||
fprintf( yyc, " HB_P_POPLOCAL, %i, %i,\t/* localvar%i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_POPLOCAL, %i, %i,\t/* localvar%i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
-wVar );
|
||||
else
|
||||
fprintf( yyc, " HB_P_POPLOCAL, %i, %i,\t/* codeblockvar%i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_POPLOCAL, %i, %i,\t/* codeblockvar%i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
wVar );
|
||||
}
|
||||
else
|
||||
fprintf( yyc, " HB_P_POPLOCAL, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_POPLOCAL, %i, %i,\t/* %s */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
GetVar( pFunc->pLocals, wVar )->szName );
|
||||
@@ -2776,7 +2776,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
|
||||
wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
wFixPos =FixSymbolPos( wVar );
|
||||
fprintf( yyc, " HB_P_POPMEMVAR, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_POPMEMVAR, %i, %i,\t/* %s */\n",
|
||||
LOBYTE( wFixPos ),
|
||||
HIBYTE( wFixPos ),
|
||||
GetSymbolOrd( wVar )->szName );
|
||||
@@ -2793,7 +2793,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
while( pTmp->pNext && pTmp->pNext->wStaticsBase < wVar )
|
||||
pTmp =pTmp->pNext;
|
||||
pVar = GetVar( pTmp->pStatics, wVar - pTmp->wStaticsBase );
|
||||
fprintf( yyc, " HB_P_POPSTATIC, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_POPSTATIC, %i, %i,\t/* %s */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
pVar->szName );
|
||||
@@ -2802,12 +2802,12 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_POWER:
|
||||
fprintf( yyc, " HB_P_POWER,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_POWER,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_PUSHALIAS:
|
||||
fprintf( yyc, " HB_P_PUSHALIAS,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_PUSHALIAS,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
@@ -2818,7 +2818,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
wVar = pFunc->pCode[ lPCodePos + 1 ] +
|
||||
pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
wFixPos =FixSymbolPos( wVar );
|
||||
fprintf( yyc, " HB_P_PUSHALIASEDFIELD, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHALIASEDFIELD, %i, %i,\t/* %s */\n",
|
||||
LOBYTE( wFixPos ),
|
||||
HIBYTE( wFixPos ),
|
||||
GetSymbolOrd( wVar )->szName );
|
||||
@@ -2828,17 +2828,17 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
|
||||
case HB_P_PUSHBLOCK:
|
||||
++iNestedCodeblock;
|
||||
fprintf( yyc, " HB_P_PUSHBLOCK, %i, %i,\t/* %i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHBLOCK, %i, %i,\t/* %i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
pFunc->pCode[ lPCodePos + 1 ] +
|
||||
pFunc->pCode[ lPCodePos + 2 ] * 256 );
|
||||
w = * ( ( WORD *) &( pFunc->pCode [ lPCodePos + 3 ] ) );
|
||||
fprintf( yyc, " %i, %i, \t/* number of local parameters (%i) */\n",
|
||||
fprintf( yyc, "\t\t%i, %i,\t/* number of local parameters (%i) */\n",
|
||||
pFunc->pCode[ lPCodePos + 3 ],
|
||||
pFunc->pCode[ lPCodePos + 4 ], w );
|
||||
wVar = * ( ( WORD *) &( pFunc->pCode [ lPCodePos + 5 ] ) );
|
||||
fprintf( yyc, " %i, %i, \t/* number of local variables (%i) */\n",
|
||||
fprintf( yyc, "\t\t%i, %i,\t/* number of local variables (%i) */\n",
|
||||
pFunc->pCode[ lPCodePos + 5 ],
|
||||
pFunc->pCode[ lPCodePos + 6 ], wVar );
|
||||
lPCodePos += 7; /* codeblock size + number of parameters + number of local variables */
|
||||
@@ -2846,7 +2846,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
while( wVar-- )
|
||||
{
|
||||
w = * ( ( WORD *) &( pFunc->pCode [ lPCodePos ] ) );
|
||||
fprintf( yyc, " %i, %i, \t/* %s */\n",
|
||||
fprintf( yyc, "\t\t%i, %i,\t/* %s */\n",
|
||||
pFunc->pCode[ lPCodePos ],
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
GetVar( pFunc->pLocals, w )->szName );
|
||||
@@ -2858,10 +2858,10 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
{
|
||||
int i;
|
||||
++lPCodePos;
|
||||
fprintf( yyc, " HB_P_PUSHDOUBLE, " );
|
||||
fprintf( yyc, "\t\tHB_P_PUSHDOUBLE, " );
|
||||
for( i = 0; i < sizeof( double ) + sizeof( BYTE ); ++i )
|
||||
fprintf( yyc, "%i, ", ( ( BYTE * ) pFunc->pCode )[ lPCodePos + i ] );
|
||||
fprintf( yyc, "/* %.*f, %d */\n",
|
||||
fprintf( yyc, "%i,", ( ( BYTE * ) pFunc->pCode )[ lPCodePos + i ] );
|
||||
fprintf( yyc, "\t/* %.*f, %d */\n",
|
||||
*( ( BYTE * ) &( pFunc->pCode[ lPCodePos + sizeof( double ) ] ) ),
|
||||
*( ( double * ) &( pFunc->pCode[ lPCodePos ] ) ),
|
||||
*( ( BYTE * ) &( pFunc->pCode[ lPCodePos + sizeof( double ) ] ) ) );
|
||||
@@ -2876,7 +2876,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
wVar = pFunc->pCode[ lPCodePos + 1 ] +
|
||||
pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
wFixPos =FixSymbolPos( wVar );
|
||||
fprintf( yyc, " HB_P_PUSHFIELD, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHFIELD, %i, %i,\t/* %s */\n",
|
||||
LOBYTE( wFixPos ),
|
||||
HIBYTE( wFixPos ),
|
||||
GetSymbolOrd( wVar )->szName );
|
||||
@@ -2885,7 +2885,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_PUSHINT:
|
||||
fprintf( yyc, " HB_P_PUSHINT, %i, %i, /* %i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHINT, %i, %i,\t/* %i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
pFunc->pCode[ lPCodePos + 1 ] +
|
||||
@@ -2904,18 +2904,18 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
/* we are accesing variables within a codeblock */
|
||||
/* the names of codeblock variable are lost */
|
||||
if( wVar < 0 )
|
||||
fprintf( yyc, " HB_P_PUSHLOCAL, %i, %i,\t/* localvar%i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHLOCAL, %i, %i,\t/* localvar%i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
-wVar );
|
||||
else
|
||||
fprintf( yyc, " HB_P_PUSHLOCAL, %i, %i,\t/* codeblockvar%i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHLOCAL, %i, %i,\t/* codeblockvar%i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
wVar );
|
||||
}
|
||||
else
|
||||
fprintf( yyc, " HB_P_PUSHLOCAL, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHLOCAL, %i, %i,\t/* %s */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
GetVar( pFunc->pLocals, wVar )->szName );
|
||||
@@ -2934,18 +2934,18 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
/* we are accesing variables within a codeblock */
|
||||
/* the names of codeblock variable are lost */
|
||||
if( wVar < 0 )
|
||||
fprintf( yyc, " HB_P_PUSHLOCALREF, %i, %i,\t/* localvar%i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHLOCALREF, %i, %i,\t/* localvar%i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
-wVar );
|
||||
else
|
||||
fprintf( yyc, " HB_P_PUSHLOCALREF, %i, %i,\t/* codeblockvar%i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHLOCALREF, %i, %i,\t/* codeblockvar%i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
wVar );
|
||||
}
|
||||
else
|
||||
fprintf( yyc, " HB_P_PUSHLOCALREF, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHLOCALREF, %i, %i,\t/* %s */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
GetVar( pFunc->pLocals, wVar )->szName );
|
||||
@@ -2954,7 +2954,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_PUSHLONG:
|
||||
fprintf( yyc, " HB_P_PUSHLONG, %i, %i, %i, %i, /* %li */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHLONG, %i, %i, %i, %i,\t/* %li */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
pFunc->pCode[ lPCodePos + 3 ],
|
||||
@@ -2970,7 +2970,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
wVar = pFunc->pCode[ lPCodePos + 1 ] +
|
||||
pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
wFixPos =FixSymbolPos( wVar );
|
||||
fprintf( yyc, " HB_P_PUSHMEMVAR, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHMEMVAR, %i, %i,\t/* %s */\n",
|
||||
LOBYTE( wFixPos ),
|
||||
HIBYTE( wFixPos ),
|
||||
GetSymbolOrd( wVar )->szName );
|
||||
@@ -2985,7 +2985,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
wVar = pFunc->pCode[ lPCodePos + 1 ] +
|
||||
pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
wFixPos =FixSymbolPos( wVar );
|
||||
fprintf( yyc, " HB_P_PUSHMEMVARREF, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHMEMVARREF, %i, %i,\t/* %s */\n",
|
||||
LOBYTE( wFixPos ),
|
||||
HIBYTE( wFixPos ),
|
||||
GetSymbolOrd( wVar )->szName );
|
||||
@@ -2994,12 +2994,12 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_PUSHNIL:
|
||||
fprintf( yyc, " HB_P_PUSHNIL,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_PUSHNIL,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_PUSHSELF:
|
||||
fprintf( yyc, " HB_P_PUSHSELF,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_PUSHSELF,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
@@ -3012,7 +3012,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
while( pTmp->pNext && pTmp->pNext->wStaticsBase < wVar )
|
||||
pTmp =pTmp->pNext;
|
||||
pVar = GetVar( pTmp->pStatics, wVar - pTmp->wStaticsBase );
|
||||
fprintf( yyc, " HB_P_PUSHSTATIC, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHSTATIC, %i, %i,\t/* %s */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
pVar->szName );
|
||||
@@ -3029,7 +3029,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
while( pTmp->pNext && pTmp->pNext->wStaticsBase < wVar )
|
||||
pTmp =pTmp->pNext;
|
||||
pVar = GetVar( pTmp->pStatics, wVar - pTmp->wStaticsBase );
|
||||
fprintf( yyc, " HB_P_PUSHSTATICREF, %i, %i,\t/* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHSTATICREF, %i, %i,\t/* %s */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ],
|
||||
pVar->szName );
|
||||
@@ -3040,7 +3040,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
case HB_P_PUSHSTR:
|
||||
wLen = pFunc->pCode[ lPCodePos + 1 ] +
|
||||
pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
fprintf( yyc, " HB_P_PUSHSTR, %i, %i, /* %i */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHSTR, %i, %i,\t/* %i */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ], wLen );
|
||||
lPCodePos +=3;
|
||||
@@ -3062,7 +3062,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
wSym = pFunc->pCode[ lPCodePos + 1 ] +
|
||||
pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
wFixPos =FixSymbolPos( wSym );
|
||||
fprintf( yyc, " HB_P_PUSHSYM, %i, %i, /* %s */\n",
|
||||
fprintf( yyc, "\t\tHB_P_PUSHSYM, %i, %i,\t/* %s */\n",
|
||||
LOBYTE( wFixPos ),
|
||||
HIBYTE( wFixPos ),
|
||||
GetSymbolOrd( wSym )->szName );
|
||||
@@ -3071,13 +3071,13 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_RETVALUE:
|
||||
fprintf( yyc, " HB_P_RETVALUE,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_RETVALUE,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_SEQBEGIN:
|
||||
w = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
|
||||
fprintf( yyc, " HB_P_SEQBEGIN, %i, %i,\t/* %i (abs: %05li) */\n",
|
||||
fprintf( yyc, "\t\tHB_P_SEQBEGIN, %i, %i,\t/* %i (abs: %05li) */\n",
|
||||
pFunc->pCode[ lPCodePos + 1 ],
|
||||
pFunc->pCode[ lPCodePos + 2 ], w, lPCodePos + ( w ? w: 3 ) );
|
||||
lPCodePos += 3;
|
||||
@@ -3093,7 +3093,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
break;
|
||||
|
||||
case HB_P_SEQRECOVER:
|
||||
fprintf( yyc, " HB_P_SEQRECOVER,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_SEQRECOVER,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
@@ -3103,7 +3103,7 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
{
|
||||
GetSymbol( _pInitFunc->szName, &w );
|
||||
w = FixSymbolPos( w );
|
||||
fprintf( yyc, " HB_P_SFRAME, %i, %i,\t\t/* symbol (_INITSTATICS) */\n",
|
||||
fprintf( yyc, "\t\tHB_P_SFRAME, %i, %i,\t/* symbol (_INITSTATICS) */\n",
|
||||
LOBYTE( w ), HIBYTE( w ) );
|
||||
}
|
||||
lPCodePos += 3;
|
||||
@@ -3113,24 +3113,24 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
|
||||
{
|
||||
GetSymbol( _pInitFunc->szName, &w );
|
||||
w = FixSymbolPos( w );
|
||||
fprintf( yyc, " HB_P_STATICS, %i, %i,\t\t/* symbol (_INITSTATICS) */\n",
|
||||
fprintf( yyc, "\t\tHB_P_STATICS, %i, %i,\t/* symbol (_INITSTATICS) */\n",
|
||||
LOBYTE( w ), HIBYTE( w ) );
|
||||
lPCodePos += 3;
|
||||
}
|
||||
break;
|
||||
|
||||
case HB_P_SWAPALIAS:
|
||||
fprintf( yyc, " HB_P_SWAPALIAS,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_SWAPALIAS,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_TRUE:
|
||||
fprintf( yyc, " HB_P_TRUE,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_TRUE,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
case HB_P_ZERO:
|
||||
fprintf( yyc, " HB_P_ZERO,\n" );
|
||||
fprintf( yyc, "\t\tHB_P_ZERO,\n" );
|
||||
lPCodePos++;
|
||||
break;
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ int Hp_Parse( FILE* handl_i, FILE* handl_o )
|
||||
*sLine = '\0';
|
||||
}
|
||||
else
|
||||
GenWarning( _szPWarnings, 'W', WARN_NONDIRECTIVE, NULL, NULL );
|
||||
GenWarning( _szPWarnings, 'I', WARN_NONDIRECTIVE, NULL, NULL );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
|
||||
#include "error.ch"
|
||||
|
||||
#define ISCHAR(var) (ValType(var) == "C")
|
||||
#define ISNUM(var) (ValType(var) == "N")
|
||||
#define ISCHAR( var ) ( ValType(var) == "C" )
|
||||
#define ISNUM( var ) ( ValType(var) == "N" )
|
||||
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
@@ -50,21 +50,21 @@ static function DefError( oError )
|
||||
LOCAL cInfo := ""
|
||||
LOCAL n := 2
|
||||
|
||||
cMessage := ErrorMessage(oError)
|
||||
cMessage := ErrorMessage( oError )
|
||||
|
||||
// Build buttons
|
||||
|
||||
aOptions := {}
|
||||
|
||||
// aAdd(aOptions, "Break" )
|
||||
aAdd(aOptions, "Quit" )
|
||||
// aAdd( aOptions, "Break" )
|
||||
aAdd( aOptions, "Quit" )
|
||||
|
||||
IF oError:canRetry
|
||||
aAdd(aOptions, "Retry")
|
||||
aAdd( aOptions, "Retry" )
|
||||
ENDIF
|
||||
|
||||
IF oError:canDefault
|
||||
aAdd(aOptions, "Default")
|
||||
aAdd( aOptions, "Default" )
|
||||
ENDIF
|
||||
|
||||
// Show alert box
|
||||
@@ -75,14 +75,14 @@ static function DefError( oError )
|
||||
IF Empty( oError:osCode )
|
||||
nChoice := Alert( cMessage, aOptions )
|
||||
ELSE
|
||||
nChoice := Alert( cMessage + ";(DOS Error " + LTrim(Str(oError:osCode)) + ")", aOptions)
|
||||
nChoice := Alert( cMessage + ";(DOS Error " + LTrim( Str( oError:osCode ) ) + ")", aOptions)
|
||||
ENDIF
|
||||
|
||||
ENDDO
|
||||
|
||||
DO CASE
|
||||
CASE aOptions[ nChoice ] == "Break"
|
||||
// Break(oError)
|
||||
Break( oError )
|
||||
CASE aOptions[ nChoice ] == "Retry"
|
||||
RETURN .T.
|
||||
CASE aOptions[ nChoice ] == "Default"
|
||||
@@ -91,8 +91,8 @@ static function DefError( oError )
|
||||
|
||||
// "Quit" selected
|
||||
|
||||
IF !Empty(oError:osCode)
|
||||
cMessage += " (DOS Error " + LTrim(Str(oError:osCode)) + ")"
|
||||
IF ! Empty( oError:osCode )
|
||||
cMessage += " (DOS Error " + LTrim( Str( oError:osCode ) ) + ")"
|
||||
ENDIF
|
||||
|
||||
QOut( cMessage )
|
||||
@@ -123,29 +123,29 @@ STATIC FUNCTION ErrorMessage(oError)
|
||||
cMessage := iif( oError:severity > ES_WARNING, "Error", "Warning" ) + " "
|
||||
|
||||
// add subsystem name if available
|
||||
IF ISCHAR(oError:subsystem)
|
||||
IF ISCHAR( oError:subsystem )
|
||||
cMessage += oError:subsystem()
|
||||
ELSE
|
||||
cMessage += "???"
|
||||
ENDIF
|
||||
|
||||
// add subsystem's error code if available
|
||||
IF ISNUM(oError:subCode)
|
||||
cMessage += "/" + LTrim(Str(oError:subCode))
|
||||
IF ISNUM( oError:subCode )
|
||||
cMessage += "/" + LTrim( Str( oError:subCode ) )
|
||||
ELSE
|
||||
cMessage += "/???"
|
||||
ENDIF
|
||||
|
||||
// add error description if available
|
||||
IF ISCHAR(oError:description)
|
||||
IF ISCHAR( oError:description )
|
||||
cMessage += " " + oError:description
|
||||
ENDIF
|
||||
|
||||
// add either filename or operation
|
||||
DO CASE
|
||||
CASE !Empty(oError:filename)
|
||||
CASE !Empty( oError:filename )
|
||||
cMessage += ": " + oError:filename
|
||||
CASE !Empty(oError:operation)
|
||||
CASE !Empty( oError:operation )
|
||||
cMessage += ": " + oError:operation
|
||||
ENDCASE
|
||||
|
||||
|
||||
@@ -2,14 +2,96 @@
|
||||
// $Id$
|
||||
//
|
||||
|
||||
// Testing Harbour file io features
|
||||
// Written by Victor Szel <info@szelvesz.hu>
|
||||
// www - http://www.harbour-project.org
|
||||
//
|
||||
// Placed in the public domain
|
||||
|
||||
function Main()
|
||||
#include "fileio.ch"
|
||||
|
||||
local h := FCreate( "test.txt" )
|
||||
FUNCTION Main()
|
||||
LOCAL cFileName := "TEST.TXT"
|
||||
LOCAL nFlags
|
||||
|
||||
FWrite( h, "This is a test" )
|
||||
LOCAL cBuffer
|
||||
LOCAL fhnd
|
||||
|
||||
FClose( h )
|
||||
OutSpec("FCreate( cFileName, nFlags )" , fhnd := FCreate( cFileName, nFlags ) )
|
||||
OutSpec("FWrite( fhnd, '>1234567890<' )" , FWrite( fhnd, ">1234567890<" ) )
|
||||
OutSpec("FWrite( fhnd, '(123.4567890)' )", FWrite( fhnd, "(123" + Chr(0) + "4567890)" ) )
|
||||
OutSpec("FSeek( fhnd )" , FSeek( fhnd ) )
|
||||
OutSpec("FSeek( fhnd, 5 )" , FSeek( fhnd, 5 ) )
|
||||
OutSpec("FSeek( fhnd, -1, FS_SET )" , FSeek( fhnd, -1, FS_SET ) )
|
||||
OutSpec("FSeek( fhnd, -10, FS_SET )" , FSeek( fhnd, -10, FS_SET ) )
|
||||
OutSpec("FSeek( fhnd, -100, FS_SET )" , FSeek( fhnd, -100, FS_SET ) )
|
||||
OutSpec("FWrite( fhnd, '!' )" , FWrite( fhnd, "!" ) )
|
||||
OutSpec("FSeek( fhnd, 1 )" , FSeek( fhnd, 1 ) )
|
||||
OutSpec("FWrite( fhnd, 'A' )" , FWrite( fhnd, "A" ) )
|
||||
OutSpec("FSeek( fhnd, 2, FS_SET )" , FSeek( fhnd, 2, FS_SET ) )
|
||||
OutSpec("FWrite( fhnd, 'B' )" , FWrite( fhnd, "B" ) )
|
||||
OutSpec("FSeek( fhnd, 3, FS_RELATIVE )" , FSeek( fhnd, 3, FS_RELATIVE ) )
|
||||
OutSpec("FWrite( fhnd, 'C' )" , FWrite( fhnd, "C" ) )
|
||||
OutSpec("FSeek( fhnd, -1, FS_RELATIVE )" , FSeek( fhnd, -1, FS_RELATIVE ) )
|
||||
OutSpec("FWrite( fhnd, 'D' )" , FWrite( fhnd, "D" ) )
|
||||
OutSpec("FSeek( fhnd, 3, FS_END )" , FSeek( fhnd, 3, FS_END ) )
|
||||
OutSpec("FWrite( fhnd, 'E' )" , FWrite( fhnd, "E" ) )
|
||||
OutSpec("FSeek( fhnd, -1, FS_END )" , FSeek( fhnd, -1, FS_END ) )
|
||||
OutSpec("FWrite( fhnd, 'F' )" , FWrite( fhnd, "F" ) )
|
||||
OutSpec("FSeek( fhnd, 0 )" , FSeek( fhnd, 0 ) )
|
||||
cBuffer := Space(4)
|
||||
OutSpec("FRead( fhnd, cBuffer )" , FRead( fhnd, cBuffer ) )
|
||||
OutSpec("FRead( fhnd, cBuffer, 2 )" , FRead( fhnd, cBuffer, 2 ) )
|
||||
OutSpec("FRead( fhnd, @cBuffer, 5 )" , FRead( fhnd, @cBuffer, 5 ) )
|
||||
OutSpec("FRead( fhnd, @cBuffer, 3 )" , FRead( fhnd, @cBuffer, 3 ) )
|
||||
cBuffer := Space(100)
|
||||
OutSpec("FRead( fhnd, @cBuffer, 100 )" , FRead( fhnd, @cBuffer, 100 ) )
|
||||
OutSpec("FSeek( fhnd, 0 )" , FSeek( fhnd, 0 ) )
|
||||
OutSpec("FReadStr( fhnd, 4 )" , FReadStr( fhnd, 4 ) )
|
||||
OutSpec("FSeek( fhnd, 0 )" , FSeek( fhnd, 0 ) )
|
||||
OutSpec("FReadStr( fhnd, 100 )" , FReadStr( fhnd, 100 ) )
|
||||
OutSpec("FSeek( fhnd, -4, FS_END )" , FSeek( fhnd, -4, FS_END ) )
|
||||
OutSpec("FReadStr( fhnd, 1 )" , FReadStr( fhnd, 1 ) )
|
||||
OutSpec("FReadStr( fhnd, 20 )" , FReadStr( fhnd, 20 ) )
|
||||
OutSpec("FSeek( fhnd, 0, FS_END )" , FSeek( fhnd, 0, FS_END ) )
|
||||
OutSpec("FWrite( fhnd, '_-_-_-_-_-_-_' )", FWrite( fhnd, "_-_-_-_-_-_-_" ) )
|
||||
OutSpec("FSeek( fhnd, -4, FS_END )" , FSeek( fhnd, -4, FS_END ) )
|
||||
OutSpec("FReadStr( fhnd, 1 )" , FReadStr( fhnd, 1 ) )
|
||||
OutSpec("FReadStr( fhnd, 20 )" , FReadStr( fhnd, 20 ) )
|
||||
OutSpec("FSeek( fhnd, 3, FS_END )" , FSeek( fhnd, 3, FS_END ) )
|
||||
OutSpec("FWrite( fhnd, 'V' )" , FWrite( fhnd, "V" ) )
|
||||
OutSpec("FSeek( fhnd, -3, FS_END )" , FSeek( fhnd, -3, FS_END ) )
|
||||
OutSpec("FWrite( fhnd, 'W' )" , FWrite( fhnd, "W" ) )
|
||||
|
||||
return nil
|
||||
OutSpec("FClose()" , FClose() )
|
||||
OutSpec("FClose( fhnd )" , FClose( fhnd ) )
|
||||
OutSpec("FClose( fhnd )" , FClose( fhnd ) )
|
||||
|
||||
OutSpec("File( cFileName )" , File( cFileName ) )
|
||||
|
||||
RETURN NIL
|
||||
|
||||
STATIC FUNCTION OutSpec( cWhat, xRetVal )
|
||||
|
||||
OutStd( PadR( cWhat, 35 ) +;
|
||||
PadR( " e: " + LTrim( Str( FError() ) ), 9 ) +;
|
||||
PadR( " ret: " + XToStr( xRetVal ), 35 ) )
|
||||
OutStd( Chr(13) + Chr(10) )
|
||||
|
||||
RETURN NIL
|
||||
|
||||
STATIC FUNCTION XToStr( xValue )
|
||||
LOCAL cType := ValType( xValue )
|
||||
|
||||
DO CASE
|
||||
CASE cType == "C" ; RETURN "$" + xValue + "$"
|
||||
CASE cType == "N" ; RETURN LTrim( Str( xValue ) )
|
||||
CASE cType == "D" ; RETURN DToC( xValue )
|
||||
CASE cType == "L" ; RETURN iif( xValue, ".T.", ".F." )
|
||||
CASE cType == "O" ; RETURN xValue:className + " Object"
|
||||
CASE cType == "U" ; RETURN "NIL"
|
||||
CASE cType == "B" ; RETURN "{||...}"
|
||||
CASE cType == "A" ; RETURN "{...}"
|
||||
CASE cType == "M" ; RETURN xValue
|
||||
ENDCASE
|
||||
|
||||
RETURN ""
|
||||
|
||||
Reference in New Issue
Block a user