* source/compiler/hvm.c
* Added FAR support to HB_P_SEQBEGIN and HB_P_SEQEND
* source/compiler/harbour.c
* Modified hb_compGenJumpThere() to revert back to "short" JUMPs when fixing the jumps, it will than use HB_P_NOOP for the unused 3rd byte.
* It now supports all variations of JUMP including SEQBEGIN and SEQEND as well as the logig to not interfere with "short" JUMPs.
+ Added more error handling to hb_compGenJumpThere()
* source/include/hbexprb.c
* Modified handling of .OR. .AND. and IIF() to use "short" JUMPs - note the use of -1 when calling hb_compGenJumpXXX().
* source/compiler/genc.c
+ Added support for HB_P_NOOP (was missing!)
* Modified HB_P_SEQBEGIN and HB_P_SEQEND to support FAR jumps
* source/compiler/hbgenerr.c
+ Added following errors:
"Jump offset too long for HB_P_JUMP needed HB_P_JUMPFAR",
"Jump offset too long for HB_P_JUMPTRUE needed HB_P_JUMPFARTRUE",
"Jump offset too long for HB_P_JUMPFALSE needed HB_P_JUMPFARFALSE",
"HB_P_JUMPx not found when fixing offset"
* source/include/hbexprb.c
+ Added following defines:
#define HB_COMP_ERR_INVALID_JUMP 45
#define HB_COMP_ERR_INVALID_JUMPTRUE 46
#define HB_COMP_ERR_INVALID_JUMPFALSE 47
#define HB_COMP_ERR_JUMP_NOT_FOUND 48
144 lines
5.9 KiB
C
144 lines
5.9 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_INVALID_JUMP 45
|
|
#define HB_COMP_ERR_INVALID_JUMPTRUE 46
|
|
#define HB_COMP_ERR_INVALID_JUMPFALSE 47
|
|
#define HB_COMP_ERR_JUMP_NOT_FOUND 48
|
|
|
|
#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_LOGICAL_TYPE 9
|
|
#define HB_COMP_WARN_NUMERIC_TYPE 10
|
|
#define HB_COMP_WARN_OPERANDS_INCOMPATBLE 11
|
|
#define HB_COMP_WARN_ASSIGN_SUSPECT 12
|
|
#define HB_COMP_WARN_OPERAND_SUSPECT 13
|
|
#define HB_COMP_WARN_LOGICAL_SUSPECT 14
|
|
#define HB_COMP_WARN_NUMERIC_SUSPECT 15
|
|
#define HB_COMP_WARN_MEANINGLESS 16
|
|
#define HB_COMP_WARN_UNREACHABLE 17
|
|
#define HB_COMP_WARN_DUPL_ANNOUNCE 18
|
|
|
|
/*
|
|
* 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_ */
|