diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 6721dc2c27..53ececab24 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,11 @@ +2001-04-10 16:20 UTC-0800 Ron Pinkas + * include/hbcomp.h + * Changed order of COMDECLARED elements to be more intuitive for static initialization. + + * source/compiler/harbour.c + * source/compiler/hbpcode.c + ! Added type casting needed for C++ compilers. + 2001-04-09 22:40 UTC-0800 Ron Pinkas * source/compiler/hbgenerr.c * Corrected spelling for suspicious. diff --git a/harbour/include/hbcomp.h b/harbour/include/hbcomp.h index de8b17fa79..a77abd449a 100644 --- a/harbour/include/hbcomp.h +++ b/harbour/include/hbcomp.h @@ -92,8 +92,8 @@ typedef struct _COMDECLARED { char * szName; /* the name of the symbol */ BYTE cType; - BYTE * cParamTypes; USHORT iParamCount; + BYTE * cParamTypes; struct _COMCLASS * pClass; struct _COMCLASS * ( * pParamClasses ); struct _COMDECLARED * pNext; /* pointer to the next declared function */ diff --git a/harbour/source/compiler/harbour.c b/harbour/source/compiler/harbour.c index 88f1c56fbc..1b518ad6f6 100644 --- a/harbour/source/compiler/harbour.c +++ b/harbour/source/compiler/harbour.c @@ -391,12 +391,12 @@ void hb_compDeclaredParameterAdd( char * szVarName, BYTE cValueType ) if ( pDeclared->cParamTypes ) { pDeclared->cParamTypes = ( BYTE * ) hb_xrealloc( pDeclared->cParamTypes, pDeclared->iParamCount ); - pDeclared->pParamClasses = ( PCOMCLASS * ) hb_xrealloc( pDeclared->pParamClasses, pDeclared->iParamCount * sizeof( COMCLASS ) ); + pDeclared->pParamClasses = ( PCOMCLASS * ) hb_xrealloc( pDeclared->pParamClasses, pDeclared->iParamCount * sizeof( PCOMCLASS ) ); } else { pDeclared->cParamTypes = ( BYTE * ) hb_xgrab( 1 ); - pDeclared->pParamClasses = ( PCOMCLASS * ) hb_xgrab( sizeof( COMCLASS ) ); + pDeclared->pParamClasses = ( PCOMCLASS * ) hb_xgrab( sizeof( PCOMCLASS ) ); } pDeclared->cParamTypes[ pDeclared->iParamCount - 1 ] = cValueType; @@ -898,6 +898,8 @@ PCOMDECLARED hb_compMethodFind( PCOMCLASS pClass, char * szMethodName ) void hb_compDeclaredInit( void ) { + #define _DECL static COMDECLARED + /* \x5c -> ByRef (+60) '-' -> NIL \x7a -> Optional (+90) 'U' -> Undefined @@ -920,43 +922,44 @@ void hb_compDeclaredInit( void ) /* ------------------------------------------------- Standard Functions -------------------------------------------------- */ - /* Name Ret Param Types # of Prams Class Param Classes Next - ---------- --- ----------------------- ---------- ----- ------------- ------ */ - static COMDECLARED s_001 = { "AADD" , ' ', "A " , 2 , NULL , NULL , NULL }; - static COMDECLARED s_002 = { "ABS" , 'N', "N" , 1 , NULL , NULL , &s_001 }; - static COMDECLARED s_003 = { "ACHOICE" , 'N', "NNNNc\x7a\x9d\xa8\xa8", 9 , NULL , NULL , &s_002 }; + /* Name Ret # of Prams Param Types Ret Class Param Classes Next + ---------- --- ---------- ------------------------------ --------- ------------- ------ */ + _DECL s_001 = { "AADD" , ' ', 2 , (BYTE*)"A " , NULL , NULL , NULL }; + _DECL s_002 = { "ABS" , 'N', 1 , (BYTE*)"N" , NULL , NULL , &s_001 }; + _DECL s_003 = { "ACHOICE" , 'N', 9 , (BYTE*)"NNNNc\x7a\x9d\xa8\xa8", NULL , NULL , &s_002 }; /* TODO: Add all functions. */ - /* ------------------------------------------------- Standard Classes -------------------------------------------------- */ + /* -------------------------------------------------- Standard Classes --------------------------------------------------- */ - static COMCLASS s_ERROR = { "ERROR" , NULL, NULL, NULL }; - static COMCLASS s_GET = { "GET" , NULL, NULL, NULL }; - static COMCLASS s_TBCOLUMN = { "TBCOLUMN", NULL, NULL, NULL }; - static COMCLASS s_TBROWSE = { "TBROWSE" , NULL, NULL, NULL }; + static COMCLASS s_ERROR = { "ERROR" , NULL, NULL, NULL }; + static COMCLASS s_GET = { "GET" , NULL, NULL, NULL }; + static COMCLASS s_TBCOLUMN = { "TBCOLUMN", NULL, NULL, NULL }; + static COMCLASS s_TBROWSE = { "TBROWSE" , NULL, NULL, NULL }; - /* Name Ret Param Types # of Prams Class Param Classes Next - -------------- --- ----------------------- ---------- ------ ------------- ------------ */ - static COMDECLARED s_ERROR_01 = { "ARGS" , 'A', NULL , 0 , NULL , NULL , NULL }; - static COMDECLARED s_ERROR_02 = { "CANDEFAULT" , 'B', NULL , 0 , NULL , NULL , &s_ERROR_01 }; - static COMDECLARED s_ERROR_03 = { "CANRETRY" , 'B', NULL , 0 , NULL , NULL , &s_ERROR_02 }; - static COMDECLARED s_ERROR_04 = { "CANSUBSTITUTE", 'B', NULL , 0 , NULL , NULL , &s_ERROR_03 }; - static COMDECLARED s_ERROR_05 = { "CARGO" , ' ', NULL , 0 , NULL , NULL , &s_ERROR_04 }; - static COMDECLARED s_ERROR_06 = { "DESCRIPTION" , 'S', NULL , 0 , NULL , NULL , &s_ERROR_05 }; - static COMDECLARED s_ERROR_07 = { "FILENAME" , 'S', NULL , 0 , NULL , NULL , &s_ERROR_06 }; - static COMDECLARED s_ERROR_08 = { "GENCODE" , 'N', NULL , 0 , NULL , NULL , &s_ERROR_07 }; - static COMDECLARED s_ERROR_09 = { "OPERATION" , 'S', NULL , 0 , NULL , NULL , &s_ERROR_08 }; - static COMDECLARED s_ERROR_10 = { "OSCODE" , 'N', NULL , 0 , NULL , NULL , &s_ERROR_09 }; - static COMDECLARED s_ERROR_11 = { "SEVERITY" , 'N', NULL , 0 , NULL , NULL , &s_ERROR_10 }; - static COMDECLARED s_ERROR_12 = { "SUBCODE" , 'N', NULL , 0 , NULL , NULL , &s_ERROR_11 }; - static COMDECLARED s_ERROR_13 = { "SUBSYSTEM" , 'S', NULL , 0 , NULL , NULL , &s_ERROR_12 }; - static COMDECLARED s_ERROR_14 = { "TRIES" , 'N', NULL , 0 , NULL , NULL , &s_ERROR_13 }; + /* Name Ret # of Prams Param Types Ret Class Param Classes Next + --------------- --- ---------- -------------------- --------- ------------- --------------- */ + _DECL s_ERROR_01 = { "ARGS" , 'A', 0 , (BYTE*)NULL , NULL , NULL , NULL }; + _DECL s_ERROR_02 = { "CANDEFAULT" , 'B', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_01 }; + _DECL s_ERROR_03 = { "CANRETRY" , 'B', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_02 }; + _DECL s_ERROR_04 = { "CANSUBSTITUTE", 'B', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_03 }; + _DECL s_ERROR_05 = { "CARGO" , ' ', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_04 }; + _DECL s_ERROR_06 = { "DESCRIPTION" , 'S', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_05 }; + _DECL s_ERROR_07 = { "FILENAME" , 'S', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_06 }; + _DECL s_ERROR_08 = { "GENCODE" , 'N', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_07 }; + _DECL s_ERROR_09 = { "OPERATION" , 'S', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_08 }; + _DECL s_ERROR_10 = { "OSCODE" , 'N', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_09 }; + _DECL s_ERROR_11 = { "SEVERITY" , 'N', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_10 }; + _DECL s_ERROR_12 = { "SUBCODE" , 'N', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_11 }; + _DECL s_ERROR_13 = { "SUBSYSTEM" , 'S', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_12 }; + _DECL s_ERROR_14 = { "TRIES" , 'N', 0 , (BYTE*)NULL , NULL , NULL , &s_ERROR_13 }; + /* Name Ret # of Prams Param Types Ret Class Param Classes Next + --------------- --- ---------- -------------------- --------- ------------- --------------- */ + _DECL s_GET_01 = { "ASSIGN" , ' ', 0 , (BYTE*)NULL , NULL , NULL , NULL }; + _DECL s_GET_02 = { "COLORDISP" , 'S', 1 , (BYTE*)"\x9d" , &s_GET , NULL , &s_GET_01 }; - /* Name Ret Param Types # of Prams Class Param Classes Next - ---------- --- ----------------------- ---------- ------ ------------- --------- */ - static COMDECLARED s_GET_01 = { "ASSIGN" , ' ', NULL , 0 , NULL , NULL , NULL }; - static COMDECLARED s_GET_02 = { "COLORDISP", 'S', "\x9d" , 1 , &s_GET, NULL , &s_GET_01 }; + #undef _DECL /* ------- */ diff --git a/harbour/source/compiler/hbpcode.c b/harbour/source/compiler/hbpcode.c index da54012a1d..a76a53fbd6 100644 --- a/harbour/source/compiler/hbpcode.c +++ b/harbour/source/compiler/hbpcode.c @@ -1104,28 +1104,28 @@ void hb_compStrongType( int iSize ) } else if( cSubType1 == ' ' ) { - hb_compGenWarning( hb_comp_szWarnings, 'W', HB_COMP_WARN_OPERAND_SUSPECT, ( char * ) szType1, szType2 ); + hb_compGenWarning( hb_comp_szWarnings, 'W', HB_COMP_WARN_OPERAND_SUSPECT, ( char * ) szType1, ( char * ) szType2 ); /* Override the last item with the new result type. */ pFunc->pStack[ pFunc->iStackIndex - 1 ] = cSubType2; } else if( cSubType2 == ' ' ) { - hb_compGenWarning( hb_comp_szWarnings, 'W', HB_COMP_WARN_OPERAND_SUSPECT, ( char * ) szType2, szType1 ); + hb_compGenWarning( hb_comp_szWarnings, 'W', HB_COMP_WARN_OPERAND_SUSPECT, ( char * ) szType2, ( char * ) szType1 ); /* Override the last item with the new result type. */ pFunc->pStack[ pFunc->iStackIndex - 1 ] = cSubType1; } else if( cSubType1 == '-' ) { - hb_compGenWarning( hb_comp_szWarnings, 'W', HB_COMP_WARN_OPERAND_TYPE, (char *) szType1, szType2 ); + hb_compGenWarning( hb_comp_szWarnings, 'W', HB_COMP_WARN_OPERAND_TYPE, (char *) szType1, ( char * ) szType2 ); /* Override the last item with the new result type. */ pFunc->pStack[ pFunc->iStackIndex - 1 ] = 'U'; } else if( cSubType2 == '-' ) { - hb_compGenWarning( hb_comp_szWarnings, 'W', HB_COMP_WARN_OPERAND_TYPE, (char *) szType2, szType1 ); + hb_compGenWarning( hb_comp_szWarnings, 'W', HB_COMP_WARN_OPERAND_TYPE, (char *) szType2, ( char * ) szType1 ); /* Override the last item with the new result type. */ pFunc->pStack[ pFunc->iStackIndex - 1 ] = 'U';