ChangeLog 20000130-13:55 GMT+1

This commit is contained in:
Ryszard Glab
2000-01-30 12:42:11 +00:00
parent 9d3e53a384
commit d04e918b68
3 changed files with 21 additions and 3 deletions

View File

@@ -1,3 +1,13 @@
20000130-13:55 GMT+1 Ryszard Glab <rglab@imid.med.pl>
*source/compiler/harbour.l
* fixed support for macro variables used in FOR statement
*source/vm/hvm.c
* private variables created during a macro evaluation are not
released after a macro evaluation. They have the function/procedure
scope.
20000129-19:15 GMT+1 Victor Szel <info@szelvesz.hu>
* bin/bld_tpl.*
! Added macro lib.

View File

@@ -596,7 +596,7 @@ Separator {SpaceTab}
/* ************************************************************************ */
%}
"for" { BEGIN FOR_; }
<FOR_>{Separator}+[_a-zA-Z] { /* an identifier after the FOR */
<FOR_>{Separator}+[&_a-zA-Z] { /* an identifier or a macro after the FOR */
unput( yytext[ yyleng-1 ] );
if( i_INDEX_STATE ) BEGIN INDEX; else BEGIN 0;
if( hb_comp_iState == LOOKUP )

View File

@@ -343,7 +343,14 @@ void hb_vmExecute( BYTE * pCode, PHB_SYMB pSymbols )
HB_TRACE(HB_TR_DEBUG, ("hb_vmExecute(%p, %p)", pCode, pSymbols));
ulPrivateBase = hb_memvarGetPrivatesBase();
/* NOTE: if pSymbols == NULL then hb_vmExecute is called from macro
* evaluation. In this case all PRIVATE variables created during
* macro evaluation belong to a function/procedure where macro
* compiler was called.
*/
if( pSymbols )
ulPrivateBase = hb_memvarGetPrivatesBase();
while( ( bCode = pCode[ w ] ) != HB_P_ENDPROC )
{
switch( bCode )
@@ -1150,7 +1157,8 @@ void hb_vmExecute( BYTE * pCode, PHB_SYMB pSymbols )
}
}
}
hb_memvarSetPrivatesBase( ulPrivateBase );
if( pSymbols )
hb_memvarSetPrivatesBase( ulPrivateBase );
}
/* ------------------------------- */