2001-05-26 10:25 UTC-0800 Brian Hays <bhays@abacuslaw.com>

This commit is contained in:
Brian Hays
2001-05-27 05:19:21 +00:00
parent da0e4678cd
commit bce863e76c
2 changed files with 30 additions and 16 deletions

View File

@@ -1,14 +1,9 @@
2001-05-26 21:10 UTC-0800 Ron Pinkas <ron@profit-master.com>
* contrib/dot/pp.prg
! Fixed support for '$' in NextToken() and NextExp()
+ Added nAtSkipStr() to exclude content of strings when searching for ';'
! Fixed Multi Line logic to use nAtSkipStr() instead of At()
+ Added infile C versions for NextToken() and NextIdentifier()
+ Added precompiled rules for FiveWin.ch (Harbour)
+ Added precompiled rules for RP_Run.ch.
2001-05-26 10:25 UTC-0800 Brian Hays <bhays@abacuslaw.com>
* source/compiler/genc.c
+ Added few #include files to generation of inline C.
* source/rdd/dbcmd.c
* Harrier's fix to APPEND FROM from a source file
with a different structure than the target.
Thanks, Harrier, it works!
2001-05-25 12:20 UTC-0800 Ron Pinkas <ron@profit-master.com>
* contrib/dot/pp.prg
@@ -61,6 +56,18 @@
* contrib/dot/pp.txt
* Updated documentation.
valid Identifiers - Expansion forces a resacn from top.
#[x]translates against all tokens - Expansion forces a resacn from top of #defines.
#[x]command agains the first token - Expansion forces a resacn from top of #defines.
! Corrected and refined many aspects of Interpreter mode.
+ Added ExecuteMethod() and support for OO syntax.
+ Added support for -I<includepaths...> command line switch.
* contrib/dot/rp_run.ch
+ Added support for OO syntax.
* contrib/dot/pp.txt
* Updated documentation.
/* PP Interpreter mode, is now capable of running code like this:
//---------------------------//

View File

@@ -3432,7 +3432,7 @@ static LPAREANODE GetTheOtherArea( char *szDriver, char * szFileName, BOOL creat
}
/* move the Field Data between areas by name */
static void rddMoveFields( AREAP pAreaFrom, AREAP pAreaTo, PHB_ITEM pFields )
static void rddMoveFields( AREAP pAreaFrom, AREAP pAreaTo, PHB_ITEM pFields, BOOL bNameMatch )
{
USHORT i, f=1;
PHB_ITEM fieldValue;
@@ -3443,8 +3443,13 @@ static void rddMoveFields( AREAP pAreaFrom, AREAP pAreaTo, PHB_ITEM pFields )
/* list or field in the list?*/
if ( !pFields || IsFieldIn( (( PHB_DYNS )(pAreaFrom->lpFields + i)->sym )->pSymbol->szName, pFields ))
{
SELF_GETVALUE( pAreaFrom, i+1, fieldValue );
SELF_PUTVALUE( pAreaTo, f++, fieldValue );
if ( bNameMatch )
f = hb_rddFieldIndex( pAreaTo, (( PHB_DYNS )(pAreaFrom->lpFields + i)->sym )->pSymbol->szName );
if ( f )
{
SELF_GETVALUE( pAreaFrom, i+1, fieldValue );
SELF_PUTVALUE( pAreaTo, f++, fieldValue );
}
}
}
hb_itemRelease( fieldValue );
@@ -3459,6 +3464,7 @@ static ERRCODE rddMoveRecords( char *cAreaFrom, char *cAreaTo, PHB_ITEM pFields,
LONG toGo=lNext;
BOOL bFor, bWhile;
BOOL keepGoing=TRUE;
BOOL bNameMatch=FALSE;
AREAP pAreaFrom;
AREAP pAreaTo;
LPAREANODE pAreaRelease=NULL;
@@ -3497,8 +3503,9 @@ static ERRCODE rddMoveRecords( char *cAreaFrom, char *cAreaTo, PHB_ITEM pFields,
pAreaTo = (AREAP) s_pCurrArea->pArea;
if ( cAreaFrom ) /*it's an APPEND FROM*/
{ /*make it current*/
if ( cAreaFrom ) /*it's an APPEND FROM*/
{ /*make it current*/
bNameMatch = TRUE; /*we pass fields by name */
pAreaRelease = s_pCurrArea = GetTheOtherArea( szDriver, cAreaFrom, FALSE, NULL );
pAreaFrom = (AREAP) pAreaRelease->pArea;
}
@@ -3541,7 +3548,7 @@ static ERRCODE rddMoveRecords( char *cAreaFrom, char *cAreaTo, PHB_ITEM pFields,
if ( bFor )
{
SELF_APPEND( ( AREAP ) pAreaTo, FALSE ); /*put a new one on TO Area*/
rddMoveFields( pAreaFrom, pAreaTo, pFields ); /*move the data*/
rddMoveFields( pAreaFrom, pAreaTo, pFields, bNameMatch ); /*move the data*/
}
if ( lRec == 0 || pFor ) /*not only one record? Or there's a For clause?*/
keepGoing = TRUE;