* harbour/include/hbcomp.h
+ Added:
BYTE pStack[256]; /* Compile Time Stack */
SHORT iStackIndex; /* Compile Time Stack Index */
BYTE pFunctionCalls[256]; /* Array of Function Calls Compile Time Stack Postion */
SHORT iFunctionIndex; /* Index into Array of Function Calls Compile Time Stack Postion */
* harbour/include/hberrors.h
* Modified Memory Errors to indicate the requested size.
-* Removed few Strong Type warnings, and modified few others.
* harbour/include/hbexprb.c
* Modified all HB_EXPR_PCODE?( hb_compGenPCode1 ,...) to HB_EXPR_GENPCODE?( ... ) to diferntiate between the
calls top GenPCode?() and the other calls using this macro, since the GenPCode?() now uses additional parameter:
BOOL bAffectStack
* Modified all the GenPCode?() to pass additional required paramter.
* harbour/include/hbexprc.c
* Modified all HB_EXPR_PCODE?( hb_compGenPCode1 ,...) to HB_EXPR_GENPCODE?( ... ) to diferntiate between the
calls top GenPCode?() and the other calls using this macro, since the GenPCode?() now uses additional parameter:
BOOL bAffectStack
* Modified all the GenPCode?() to pass additional required paramter.
* harbour/include/hbexprop.h
+ Added macros:
#define HB_EXPR_GENPCODE1( action, p1 ) action( (p1) )
#define HB_EXPR_GENPCODE2( action, p1, p2, p3 ) action( (p1), (p2), (p3) )
#define HB_EXPR_GENPCODE3( action, p1, p2, p3, p4 ) action( (p1), (p2), (p3), (p4) )
#define HB_EXPR_GENPCODE4( action, p1, p2, p3, p4, p5 ) action( (p1), (p2), (p3), (p4), (p5) )
And:
#define HB_EXPR_GENPCODE1( action, p1 ) action( (p1), pMacro )
#define HB_EXPR_GENPCODE2( action, p1, p2, p3 ) action( (p1), (p2), (p3), pMacro )
#define HB_EXPR_GENPCODE3( action, p1, p2, p3, p4 ) action( (p1), (p2), (p3), (p4), pMacro )
#define HB_EXPR_GENPCODE4( action, p1, p2, p3, p4, p5 ) action( (p1), (p2), (p3), (p4), (p5), pMacro )
* harbour/include/hbmacro.h
Added:
extern void hb_compGenPCode1( BYTE, HB_MACRO_DECL );
extern void hb_compGenPCode2( BYTE, BYTE, BOOL, HB_MACRO_DECL );
extern void hb_compGenPCode3( BYTE, BYTE, BYTE, BOOL, HB_MACRO_DECL );
extern void hb_compGenPCode4( BYTE, BYTE, BYTE, BYTE, BOOL, HB_MACRO_DECL );
extern void hb_compGenPCodeN( BYTE * pBuffer, ULONG ulSize, BOOL, HB_MACRO_DECL );
And:
extern void hb_compGenPCode1( BYTE byte, HB_MACRO_DECL );
extern void hb_compGenPCode2( BYTE byte1, BYTE byte2, BOOL bStackAffected, HB_MACRO_DECL );
extern void hb_compGenPCode3( BYTE byte1, BYTE byte2, BYTE byte3, BOOL bStackAffected, HB_MACRO_DECL );
extern void hb_compGenPCode4( BYTE byte1, BYTE byte2, BYTE byte3, BYTE byte4, BOOL bStackAffected, HB_MACRO_DECL );
extern void hb_compGenPCodeN( BYTE * pBuffer, ULONG ulSize, BOOL, HB_MACRO_DECL );
*** I think this is redundant but I went by exisitng declarations !!! Ryszard Please Check !!!
* harbour/source/compiler/harbour.c
* Modified GenPCode2-N() to require additional paramter.
* Modified GenPCode2-N() to call StrongType() if needed.
* Modified all the GenPCode?() calls to pass additional required paramter.
* harbour/source/compiler/harbour.y
* Modified all the GenPCode?() to pass additional required paramter.
* harbour/source/compiler/hbgenerr.c
* Modified Memory Errors to indicate the requested size.
-* Removed few Strong Type warnings, and modified few others.
* harbour/source/compiler/hbpcode.c
Added void hb_compStrongType( int iSize ) - This is the Strong Type Checker! It's not 100% completed but it's stable and the
approch guarntee 100% accuracy once we fine tune the calculations of the Compile Time Stack to be identical to the R/T Stack.
* harbour/source/vm/macro.c
* Modified GenPCode2-N() to require additional paramter.
* Modified GenPCode2-N() to call StrongType() if needed.
* Modified all the GenPCode?() calls to pass additional required paramter.
* harbour/tests/testwarn.prg
+ Added code to demonstrate more warnings.
138 lines
5.6 KiB
C
138 lines
5.6 KiB
C
/*
|
|
* $Id$
|
|
*/
|
|
|
|
/*
|
|
* Harbour Project source code:
|
|
* Header file for compiler error codes
|
|
*
|
|
* Copyright 1999 Ryszard Glab <rglab@imid.med.pl>
|
|
* www - http://www.harbour-project.org
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version, with one exception:
|
|
*
|
|
* The exception is that if you link the Harbour Runtime Library (HRL)
|
|
* and/or the Harbour Virtual Machine (HVM) with other files to produce
|
|
* an executable, this does not by itself cause the resulting executable
|
|
* to be covered by the GNU General Public License. Your use of that
|
|
* executable is in no way restricted on account of linking the HRL
|
|
* and/or HVM code into it.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
|
|
* their web site at http://www.gnu.org/).
|
|
*
|
|
*/
|
|
|
|
#ifndef HB_ERRORS_H_
|
|
#define HB_ERRORS_H_
|
|
|
|
#include "hbsetup.h"
|
|
|
|
#if defined(HB_EXTERN_C)
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* Errors generated by Harbour compiler
|
|
*/
|
|
#define HB_COMP_ERR_OUTSIDE 1
|
|
#define HB_COMP_ERR_FUNC_DUPL 2
|
|
#define HB_COMP_ERR_VAR_DUPL 3
|
|
#define HB_COMP_ERR_FOLLOWS_EXEC 4
|
|
#define HB_COMP_ERR_OUTER_VAR 5
|
|
#define HB_COMP_ERR_NUMERIC_FORMAT 6
|
|
#define HB_COMP_ERR_STRING_TERMINATOR 7
|
|
#define HB_COMP_ERR_FUNC_RESERVED 8
|
|
#define HB_COMP_ERR_ILLEGAL_INIT 9
|
|
#define HB_COMP_ERR_ENDIF 10
|
|
#define HB_COMP_ERR_ENDDO 11
|
|
#define HB_COMP_ERR_ENDCASE 12
|
|
#define HB_COMP_ERR_NEXTFOR 13
|
|
#define HB_COMP_ERR_UNMATCHED_ELSE 14
|
|
#define HB_COMP_ERR_UNMATCHED_ELSEIF 15
|
|
#define HB_COMP_ERR_SYNTAX 16
|
|
#define HB_COMP_ERR_UNCLOSED_STRU 17
|
|
#define HB_COMP_ERR_UNMATCHED_EXIT 18
|
|
#define HB_COMP_ERR_SYNTAX2 19
|
|
#define HB_COMP_ERR_INCOMPLETE_STMT 20
|
|
#define HB_COMP_ERR_CHECKING_ARGS 21
|
|
#define HB_COMP_ERR_INVALID_LVALUE 22
|
|
#define HB_COMP_ERR_INVALID_REFER 23
|
|
#define HB_COMP_ERR_PARAMETERS_NOT_ALLOWED 24
|
|
#define HB_COMP_ERR_EXIT_IN_SEQUENCE 25
|
|
#define HB_COMP_ERR_UNTERM_ARRAY_INDEX 26
|
|
#define HB_COMP_ERR_MEMALLOC 27
|
|
#define HB_COMP_ERR_MEMREALLOC 28
|
|
#define HB_COMP_ERR_MEMFREE 29
|
|
#define HB_COMP_ERR_YACC 30
|
|
#define HB_COMP_ERR_JUMP_TOO_LONG 31
|
|
#define HB_COMP_ERR_CREATE_OUTPUT 32
|
|
#define HB_COMP_ERR_CREATE_PPO 33
|
|
#define HB_COMP_ERR_BADOPTION 34
|
|
#define HB_COMP_ERR_BADPARAM 35
|
|
#define HB_COMP_ERR_BADFILENAME 36
|
|
#define HB_COMP_ERR_MAYHEM_IN_CASE 37
|
|
#define HB_COMP_ERR_INVALID_TYPE 38
|
|
#define HB_COMP_ERR_INVALID_ALIAS 39
|
|
#define HB_COMP_ERR_INVALID_INDEX 40
|
|
#define HB_COMP_ERR_INVALID_BOUND 41
|
|
#define HB_COMP_ERR_BAD_MACRO 42
|
|
#define HB_COMP_ERR_INVALID_SEND 43
|
|
#define HB_COMP_ERR_FUNC_ANNOUNCE 44
|
|
#define HB_COMP_ERR_JUMP_NOT_FOUND 45
|
|
|
|
#define HB_COMP_WARN_AMBIGUOUS_VAR 1
|
|
#define HB_COMP_WARN_MEMVAR_ASSUMED 2
|
|
#define HB_COMP_WARN_VAR_NOT_USED 3
|
|
#define HB_COMP_WARN_BLOCKVAR_NOT_USED 4
|
|
#define HB_COMP_WARN_NO_RETURN_VALUE 5
|
|
#define HB_COMP_WARN_PROC_RETURN_VALUE 6
|
|
#define HB_COMP_WARN_FUN_WITH_NO_RETURN 7
|
|
#define HB_COMP_WARN_ASSIGN_TYPE 8
|
|
#define HB_COMP_WARN_OPERAND_TYPE 9
|
|
#define HB_COMP_WARN_OPERANDS_INCOMPATBLE 10
|
|
#define HB_COMP_WARN_ASSIGN_SUSPECT 11
|
|
#define HB_COMP_WARN_OPERAND_SUSPECT 12
|
|
#define HB_COMP_WARN_MEANINGLESS 13
|
|
#define HB_COMP_WARN_UNREACHABLE 14
|
|
#define HB_COMP_WARN_DUPL_ANNOUNCE 15
|
|
|
|
/*
|
|
* Errors generated by Harbour preprocessor
|
|
*/
|
|
#define HB_PP_ERR_CANNOT_OPEN 1
|
|
#define HB_PP_ERR_DIRECTIVE_ELSE 2
|
|
#define HB_PP_ERR_DIRECTIVE_ENDIF 3
|
|
#define HB_PP_ERR_WRONG_NAME 4
|
|
#define HB_PP_ERR_DEFINE_ABSENT 5
|
|
#define HB_PP_ERR_COMMAND_DEFINITION 6
|
|
#define HB_PP_ERR_PATTERN_DEFINITION 7
|
|
#define HB_PP_ERR_RECURSE 8
|
|
#define HB_PP_ERR_WRONG_DIRECTIVE 9
|
|
#define HB_PP_ERR_EXPLICIT 10
|
|
#define HB_PP_ERR_MEMALLOC 11
|
|
#define HB_PP_ERR_MEMREALLOC 12
|
|
#define HB_PP_ERR_MEMFREE 13
|
|
#define HB_PP_ERR_PRAGMA_BAD_VALUE 14
|
|
|
|
#define HB_PP_WARN_DEFINE_REDEF 1
|
|
|
|
extern void hb_compGenError( char * _szErrors[], char cPrefix, int iError, char * szError1, char * szError2 ); /* generic parsing error management function */
|
|
extern void hb_compGenWarning( char * _szWarnings[], char cPrefix, int iWarning, char * szWarning1, char * szWarning2); /* generic parsing warning management function */
|
|
|
|
#if defined(HB_EXTERN_C)
|
|
}
|
|
#endif
|
|
|
|
#endif /* HB_ERRORS_H_ */
|