Files
harbour-core/harbour/include/hberrors.h
Przemyslaw Czerpak 9cd2098d6d 2006-11-23 20:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/include/hbcomp.h
  + harbour/include/hbcompdf.h
  * harbour/include/hberrors.h
  * harbour/include/hbexpra.c
  * harbour/include/hbexprb.c
  * harbour/include/hbexprc.c
  * harbour/include/hbexprop.h
  * harbour/include/hbmacro.h
  * harbour/include/hbpp.h
  * harbour/include/hbvm.h
  * harbour/source/common/expropt1.c
  * harbour/source/common/expropt2.c
  * harbour/source/compiler/Makefile
  * harbour/source/compiler/cmdcheck.c
  * harbour/source/compiler/complex.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencc.c
  * harbour/source/compiler/gencli.c
  * harbour/source/compiler/gencobj.c
  * harbour/source/compiler/genhrb.c
  * harbour/source/compiler/genjava.c
  * harbour/source/compiler/genobj32.c
  * harbour/source/compiler/harbour.c
  * harbour/source/compiler/harbour.l
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/hbcomp.c
  * harbour/source/compiler/hbdead.c
  * harbour/source/compiler/hbfix.c
  * harbour/source/compiler/hbfunchk.c
  * harbour/source/compiler/hbgenerr.c
  * harbour/source/compiler/hbident.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/compiler/ppcomp.c
  * harbour/source/macro/macro.y
  * harbour/source/pp/ppcore.c
  * harbour/source/pp/ppgen.c
  * harbour/source/pp/pplib.c
  * harbour/source/vm/cmdarg.c
  * harbour/source/vm/estack.c
  * harbour/source/vm/fm.c
  * harbour/source/vm/macro.c
  * harbour/utils/hbpp/hbpp.c
  * harbour/utils/hbpp/hbpp.h
  * harbour/utils/hbpp/hbppcomp.c
  * harbour/utils/hbpp/hbppcore.c
  * harbour/utils/hbpp/hbpplib.c
  * harbour/utils/hbpp/pragma.c
    * changed the internal compiler API to be MT safe.
      All global and static non constant variables replaced by
      HB_COMP structure which have all compiler context settings.
      It's possible to allocate simultaneously many compiler contexts
      and compile code. Only constant/read only variables are shared.
      In macro compiler HB_COMP is replaced by HB_MACRO.
      In source code I everywhere used to macros: HB_COMP_DECL and
      HB_COMP_PARAM which are equivalents of old HB_MACRO_DECL and
      HB_MACRO_PARAM definitions.
      We will only have to change compiler FATAL errors support to
      not execute exit() for non batch systems.
    * make macro compiler fully MT safe
    * removed not longer used definitions and variables
    ! add direct accessing to PP line number information - it fixes missing
      line numbers reported recently
    ! added generating .ppo files when tokens are teken directly by compiler
      - it fixes empty .ppo file problem
    ! clear hb_stack internall variables after removing hb_stack to avoid
      possible GPF if application still works and try to access unexsiting
      hb_stack
    ! do not allocate new memory block when final FM statistic report is
      generated - it fixes problem with GPF when application compiled with
      FM statistic exits and CLIPPER envvar is set.
    ! fixed memory leak hb_cmdargCheck()
    ! added to harbour.y symbol destructors - it should fixes memory leaks
      in syntax errors but it uses quite new bison feature which is not
      fully supported yet. Unfortunately it's also not MT safe and the
      destructors implementation in 1.875c does not respect %parse-param.
      Bison documentation says that it should so I hope it will be fixed
      soon (or maybe even already is in the newest bison versions) before
      I'll add multi context compilation support. If not then I will have
      to add some workaround. I can pass compiler context pointer inside
      YYSTYPE using hack in a lexer but it will force really huge number
      modifications in existing bison rules so probably it will be much
      easier to fix bison or write a small tool to update generated parser.
    * other modifications - the total size of patch is nearly 1MB and
      detail description will have to take me few days.
2006-11-23 18:57:54 +00:00

160 lines
6.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, or (at your option)
* any later version.
*
* 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 software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries 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 Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
#ifndef HB_ERRORS_H_
#define HB_ERRORS_H_
#include "hbsetup.h"
HB_EXTERN_BEGIN
/*
* 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_ERR_CASE 46
#define HB_COMP_ERR_BLOCK 47
#define HB_COMP_ERR_GET_COMPLEX_MACRO 48
#define HB_COMP_ERR_INVALID_INLINE 49
#define HB_COMP_ERR_TOOMANY_INLINE 50
#define HB_COMP_ERR_REQUIRES_C 51
#define HB_COMP_ERR_OPTIMIZEDLOCAL_OUT_OF_RANGE 52
#define HB_COMP_ERR_FORVAR_TOOMANY 53
#define HB_COMP_ERR_FORVAR_DIFF 54
#define HB_COMP_ERR_NOT_LITERAL_CASE 55
#define HB_COMP_ERR_INVALID_STR 56
#define HB_COMP_ERR_INVALID_DATE 57
#define HB_COMP_ERR_MEMOVERFLOW 58
#define HB_COMP_ERR_MEMCORRUPT 59
#define HB_COMP_ERR_WITHOBJECT 60
#define HB_COMP_ERR_BUFFER_OVERFLOW 61
#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_INCOMPATIBLE 10
#define HB_COMP_WARN_ASSIGN_SUSPECT 11
#define HB_COMP_WARN_OPERAND_SUSPECT 12
#define HB_COMP_WARN_NOT_ARRAY 13
#define HB_COMP_WARN_RETURN_TYPE 14
#define HB_COMP_WARN_RETURN_SUSPECT 15
#define HB_COMP_WARN_PARAM_COUNT 16
#define HB_COMP_WARN_PARAM_TYPE 17
#define HB_COMP_WARN_PARAM_SUSPECT 18
#define HB_COMP_WARN_DUP_DECLARATION 19
#define HB_COMP_WARN_DECLARATION_CONFLICT 20
#define HB_COMP_WARN_NOT_INITIALIZED 21
#define HB_COMP_WARN_VAL_NOT_USED 22
#define HB_COMP_WARN_ARRAY_ASSIGN_TYPE 23
#define HB_COMP_WARN_ARRAY_ASSIGN_SUSPECT 24
#define HB_COMP_WARN_CLASS_NOT_FOUND 25
#define HB_COMP_WARN_MESSAGE_NOT_FOUND 26
#define HB_COMP_WARN_MEANINGLESS 27
#define HB_COMP_WARN_UNREACHABLE 28
#define HB_COMP_WARN_DUPL_ANNOUNCE 29
#define HB_COMP_WARN_FORVAR_DUPL 30
#define HB_COMP_WARN_ENUM_INVALID 31
HB_EXTERN_END
#endif /* HB_ERRORS_H_ */