瀏覽代碼

+ utf-8 support for string constants added

git-svn-id: trunk@428 -
florian 20 年之前
父節點
當前提交
ec6d5ff211
共有 9 個文件被更改,包括 2782 次插入2691 次删除
  1. 2 0
      .gitattributes
  2. 2376 2369
      compiler/msg/errore.msg
  3. 5 2
      compiler/msgidx.inc
  4. 321 317
      compiler/msgtxt.inc
  5. 3 1
      compiler/options.pas
  6. 3 1
      compiler/scandir.pas
  7. 56 1
      compiler/scanner.pas
  8. 6 0
      tests/test/tutf81.pp
  9. 10 0
      tests/test/tutf82.pp

+ 2 - 0
.gitattributes

@@ -5074,6 +5074,8 @@ tests/test/tsubdecl.pp svneol=native#text/plain
 tests/test/tunit1.pp svneol=native#text/plain
 tests/test/tunit2.pp svneol=native#text/plain
 tests/test/tunit3.pp svneol=native#text/plain
+tests/test/tutf81.pp svneol=native#text/plain%3Bcharset%3Dutf-8
+tests/test/tutf82.pp svneol=native#text/plain%3Bcharset%3Dutf-8
 tests/test/twide1.pp svneol=native#text/plain
 tests/test/twide2.pp svneol=native#text/plain
 tests/test/uabstrcl.pp svneol=native#text/plain

+ 2376 - 2369
compiler/msg/errore.msg

@@ -1,2369 +1,2376 @@
-#
-#   $Id: errore.msg,v 1.124 2005/05/05 14:52:50 florian Exp $
-#   This file is part of the Free Pascal Compiler
-#   Copyright (c) 1999-2000 by the Free Pascal Development team
-#
-#   English (default) Language File for Free Pascal
-#
-#   See the file COPYING.FPC, included in this distribution,
-#   for details about the copyright.
-#
-#   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.
-#
-#
-# The constants are build in the following order:
-# <part>_<type>_<txtidentifier>
-#
-# <part> is the part of the compiler the message is used
-#   asmr_     assembler parsing
-#   asmw_     assembler writing/binary writers
-
-#   unit_     unit handling
-#   scan_     scanner
-#   parser_   parser
-#   type_     type checking
-#   general_  general info
-#   exec_     calls to assembler, linker, binder
-#
-# <type> the type of the message it should normally used for
-#   f_   fatal error
-#   e_   error
-#   w_   warning
-#   n_   note
-#   h_   hint
-#   i_   info
-#   l_   add linenumber
-#   u_   used
-#   t_   tried
-#   c_   conditional
-#   d_   debug message
-#   x_   executable informations
-#
-
-#
-# General
-#
-# 01016 is the last used one
-#
-# BeginOfTeX
-% \section{General compiler messages}
-% This section gives the compiler messages which are not fatal, but which
-% display useful information. The number of such messages can be
-% controlled with the various verbosity level \var{-v} switches.
-% \begin{description}
-general_t_compilername=01000_T_Compiler: $1
-% When the \var{-vt} switch is used, this line tells you what compiler
-% is used.
-general_d_sourceos=01001_D_Compiler OS: $1
-% When the \var{-vd} switch is used, this line tells you what the source
-% operating system is.
-general_i_targetos=01002_I_Target OS: $1
-% When the \var{-vd} switch is used, this line tells you what the target
-% operating system is.
-general_t_exepath=01003_T_Using executable path: $1
-% When the \var{-vt} switch is used, this line tells you where the compiler
-% looks for it's binaries.
-general_t_unitpath=01004_T_Using unit path: $1
-% When the \var{-vt} switch is used, this line tells you where the compiler
-% looks for compiled units. You can set this path with the \var{-Fu}
-general_t_includepath=01005_T_Using include path: $1
-% When the \var{-vt} switch is used, this line tells you where the compiler
-% looks for it's include files (files used in \var{\{\$I xxx\}} statements).
-% You can set this path with the \var{-I} option.
-general_t_librarypath=01006_T_Using library path: $1
-% When the \var{-vt} switch is used, this line tells you where the compiler
-% looks for the libraries. You can set this path with the \var{-Fl} option.
-general_t_objectpath=01007_T_Using object path: $1
-% When the \var{-vt} switch is used, this line tells you where the compiler
-% looks for object files you link in (files used in \var{\{\$L xxx\}} statements).
-% You can set this path with the \var{-Fo} option.
-general_i_abslines_compiled=01008_I_$1 Lines compiled, $2 sec
-% When the \var{-vi} switch is used, the compiler reports the number
-% of lines compiled, and the time it took to compile them (real time,
-% not program time).
-general_f_no_memory_left=01009_F_No memory left
-% The compiler doesn't have enough memory to compile your program. There are
-% several remedies for this:
-% \begin{itemize}
-% \item If you're using the build option of the compiler, try compiling the
-% different units manually.
-% \item If you're compiling a huge program, split it up in units, and compile
-% these separately.
-% \item If the previous two don't work, recompile the compiler with a bigger
-% heap (you can use the \var{-Ch} option for this, \seeo{Ch})
-% \end{itemize}
-general_i_writingresourcefile=01010_I_Writing Resource String Table file: $1
-% This message is shown when the compiler writes the Resource String Table
-% file containing all the resource strings for a program.
-general_e_errorwritingresourcefile=01011_E_Writing Resource String Table file: $1
-% This message is shown when the compiler encountered an error when writing
-% the Resource String Table file
-general_i_fatal=01012_I_Fatal:
-% Prefix for Fatal Errors
-general_i_error=01013_I_Error:
-% Prefix for Errors
-general_i_warning=01014_I_Warning:
-% Prefix for Warnings
-general_i_note=01015_I_Note:
-% Prefix for Notes
-general_i_hint=01016_I_Hint:
-% Prefix for Hints
-general_e_path_does_not_exist=01017_E_Path "$1" does not exist
-% The specified path does not exist.
-general_f_compilation_aborted=01018_F_Compilation aborted
-% \end{description}
-#
-# Scanner
-#
-# 02063 is the last used one
-#
-% \section{Scanner messages.}
-% This section lists the messages that the scanner emits. The scanner takes
-% care of the lexical structure of the pascal file, i.e. it tries to find
-% reserved words, strings, etc. It also takes care of directives and
-% conditional compiling handling.
-% \begin{description}
-scan_f_end_of_file=02000_F_Unexpected end of file
-% this typically happens in one of the following cases :
-% \begin{itemize}
-% \item The source file ends before the final \var{end.} statement. This
-% happens mostly when the \var{begin} and \var{end} statements aren't
-% balanced;
-% \item An include file ends in the middle of a statement.
-% \item A comment was not closed
-% \end{itemize}
-scan_f_string_exceeds_line=02001_F_String exceeds line
-% There is a missing closing ' in a string, so it occupies
-% multiple lines.
-scan_f_illegal_char=02002_F_illegal character "$1" ($2)
-% An illegal character was encountered in the input file.
-scan_f_syn_expected=02003_F_Syntax error, "$1" expected but "$2" found
-% This indicates that the compiler expected a different token than
-% the one you typed. It can occur almost everywhere where you make a
-% mistake against the pascal language.
-scan_t_start_include_file=02004_TL_Start reading includefile $1
-% When you provide the \var{-vt} switch, the compiler tells you
-% when it starts reading an included file.
-scan_w_comment_level=02005_W_Comment level $1 found
-% When the \var{-vw} switch is used, then the compiler warns you if
-% it finds nested comments. Nested comments are not allowed in Turbo Pascal
-% and can be a possible source of errors.
-scan_n_ignored_switch=02008_N_Ignored compiler switch "$1"
-% With \var{-vn} on, the compiler warns if it ignores a switch
-scan_w_illegal_switch=02009_W_Illegal compiler switch "$1"
-% You included a compiler switch (i.e. \var{\{\$... \}}) which the compiler
-% does not recognise
-scan_w_switch_is_global=02010_W_Misplaced global compiler switch
-% The compiler switch is misplaced, and should be located at
-% the start of the unit or program.
-scan_e_illegal_char_const=02011_E_Illegal char constant
-% This happens when you specify a character with its ASCII code, as in
-% \var{\#96}, but the number is either illegal, or out of range.
-scan_f_cannot_open_input=02012_F_Can't open file "$1"
-% \fpc cannot find the program or unit source file you specified on the
-% command line.
-scan_f_cannot_open_includefile=02013_F_Can't open include file "$1"
-% \fpc cannot find the source file you specified in a \var{\{\$include ..\}}
-% statement.
-scan_w_only_pack_records=02015_W_Records fields can be aligned to 1,2,4,8,16 or 32 bytes only
-% You are specifying the \var{\{\$PACKRECORDS n\} } with an illegal value for
-% \var{n}. Only 1, 2, 4, 8, 16 and 32 are valid in this case.
-scan_w_only_pack_enum=02016_W_Enumerated can be saved in 1,2 or 4 bytes only
-% You are specifying the \var{\{\$PACKENUM n\}} with an illegal value for
-% \var{n}. Only 1,2 or 4 are valid in this case.
-scan_e_endif_expected=02017_E_$ENDIF expected for $1 $2 defined in $3 line $4
-% Your conditional compilation statements are unbalanced.
-scan_e_preproc_syntax_error=02018_E_Syntax error while parsing a conditional compiling expression
-% There is an error in the expression following the \var{\{\$if ..\}}, $ifc or $setc compiler
-% directives.
-scan_e_error_in_preproc_expr=02019_E_Evaluating a conditional compiling expression
-% There is an error in the expression following the \var{\{\$if ..\}}, $ifc or $setc compiler
-% directives.
-scan_w_macro_cut_after_255_chars=02020_W_Macro contents are limited to 255 characters in length
-% The contents of macros cannot be longer than 255 characters.
-scan_e_endif_without_if=02021_E_ENDIF without IF(N)DEF
-% Your \var{\{\$IFDEF ..\}} and {\{\$ENDIF\}} statements aren't balanced.
-scan_f_user_defined=02022_F_User defined: $1
-% A user defined fatal error occurred. see also the \progref
-scan_e_user_defined=02023_E_User defined: $1
-% A user defined error occurred. see also the \progref
-scan_w_user_defined=02024_W_User defined: $1
-% A user defined warning occurred. see also the \progref
-scan_n_user_defined=02025_N_User defined: $1
-% A user defined note was encountered. see also the \progref
-scan_h_user_defined=02026_H_User defined: $1
-% A user defined hint was encountered. see also the \progref
-scan_i_user_defined=02027_I_User defined: $1
-% User defined information was encountered. see also the \progref
-scan_e_keyword_cant_be_a_macro=02028_E_Keyword redefined as macro has no effect
-% You cannot redefine keywords with macros.
-scan_f_macro_buffer_overflow=02029_F_Macro buffer overflow while reading or expanding a macro
-% Your macro or it's result  was too long for the compiler.
-scan_w_macro_too_deep=02030_W_Expanding of macros exceeds a depth of 16.
-% When expanding a macro, macros have been nested to a level of 16.
-% The compiler will expand no further, since this may be a sign that
-% recursion is used.
-scan_w_wrong_styled_switch=02031_W_compiler switches aren't supported in // styled comments
-% Compiler switches should be in normal pascal style comments.
-scan_d_handling_switch=02032_DL_Handling switch "$1"
-% When you set debugging info on (\var{-vd}) the compiler tells you when it
-% is evaluating conditional compile statements.
-scan_c_endif_found=02033_CL_ENDIF $1 found
-% When you turn on conditional messages(\var{-vc}), the compiler tells you
-% where it encounters conditional statements.
-scan_c_ifdef_found=02034_CL_IFDEF $1 found, $2
-% When you turn on conditional messages(\var{-vc}), the compiler tells you
-% where it encounters conditional statements.
-scan_c_ifopt_found=02035_CL_IFOPT $1 found, $2
-% When you turn on conditional messages(\var{-vc}), the compiler tells you
-% where it encounters conditional statements.
-scan_c_if_found=02036_CL_IF $1 found, $2
-% When you turn on conditional messages(\var{-vc}), the compiler tells you
-% where it encounters conditional statements.
-scan_c_ifndef_found=02037_CL_IFNDEF $1 found, $2
-% When you turn on conditional messages(\var{-vc}), the compiler tells you
-% where it encounters conditional statements.
-scan_c_else_found=02038_CL_ELSE $1 found, $2
-% When you turn on conditional messages(\var{-vc}), the compiler tells you
-% where it encounters conditional statements.
-scan_c_skipping_until=02039_CL_Skipping until...
-% When you turn on conditional messages(\var{-vc}), the compiler tells you
-% where it encounters conditional statements, and whether it is skipping or
-% compiling parts.
-scan_i_press_enter=02040_I_Press <return> to continue
-% When the \var{-vi} switch is used, the compiler stops compilation
-% and waits for the \var{Enter} key to be pressed when it encounters
-% a \var{\{\$STOP\}} directive.
-scan_w_unsupported_switch=02041_W_Unsupported switch "$1"
-% When warnings are turned on (\var{-vw}) the compiler warns you about
-% unsupported switches. This means that the switch is used in Delphi or
-% Turbo Pascal, but not in \fpc
-scan_w_illegal_directive=02042_W_Illegal compiler directive "$1"
-% When warings are turned on (\var{-vw}) the compiler warns you about
-% unrecognised switches. For a list of recognised switches, \progref
-scan_t_back_in=02043_TL_Back in $1
-% When you use (\var{-vt}) the compiler tells you when it has finished
-% reading an include file.
-scan_w_unsupported_app_type=02044_W_Unsupported application type: "$1"
-% You get this warning, ff you specify an unknown application type
-% with the directive \var{\{\$APPTYPE\}}
-scan_w_app_type_not_support=02045_W_APPTYPE is not supported by the target OS
-% The \var{\{\$APPTYPE\}} directive is supported by certain operating systems only.
-scan_w_description_not_support=02046_W_DESCRIPTION is not supported by the target OS
-% The \var{\{\$DESCRIPTION\}} directive is not supported on this target OS
-scan_n_version_not_support=02047_N_VERSION is not supported by target OS
-% The \var{\{\$VERSION\}} directive is not supported on this target OS
-scan_n_only_exe_version=02048_N_VERSION only for exes or DLLs
-% The \var{\{\$VERSION\}} directive is only used for executable or DLL sources.
-scan_w_wrong_version_ignored=02049_W_Wrong format for VERSION directive "$1"
-% The \var{\{\$VERSION\}} directive format is majorversion.minorversion
-% where majorversion and minorversion are words.
-scan_e_illegal_asmmode_specifier=02050_E_Illegal assembler style specified "$1"
-% When you specify an assembler mode with the \var{\{\$ASMMODE xxx\}}
-% the compiler didn't recognize the mode you specified.
-scan_w_no_asm_reader_switch_inside_asm=02051_W_ASM reader switch is not possible inside asm statement, "$1" will be effective only for next
-% It is not possible to switch from one assembler reader to another
-% inside an assmebler block. The new reader will be used for next
-% assembler statements only.
-scan_e_wrong_switch_toggle=02052_E_Wrong switch toggle, use ON/OFF or +/-
-% You need to use ON or OFF or a + or - to toggle the switch
-scan_e_resourcefiles_not_supported=02053_E_Resource files are not supported for this target
-% The target you are compiling for doesn't support resource files.
-scan_w_include_env_not_found=02054_W_Include environment "$1" not found in environment
-% The included environment variable can't be found in the environment, it will
-% be replaced by an empty string instead.
-scan_e_invalid_maxfpureg_value=02055_E_Illegal value for FPU register limit
-% Valid values for this directive are 0..8 and NORMAL/DEFAULT
-scan_w_only_one_resourcefile_supported=02056_W_Only one resource file is supported for this target
-% The target you are compiling for supports only one resource file.
-% The first resource file found is used, the others are discarded.
-scan_w_macro_support_turned_off=02057_W_Macro support has been turned off
-% A macro declaration has been found, but macro support is currently off,
-% so the declaration will be ignored. To turn macro support on compile with
-% -Sm on the commandline or add \{\$MACRO ON\} in the source
-scan_e_invalid_interface_type=02058_E_Illegal interface type specified. Valids are COM, CORBA or DEFAULT.
-% The interface type that was specified is not supported
-scan_w_appid_not_support=02059_W_APPID is only supported for PalmOS
-% The \var{\{\$APPID\}} directive is only supported for the PalmOS target.
-scan_w_appname_not_support=02060_W_APPNAME is only supported for PalmOS
-% The \var{\{\$APPNAME\}} directive is only supported for the PalmOS target.
-scan_e_string_exceeds_255_chars=02061_E_Constant strings can't be longer than 255 chars
-% A single string constant can contain at most 255 chars. Try splitting up the
-% string in multiple smaller parts and concatenate them with a + operator.
-scan_f_include_deep_ten=02062_F_Including include files exceeds a depth of 16.
-% When including include files the files have been nested to a level of 16.
-% The compiler will expand no further, since this may be a sign that
-% recursion is used.
-scan_e_too_many_push=02063_F_Too many levels of PUSH
-% A maximum of 20 levels is allowed.  This error occur only in mode MacPas.
-scan_e_too_many_pop=02064_E_A POP without a preceding PUSH
-% This error occur only in mode MacPas.
-scan_e_error_macro_lacks_value=02065_E_Macro or compile time variable "$1" does not have any value
-% Thus the conditional compile time expression cannot be evaluated.
-scan_e_wrong_switch_toggle_default=02066_E_Wrong switch toggle, use ON/OFF/DEFAULT or +/-/*
-% You need to use ON or OFF or DEFAULT or a + or - or * to toggle the switch
-scan_e_mode_switch_not_allowed=02067_E_Mode switch "$1" not allowed here
-% A mode switch has already been encountered, or, in case of option -Mmacpas,
-% a mode switch occur after UNIT.
-scan_e_error_macro_undefined=02068_E_Compile time variable "$1" is not defined.
-% Thus the conditional compile time expression cannot be evaluated.
-% \end{description}
-#
-# Parser
-#
-# 03192 is the last used one
-#
-% \section{Parser messages}
-% This section lists all parser messages. The parser takes care of the
-% semantics of you language, i.e. it determines if your pascal constructs
-% are correct.
-% \begin{description}
-parser_e_syntax_error=03000_E_Parser - Syntax Error
-% An error against the Turbo Pascal language was encountered. This happens
-% typically when an illegal character is found in the sources file.
-parser_e_dont_nest_interrupt=03004_E_INTERRUPT procedure can't be nested
-% An \var{INTERRUPT} procedure must be global.
-parser_w_proc_directive_ignored=03005_W_Procedure type "$1" ignored
-% The specified is ignored by FPC programs.
-parser_e_no_overload_for_all_procs=03006_E_Not all declarations of "$1" are declared with OVERLOAD
-% When you want to use overloading using the \var{OVERLOAD} directive, then
-% all declarations need to have \var{OVERLOAD} specified.
-parser_e_export_name_double=03008_E_Duplicate exported function name "$1"
-% Exported function names inside a specific DLL must all be different
-parser_e_export_ordinal_double=03009_E_Duplicate exported function index $1
-% Exported function names inside a specific DLL must all be different
-parser_e_export_invalid_index=03010_E_Invalid index for exported function
-% DLL function index must be in the range \var{1..\$FFFF}
-parser_w_parser_reloc_no_debug=03011_W_Relocatable DLL or executable $1 debug info does not work, disabled.
-parser_w_parser_win32_debug_needs_WN=03012_W_To allow debugging for win32 code you need to disable relocation with -WN option
-% Stabs info is wrong for relocatable DLL or EXES use -WN
-% if you want to debug win32 executables.
-parser_e_constructorname_must_be_init=03013_E_Constructor name must be INIT
-% You are declaring an object constructor with a name which is not \var{init}, and the
-% \var{-Ss} switch is in effect. See the \var{-Ss} switch (\seeo{Ss}).
-parser_e_destructorname_must_be_done=03014_E_Destructor name must be DONE
-% You are declaring an object destructor with a name which is not \var{done}, and the
-% \var{-Ss} switch is in effect. See the \var{-Ss} switch (\seeo{Ss}).
-parser_e_proc_inline_not_supported=03016_E_Procedure type INLINE not supported
-% You tried to compile a program with C++ style inlining, and forgot to
-% specify the \var{-Si} option (\seeo{Si}). The compiler doesn't support C++
-% styled inlining by default.
-parser_w_constructor_should_be_public=03018_W_Constructor should be public
-% Constructors must be in the 'public' part of an object (class) declaration.
-parser_w_destructor_should_be_public=03019_W_Destructor should be public
-% Destructors must be in the 'public' part of an object (class) declaration.
-parser_n_only_one_destructor=03020_N_Class should have one destructor only
-% You can declare only one destructor for a class.
-parser_e_no_local_objects=03021_E_Local class definitions are not allowed
-% Classes must be defined globally. They cannot be defined inside a
-% procedure or function
-parser_f_no_anonym_objects=03022_F_Anonym class definitions are not allowed
-% An invalid object (class) declaration was encountered, i.e. an
-% object or class without methods that isn't derived from another object or
-% class. For example:
-% \begin{verbatim}
-% Type o = object
-%          a : longint;
-%          end;
-% \end{verbatim}
-% will trigger this error.
-parser_n_object_has_no_vmt=03023_N_The object "$1" has no VMT
-% This is a note indicating that the declared object has no
-% virtual method table.
-parser_e_illegal_parameter_list=03024_E_Illegal parameter list
-% You are calling a function with parameters that are of a different type than
-% the declared parameters of the function.
-parser_e_wrong_parameter_size=03026_E_Wrong number of parameters specified
-% There is an error in the parameter list of the function or procedure,
-% the number of parameters is not correct.
-parser_e_overloaded_no_procedure=03027_E_overloaded identifier "$1" isn't a function
-% The compiler encountered a symbol with the same name as an overloaded
-% function, but it is not a function it can overload.
-parser_e_overloaded_have_same_parameters=03028_E_overloaded functions have the same parameter list
-% You're declaring overloaded functions, but with the same parameter list.
-% Overloaded function must have at least 1 different parameter in their
-% declaration.
-parser_e_header_dont_match_forward=03029_E_function header doesn't match the forward declaration "$1"
-% You declared a function with same parameters but
-% different result type or function modifiers.
-parser_e_header_different_var_names=03030_E_function header "$1" doesn't match forward : var name changes $2 => $3
-% You declared the function in the \var{interface} part, or with the
-% \var{forward} directive, but define it with a different parameter list.
-parser_n_duplicate_enum=03031_N_Values in enumeration types have to be ascending
-% \fpc allows enumeration constructions as in C. Given the following
-% declaration two declarations:
-% \begin{verbatim}
-% type a = (A_A,A_B,A_E:=6,A_UAS:=200);
-% type a = (A_A,A_B,A_E:=6,A_UAS:=4);
-% \end{verbatim}
-% The second declaration would produce an error. \var{A\_UAS} needs to have a
-% value higher than \var{A\_E}, i.e. at least 7.
-parser_e_no_with_for_variable_in_other_segments=03033_E_With can not be used for variables in a different segment
-% With stores a variable locally on the stack,
-% but this is not possible if the variable belongs to another segment.
-parser_e_too_much_lexlevel=03034_E_function nesting > 31
-% You can nest function definitions only 31 times.
-parser_e_range_check_error=03035_E_range check error while evaluating constants
-% The constants are out of their allowed range.
-parser_w_range_check_error=03036_W_range check error while evaluating constants
-% The constants are out of their allowed range.
-parser_e_double_caselabel=03037_E_duplicate case label
-% You are specifying the same label 2 times in a \var{case} statement.
-parser_e_case_lower_less_than_upper_bound=03038_E_Upper bound of case range is less than lower bound
-% The upper bound of a \var{case} label is less than the lower bound and this
-% is useless
-parser_e_type_const_not_possible=03039_E_typed constants of classes are not allowed
-% You cannot declare a constant of type class or object.
-parser_e_no_overloaded_procvars=03040_E_functions variables of overloaded functions are not allowed
-% You are trying to assign an overloaded function to a procedural variable.
-% This is not allowed
-parser_e_invalid_string_size=03041_E_string length must be a value from 1 to 255
-% The length of a shortstring in Pascal is limited to 255 characters. You are
-% trying to declare a string with length lower than 1 or greater than 255
-parser_w_use_extended_syntax_for_objects=03042_W_use extended syntax of NEW and DISPOSE for instances of objects
-% If you have a pointer \var{a} to a class type, then the statement
-% \var{new(a)} will not initialize the class (i.e. the constructor isn't
-% called), although space will be allocated. you should issue the
-% \var{new(a,init)} statement. This will allocate space, and call the
-% constructor of the object
-parser_w_no_new_dispose_on_void_pointers=03043_W_use of NEW or DISPOSE for untyped pointers is meaningless
-parser_e_no_new_dispose_on_void_pointers=03044_E_use of NEW or DISPOSE is not possible for untyped pointers
-% You cannot use \var{new(p)} or \var{dispose(p)} if \var{p} is an untyped pointer
-% because no size is associated to an untyped pointer.
-% Accepted for compatibility in \var{tp} and \var{delphi} modes.
-parser_e_class_id_expected=03045_E_class identifier expected
-% This happens when the compiler scans a procedure declaration that contains
-% a dot,
-% i.e., a object or class method, but the type in front of the dot is not
-% a known type.
-parser_e_no_type_not_allowed_here=03046_E_type identifier not allowed here
-% You cannot use a type inside an expression.
-parser_e_methode_id_expected=03047_E_method identifier expected
-% This identifier is not a method.
-% This happens when the compiler scans a procedure declaration that contains
-% a dot, i.e., a object or class method, but the procedure name is not a
-% procedure of this type.
-parser_e_header_dont_match_any_member=03048_E_function header doesn't match any method of this class "$1"
-% This identifier is not a method.
-% This happens when the compiler scans a procedure declaration that contains
-% a dot, i.e., a object or class method, but the procedure name is not a
-% procedure of this type.
-parser_d_procedure_start=03049_DL_procedure/function $1
-% When using the \var{-vd} switch, the compiler tells you when it starts
-% processing a procedure or function implementation.
-parser_e_error_in_real=03050_E_Illegal floating point constant
-% The compiler expects a floating point expression, and gets something else.
-parser_e_fail_only_in_constructor=03051_E_FAIL can be used in constructors only
-% You are using the \var{fail} keyword outside a constructor method.
-parser_e_no_paras_for_destructor=03052_E_Destructors can't have parameters
-% You are declaring a destructor with a parameter list. Destructor methods
-% cannot have parameters.
-parser_e_only_class_methods_via_class_ref=03053_E_Only class methods can be referred with class references
-% This error occurs in a situation like the following:
-% \begin{verbatim}
-% Type :
-%    Tclass = Class of Tobject;
-%
-% Var C : TClass;
-%
-% begin
-% ...
-% C.free
-% \end{verbatim}
-% \var{Free} is not a class method and hence cannot be called with a class
-% reference.
-parser_e_only_class_methods=03054_E_Only class methods can be accessed in class methods
-% This is related to the previous error. You cannot call a method of an object
-% from a inside a class method. The following code would produce this error:
-% \begin{verbatim}
-% class procedure tobject.x;
-%
-% begin
-%   free
-% \end{verbatim}
-% Because free is a normal method of a class it cannot be called from a class
-% method.
-parser_e_case_mismatch=03055_E_Constant and CASE types do not match
-% One of the labels is not of the same type as the case variable.
-parser_e_illegal_symbol_exported=03056_E_The symbol can't be exported from a library
-% You can only export procedures and functions when you write a library. You
-% cannot export variables or constants.
-parser_w_should_use_override=03057_W_An inherited method is hidden by "$1"
-% A method that is declared \var{virtual} in a parent class, should be
-% overridden in the descendent class with the \var{override} directive. If you
-% don't specify the \var{override} directive, you will hide the parent method;
-% you will not override it.
-parser_e_nothing_to_be_overridden=03058_E_There is no method in an ancestor class to be overridden: "$1"
-% You are trying to \var{override} a virtual method of a parent class that does
-% not exist.
-parser_e_no_procedure_to_access_property=03059_E_No member is provided to access property
-% You specified no \var{read} directive for a property.
-parser_w_stored_not_implemented=03060_W_Stored prorperty directive is not yet implemented
-% The \var{stored} directive is not yet implemented
-parser_e_ill_property_access_sym=03061_E_Illegal symbol for property access
-% There is an error in the \var{read} or \var{write} directives for an array
-% property. When you declare an array property, you can only access it with
-% procedures and functions. The following code woud cause such an error.
-% \begin{verbatim}
-% tmyobject = class
-%   i : integer;
-%   property x [i : integer]: integer read I write i;
-% \end{verbatim}
-%
-parser_e_cant_access_protected_member=03062_E_Cannot access a protected field of an object here
-% Fields that are declared in a \var{protected} section of an object or class
-% declaration cannot be accessed outside the module wher the object is
-% defined, or outside descendent object methods.
-parser_e_cant_access_private_member=03063_E_Cannot access a private field of an object here
-% Fields that are declared in a \var{private} section of an object or class
-% declaration cannot be accessed outside the module where the class is
-% defined.
-parser_e_overridden_methods_not_same_ret=03066_E_overridden methods must have the same return type: "$2" is overriden by "$1" which has another return type
-% If you declare overridden methods in a class definition, they must
-% have the same return type.
-parser_e_dont_nest_export=03067_E_EXPORT declared functions can't be nested
-% You cannot declare a function or procedure within a function or procedure
-% that was declared as an export procedure.
-parser_e_methods_dont_be_export=03068_E_methods can't be EXPORTed
-% You cannot declare a procedure that is a method for an object as
-% \var{export}ed.
-parser_e_call_by_ref_without_typeconv=03069_E_call by var parameters have to match exactly: Got "$1" expected "$2"
-% When calling a function declared with \var{var} parameters, the variables in
-% the function call must be of exactly the same type. There is no automatic
-% type conversion.
-parser_e_no_super_class=03070_E_Class isn't a parent class of the current class
-% When calling inherited methods, you are trying to call a method of a non-related
-% class. You can only call an inherited method of a parent class.
-parser_e_self_not_in_method=03071_E_SELF is only allowed in methods
-% You are trying to use the \var{self} parameter outside an object's method.
-% Only methods get passed the \var{self} parameters.
-parser_e_generic_methods_only_in_methods=03072_E_methods can be only in other methods called direct with type identifier of the class
-% A construction like \var{sometype.somemethod} is only allowed in a method.
-parser_e_illegal_colon_qualifier=03073_E_Illegal use of ':'
-% You are using the format \var{:} (colon) 2 times on an expression that
-% is not a real expression.
-parser_e_illegal_set_expr=03074_E_range check error in set constructor or duplicate set element
-% The declaration of a set contains an error. Either one of the elements is
-% outside the range of the set type, either two of the elements are in fact
-% the same.
-parser_e_pointer_to_class_expected=03075_E_Pointer to object expected
-% You specified an illegal type in a \var{new} statement.
-% The extended syntax of \var{new} needs an  object as a parameter.
-parser_e_expr_have_to_be_constructor_call=03076_E_Expression must be constructor call
-% When using the extended syntax of \var{new}, you must specify the constructor
-% method of the object you are trying to create. The procedure you specified
-% is not a constructor.
-parser_e_expr_have_to_be_destructor_call=03077_E_Expression must be destructor call
-% When using the extended syntax of \var{dispose}, you must specify the
-% destructor method of the object you are trying to dispose of.
-% The procedure you specified is not a destructor.
-parser_e_invalid_record_const=03078_E_Illegal order of record elements
-% When declaring a constant record, you specified the fields in the wrong
-% order.
-parser_e_false_with_expr=03079_E_Expression type must be class or record type
-% A \var{with} statement needs an argument that is of the type \var{record}
-% or \var{class}. You are using \var{with} on an expression that is not of
-% this type.
-parser_e_void_function=03080_E_Procedures can't return a value
-% In \fpc, you can specify a return value for a function when using
-% the \var{exit} statement. This error occurs when you try to do this with a
-% procedure. Procedures  cannot return a value.
-parser_e_constructors_always_objects=03081_E_constructors and destructors must be methods
-% You're declaring a procedure as destructor or constructor, when the
-% procedure isn't a class method.
-parser_e_operator_not_overloaded=03082_E_Operator is not overloaded
-% You're trying to use an overloaded operator when it is not overloaded for
-% this type.
-parser_e_no_such_assignment=03083_E_Impossible to overload assignment for equal types
-% You can not overload assignment for types
-% that the compiler considers as equal.
-parser_e_overload_impossible=03084_E_Impossible operator overload
-% The combination of operator, arguments and return type are
-% incompatible.
-parser_e_no_reraise_possible=03085_E_Re-raise isn't possible there
-% You are trying to raise an exception where it is not allowed. You can only
-% raise exceptions in an \var{except} block.
-parser_e_no_new_or_dispose_for_classes=03086_E_The extended syntax of new or dispose isn't allowed for a class
-% You cannot generate an instance of a class with the extended syntax of
-% \var{new}. The constructor must be used for that. For the same reason, you
-% cannot call \var{dispose} to de-allocate an instance of a class, the
-% destructor must be used for that.
-parser_e_procedure_overloading_is_off=03088_E_Procedure overloading is switched off
-% When using the \var{-So} switch, procedure overloading is switched off.
-% Turbo Pascal does not support function overloading.
-parser_e_overload_operator_failed=03089_E_It is not possible to overload this operator (overload = instead)
-% You are trying to overload an operator which cannot be overloaded.
-% The following operators can be overloaded :
-% \begin{verbatim}
-%    +, -, *, /, =, >, <, <=, >=, is, as, in, **, :=
-% \end{verbatim}
-parser_e_comparative_operator_return_boolean=03090_E_Comparative operator must return a boolean value
-% When overloading the \var{=} operator, the function must return a boolean
-% value.
-parser_e_only_virtual_methods_abstract=03091_E_Only virtual methods can be abstract
-% You are declaring a method as abstract, when it is not declared to be
-% virtual.
-parser_f_unsupported_feature=03092_F_Use of unsupported feature!
-% You're trying to force the compiler into doing something it cannot do yet.
-parser_e_mix_of_classes_and_objects=03093_E_The mix of different kind of objects (class, object, interface, etc) isn't allowed
-% You cannot derive \var{objects}, \var{classes}, \var{cppclasses} and \var{interfaces} interttwined . E.g.
-% a class cannot have an object as parent and vice versa.
-parser_w_unknown_proc_directive_ignored=03094_W_Unknown procedure directive had to be ignored: "$1"
-% The procedure directive you specified is unknown.
-parser_e_absolute_only_one_var=03095_E_absolute can only be associated to one variable
-% You cannot specify more than one variable before the \var{absolute} directive.
-% Thus, the following construct will provide this error:
-% \begin{verbatim}
-% Var Z : Longint;
-%     X,Y : Longint absolute Z;
-% \end{verbatim}
-% \item [ absolute can only be associated a var or const ]
-% The address of a \var{absolute} directive can only point to a variable or a
-% typed constant. Therefore, the following code will produce this error:
-% \begin{verbatim}
-%   Procedure X;
-%
-%  var p : longint absolute x;
-% \end{verbatim}
-%
-parser_e_absolute_only_to_var_or_const=03096_E_absolute can only be associated with a var or const
-% The address of a \var{absolute} directive can only point to a variable or
-% constant. Therefore, the following code will produce this error:
-% \begin{verbatim}
-%   Procedure X;
-%
-%  var p : longint absolute x;
-% \end{verbatim}
-%
-parser_e_initialized_only_one_var=03097_E_Only one variable can be initialized
-% You cannot specify more than one variable with a initial value
-% in Delphi mode.
-parser_e_abstract_no_definition=03098_E_Abstract methods shouldn't have any definition (with function body)
-% Abstract methods can only be declared, you cannot implement them. They
-% should be overridden by a descendant class.
-parser_e_overloaded_must_be_all_global=03099_E_This overloaded function can't be local (must be exported)
-% You are defining a overloaded function in the implementation part of a unit,
-% but there is no corresponding declaration in the interface part of the unit.
-parser_w_virtual_without_constructor=03100_W_Virtual methods are used without a constructor in "$1"
-% If you declare objects or classes that contain virtual methods, you need
-% to have a constructor and destructor to initialize them. The compiler
-% encountered an object or class with virtual methods that doesn't have
-% a constructor/destructor pair.
-parser_c_macro_defined=03101_CL_Macro defined: $1
-% When \var{-vc} is used, the compiler tells you when it defines macros.
-parser_c_macro_undefined=03102_CL_Macro undefined: $1
-% When \var{-vc} is used, the compiler tells you when it undefines macros.
-parser_c_macro_set_to=03103_CL_Macro $1 set to $2
-% When \var{-vc} is used, the compiler tells you what values macros get.
-parser_i_compiling=03104_I_Compiling $1
-% When you turn on information messages (\var{-vi}), the compiler tells you
-% what units it is recompiling.
-parser_u_parsing_interface=03105_UL_Parsing interface of unit $1
-% This tells you that the reading of the interface
-% of the current unit starts
-parser_u_parsing_implementation=03106_UL_Parsing implementation of $1
-% This tells you that the code reading of the implementation
-% of the current unit, library or program starts
-parser_d_compiling_second_time=03107_DL_Compiling $1 for the second time
-% When you request debug messages (\var{-vd}) the compiler tells you what
-% units it recompiles for the second time.
-parser_e_no_property_found_to_override=03109_E_No property found to override
-% You want to overrride a property of a parent class, when there is, in fact,
-% no such property in the parent class.
-parser_e_only_one_default_property=03110_E_Only one default property is allowed
-% You specified a property as \var{Default}, but the class already has a
-% default property, and a class can have only one default property.
-parser_e_property_need_paras=03111_E_The default property must be an array property
-% Only array properties of classes can be made \var{default} properties.
-parser_e_constructor_cannot_be_not_virtual=03112_E_Virtual constructors are only supported in class object model
-% You cannot have virtual constructors in objects. You can only have them
-% in classes.
-parser_e_no_default_property_available=03113_E_No default property available
-% You are trying to access a default property of a class, but this class (or one of
-% it's ancestors) doesn't have a default property.
-parser_e_cant_have_published=03114_E_The class can't have a published section, use the {$M+} switch
-% If you want a \var{published} section in a class definition, you must
-% use the \var{\{\$M+\}} switch, whch turns on generation of type
-% information.
-parser_e_forward_declaration_must_be_resolved=03115_E_Forward declaration of class "$1" must be resolved here to use the class as ancestor
-% To be able to use an object as an ancestor object, it must be defined
-% first. This error occurs in the following situation:
-% \begin{verbatim}
-%  Type ParentClas = Class;
-%       ChildClass = Class(ParentClass)
-%         ...
-%       end;
-% \end{verbatim}
-% Where \var{ParentClass} is declared but not defined.
-parser_e_no_local_operator=03116_E_Local operators not supported
-% You cannot overload locally, i.e. inside procedures or function
-% definitions.
-parser_e_proc_dir_not_allowed_in_interface=03117_E_Procedure directive "$1" not allowed in interface section
-% This procedure directive is not allowed in the \var{interface} section of
-% a unit. You can only use it in the \var{implementation} section.
-parser_e_proc_dir_not_allowed_in_implementation=03118_E_Procedure directive "$1" not allowed in implementation section
-% This procedure directive is not defined in the \var{implementation} section of
-% a unit. You can only use it in the \var{interface} section.
-parser_e_proc_dir_not_allowed_in_procvar=03119_E_Procedure directive "$1" not allowed in procvar declaration
-% This procedure directive cannot be part of a procedural or function
-% type declaration.
-parser_e_function_already_declared_public_forward=03120_E_Function is already declared Public/Forward "$1"
-% You will get this error if a function is defined as \var{forward} twice.
-% Or it is once in the \var{interface} section, and once as a \var{forward}
-% declaration in the \var{implmentation} section.
-parser_e_not_external_and_export=03121_E_Can't use both EXPORT and EXTERNAL
-% These two procedure directives are mutually exclusive
-parser_w_not_supported_for_inline=03123_W_"$1" not yet supported inside inline procedure/function
-% Inline procedures don't support this declaration.
-parser_w_inlining_disabled=03124_W_Inlining disabled
-% Inlining of procedures is disabled.
-parser_i_writing_browser_log=03125_I_Writing Browser log $1
-% When information messages are on, the compiler warns you when it
-% writes the browser log (generated with the \var{\{\$Y+ \}} switch).
-parser_h_maybe_deref_caret_missing=03126_H_may be pointer dereference is missing
-% The compiler thinks that a pointer may need a dereference.
-parser_f_assembler_reader_not_supported=03127_F_Selected assembler reader not supported
-% The selected assembler reader (with \var{\{\$ASMMODE xxx\}} is not
-% supported. The compiler can be compiled with or without support for a
-% particular assembler reader.
-parser_e_proc_dir_conflict=03128_E_Procedure directive "$1" has conflicts with other directives
-% You specified a procedure directive that conflicts with other directives.
-% for instance \var{cdecl} and \var{pascal} are mutually exclusive.
-parser_e_call_convention_dont_match_forward=03129_E_Calling convention doesn't match forward
-% This error happens when you declare a function or procedure with
-% e.g. \var{cdecl;} but omit this directive in the implementation, or vice
-% versa. The calling convention is part of the function declaration, and
-% must be repeated in the function definition.
-parser_e_property_cant_have_a_default_value=03131_E_Property can't have a default value
-% Set properties or indexed properties cannot have a default value.
-parser_e_property_default_value_must_const=03132_E_The default value of a property must be constant
-% The value of a \var{default} declared property must be known at compile
-% time. The value you specified is only known at run time. This happens
-% .e.g. if you specify a variable name as a default value.
-parser_e_cant_publish_that=03133_E_Symbol can't be published, can be only a class
-% Only class type variables can be in a \var{published} section of a class
-% if they are not declared as a property.
-parser_e_cant_publish_that_property=03134_E_That kind of property can't be published
-% Properties in a \var{published} section cannot be array properties.
-% they must be moved to public sections. Properties in a \var{published}
-% section must be an ordinal type, a real type, strings or sets.
-parser_e_empty_import_name=03136_E_An import name is required
-% Some targets need a name for the imported procedure or a \var{cdecl} specifier
-parser_e_division_by_zero=03138_E_Division by zero
-% There is a divsion by zero encounted
-parser_e_invalid_float_operation=03139_E_Invalid floating point operation
-% An operation on two real type values produced an overflow or a division
-% by zero.
-parser_e_array_lower_less_than_upper_bound=03140_E_Upper bound of range is less than lower bound
-% The upper bound of a an array declaration is less than the lower bound and this
-% is not possible
-parser_w_string_too_long=03141_W_string "$1" is longer than "$2"
-% The size of the constant string is larger than the size you specified in
-% string type definition
-parser_e_string_larger_array=03142_E_string length is larger than array of char length
-% The size of the constant string is larger than the size you specified in
-% the array[x..y] of char definition
-parser_e_ill_msg_expr=03143_E_Illegal expression after message directive
-% \fpc supports only integer or string values as message constants
-parser_e_ill_msg_param=03144_E_Message handlers can take only one call by ref. parameter
-% A method declared with the \var{message}-directive as message handler
-% can take only one parameter which must be declared as call by reference
-% Parameters are declared as call by reference using the \var{var}-directive
-parser_e_duplicate_message_label=03145_E_Duplicate message label: "$1"
-% A label for a message is used twice in one object/class
-parser_e_self_in_non_message_handler=03146_E_Self can only be an explicit parameter in methods which are message handlers
-% The self parameter can only be passed explicitly to a method which
-% is declared as message handler.
-parser_e_threadvars_only_sg=03147_E_Threadvars can be only static or global
-% Threadvars must be static or global, you can't declare a thread
-% local to a procedure. Local variables are always local to a thread,
-% because every thread has it's own stack and local variables
-% are stored on the stack
-parser_f_direct_assembler_not_allowed=03148_F_Direct assembler not supported for binary output format
-% You can't use direct assembler when using a binary writer, choose an
-% other outputformat or use an other assembler reader
-parser_w_no_objpas_use_mode=03149_W_Don't load OBJPAS unit manually, use \{\$mode objfpc\} or \{\$mode delphi\} instead
-% You are trying to load the ObjPas unit manually from a uses clause. This is
-% not a good idea. Use the \var{\{\$mode objfpc\}} or
-% \var{\{\$mode delphi\}}
-% directives which load the unit automatically
-parser_e_no_object_override=03150_E_OVERRIDE can't be used in objects
-% Override is not supported for objects, use \var{virtual} instead to override
-% a method of a parent object
-parser_e_cant_use_inittable_here=03151_E_Data types which require initialization/finalization can't be used in variant records
-% Some data type (e.g. \var{ansistring}) needs initialization/finalization
-% code which is implicitly generated by the compiler. Such data types
-% can't be used in the variant part of a record.
-parser_e_resourcestring_only_sg=03152_E_Resourcestrings can be only static or global
-% Resourcestring can not be declared local, only global or using the static
-% directive.
-parser_e_exit_with_argument_not__possible=03153_E_Exit with argument can't be used here
-% an exit statement with an argument for the return value can't be used here, this
-% can happen e.g. in \var{try..except} or \var{try..finally} blocks
-parser_e_stored_property_must_be_boolean=03154_E_The type of the storage symbol must be boolean
-% If you specify a storage symbol in a property declaration, it must be of
-% the type boolean
-parser_e_ill_property_storage_sym=03155_E_This symbol isn't allowed as storage symbol
-% You can't use this type of symbol as storage specifier in property
-% declaration. You can use only methods with the result type boolean,
-% boolean class fields or boolean constants
-parser_e_only_publishable_classes_can__be_published=03156_E_Only class which are compiled in $M+ mode can be published
-% In the published section of a class can be only class as fields used which
-% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally
-% such a class should be derived from TPersitent
-parser_e_proc_directive_expected=03157_E_Procedure directive expected
-% When declaring a procedure in a const block you used a ; after the
-% procedure declaration after which a procedure directive must follow.
-% Correct declarations are:
-% \begin{verbatim}
-% const
-%   p : procedure;stdcall=nil;
-%   p : procedure stdcall=nil;
-% \end{verbatim}
-parser_e_invalid_property_index_value=03158_E_The value for a property index must be of an ordinal type
-% The value you use to index a property must be of an ordinal type, for
-% example an integer or enumerated type.
-parser_e_procname_to_short_for_export=03159_E_Procedure name to short to be exported
-% The length of the procedure/function name must be at least 2 characters
-% long. This is because of a bug in dlltool which doesn't parse the .def
-% file correct with a name of length 1.
-parser_e_dlltool_unit_var_problem=03160_E_No DEFFILE entry can be generated for unit global vars
-parser_e_dlltool_unit_var_problem2=03161_E_Compile without -WD option
-% You need to compile this file without the -WD switch on the
-% commandline
-parser_f_need_objfpc_or_delphi_mode=03162_F_You need ObjFpc (-S2) or Delphi (-Sd) mode to compile this module
-% You need to use \{\$mode objfpc\} or \{\$mode delphi\} to compile this file.
-% Or use the equivalent commandline switches -S2 or -Sd.
-parser_e_no_export_with_index_for_target=03163_E_Can't export with index under $1
-% Exporting of functions or procedures with a specified index is not
-% supported on this target.
-parser_e_no_export_of_variables_for_target=03164_E_Exporting of variables is not supported under $1
-% Exporting of variables is not supported on this target.
-parser_e_improper_guid_syntax=03165_E_Improper GUID syntax
-parser_w_interface_mapping_notfound=03168_W_Procedure named "$1" not found that is suitable for implementing the $2.$3
-parser_e_interface_id_expected=03169_E_interface identifier expected
-% This happens when the compiler scans a \var{class} declaration that contains
-% \var{interface} function name mapping code like this:
-% \begin{verbatim}
-% type
-%   TMyObject = class(TObject, IDispatch)
-%     function IUnknown.QueryInterface=MyQueryInterface;
-%     ....
-% \end{verbatim}
-% and the \var{interface} before the dot not listed in the inheritance list.
-parser_e_type_cant_be_used_in_array_index=03170_E_Type "$1" can't be used as array index type
-% Types like \var{qword} or \var{int64} aren't allowed as array index type
-parser_e_no_con_des_in_interfaces=03171_E_Con- and destructors aren't allowed in interfaces
-% Constructor and destructor declarations aren't allowed in interface
-% In the most cases the method \var{QueryInterface} of \var{IUnknown} can
-% be used to create a new interface.
-parser_e_no_access_specifier_in_interfaces=03172_E_Access specifiers can't be used in INTERFACES
-% The access specifiers \var{public}, \var{private}, \var{protected} and
-% \var{pusblished} can't be used in interfaces because all methods
-% of an interfaces must be public.
-parser_e_no_vars_in_interfaces=03173_E_An interface can't contain fields
-% Declarations of fields aren't allowed in interfaces. An interface
-% can contain only methods
-parser_e_no_local_proc_external=03174_E_Can't declare local procedure as EXTERNAL
-% Declaring local procedures as external is not possible. Local procedures
-% get hidden parameters that will make the chance of errors very high
-parser_w_skipped_fields_before=03175_W_Some fields coming before "$1" weren't initialized
-% In Delphi mode, not all fields of a typed constant record have to be
-% initialized, but the compiler warns you when it detects such situations.
-parser_e_skipped_fields_before=03176_E_Some fields coming before "$1" weren't initialized
-% In all syntax modes but Delphi mode, you can't leave some fields uninitialized
-% in the middle of a typed constant record
-parser_w_skipped_fields_after=03177_W_Some fields coming after "$1" weren't initialized
-% You can leave some fields at the end of a type constant record uninitialized
-% (the compiler will initialize them to zero automatically). This may be the cause
-% of subtle problems.
-parser_e_varargs_need_cdecl_and_external=03178_E_VarArgs directive without CDecl and External
-% The varargs directive can only be used with procedures or functions
-% that are declared with \var{cdecl} and \var{external} directives. The varargs directive
-% is only meant to provide a compatible interface to C functions like printf.
-parser_e_self_call_by_value=03179_E_Self must be a normal (call-by-value) parameter
-% You can't declare self as a const or var parameter, it must always be
-% a call-by-value parameter
-parser_e_interface_has_no_guid=03180_E_Interface "$1" has no interface identification
-% When you want to assign an interface to a constant, then the interface
-% must have a GUID value set.
-parser_e_illegal_field_or_method=03181_E_Unknown class field or method identifier "$1"
-% Properties must refer to a field or method in the same class.
-parser_w_proc_overriding_calling=03182_W_Overriding calling convention "$1" with "$2"
-% There are two directives in the procedure declaration that specify a calling
-% convention. Only the last directive will be used
-parser_e_no_procvarobj_const=03183_E_Typed constants of the type "procedure of object" can only be initialized with NIL
-% You can't assign the address of a method to a typed constant which has a
-% 'procedure of object' type, because such a constant requires two addresses:
-% that of the method (which is known at compile time) and that of the object or
-% class instance it operates on (which can not be known at compile time).
-parser_e_default_value_only_one_para=03184_E_Default value can only be assigned to one parameter
-parser_e_default_value_expected_for_para=03185_E_Default parameter required for "$1"
-parser_w_unsupported_feature=03186_W_Use of unsupported feature!
-% You're trying to force the compiler into doing something it cannot do yet.
-parser_h_c_arrays_are_references=03187_H_C arrays are passed by reference
-% Any array passed to a C functions is passed
-% by a pointer (i.e. by reference).
-parser_e_C_array_of_const_must_be_last=03188_E_C array of const must be the last argument
-% You can not add any other argument after an \var{array of const} for
-% \var{cdecl} functions, as the size pushed on stack for this argument is
-% not known.
-parser_h_type_redef=03189_H_Type "$1" redefinition
-% This is an indicator that a previously declared type is
-% being redefined as something else. This may, or may not
-% be, a cause for errors.
-parser_w_cdecl_has_no_high=03190_W_cdecl'ared functions have no high parameter
-% Functions declared with cdecl modifier do not pass an extra implicit parameter.
-parser_w_cdecl_no_openstring=03191_W_cdecl'ared functions do not support open strings
-% Openstring is not supported for cdecl'ared functions.
-parser_e_initialized_not_for_threadvar=03192_E_Cannot initialize variables declared as threadvar
-% Variables declared as threadvar can not be initialized with a default value.
-% The variables will always be filled with zero at the start of a new thread.
-parser_e_msg_only_for_classes=03193_E_Message directive is only allowed in Classes
-% The message directive is only supported for Class types.
-parser_e_procedure_or_function_expected=03194_E_Procedure or Function expected
-% A class method can only be specified for procedures and functions.
-parser_e_illegal_calling_convention=03195_W_Calling convention directive ignored: "$1"
-% Some calling conventions are supported only by certain CPUs. I.e. most non-i386 ports support
-% only the standard ABI calling convention of the CPU.
-parser_e_no_object_reintroduce=03196_E_REINTRODUCE can't be used in objects
-% \var{reintroduce} is not supported for objects.
-parser_e_paraloc_only_one_para=03197_E_Each argument must have it's own location
-% If locations for arguments are specified explicitly as it is required by
-% some syscall conventions, each argument must have it's only location, things
-% like \var{procedure p(i,j : longint 'r1');} aren't allowed
-parser_e_paraloc_all_paras=03198_E_Each argument must have an explicit location
-% If one argument has an explicit argument location, all arguments of a procedure
-% must have one.
-parser_e_illegal_explicit_paraloc=03199_E_Unknown argument location
-% The location specified for an argument isn't recognized by the compiler
-parser_e_32bitint_or_pointer_variable_expected=03200_E_32 Bit-Integer or pointer variable expected
-% The libbase for MorphOS/AmigaOS can be give only as \var{longint}, \var{dword} or any pointer variable.
-parser_e_goto_outside_proc=03201_E_Goto statements aren't allowed between different procedures
-% It isn't allowed to use the \var{goto} statements referencing labels outside the
-% current procedure. The following example shows the problem:
-% \begin{verbatim}
-% ...
-%   procedure p1;
-%   label
-%     l1;
-%
-%     procedure p2;
-%     begin
-%       goto l1; // This goto ISN'T allowed
-%     end;
-%
-%   begin
-%     p2
-%   l1:
-%   end;
-% ...
-%
-% \end{verbatim}
-parser_f_too_complex_proc=03202_F_Procedure too complex, it requires too much registers
-% Your procedure body is too long for the compiler. You should split the
-% procedure into multiple smaller procedures.
-parser_e_illegal_expression=03203_E_Illegal expression
-% This can occur under many circumstances. Mostly when trying to evaluate
-% constant expressions.
-parser_e_invalid_integer=03204_E_Invalid integer expression
-% You made an expression which isn't an integer, and the compiler expects the
-% result to be an integer.
-parser_e_invalid_qualifier=03205_E_Illegal qualifier
-% One of the following is happening :
-% \begin{itemize}
-% \item You're trying to access a field of a variable that is not a record.
-% \item You're indexing a variable that is not an array.
-% \item You're dereferencing a variable that is not a pointer.
-% \end{itemize}
-parser_e_upper_lower_than_lower=03206_E_High range limit < low range limit
-% You are declaring a subrange, and the lower limit is higher than the high
-% limit of the range.
-parser_e_macpas_exit_wrong_param=03207_E_Exit's parameter must be the name of the procedure it is used in
-% Non local exit is not allowed. This error occur only in mode MacPas.
-parser_e_illegal_assignment_to_count_var=03208_E_Illegal assignment to for-loop variable "$1"
-% The type of a \var{for} loop variable must be an ordinal type.
-% Loop variables cannot be reals or strings.
-parser_e_no_local_var_external=03209_E_Can't declare local variable as EXTERNAL
-% Declaring local variables as external is not allowed. Only global variables can reference
-% to external variables.
-parser_e_proc_already_external=03210_E_Procedure is already declared EXTERNAL
-% The procedure is already declared with the EXTERNAL directive in an interface or
-% forward declaration.
-parser_w_implicit_uses_of_variants_unit=03211_W_Implicit uses of Variants unit
-% The Variant type is used in the unit without any used unit using the Variants unit. The
-% compiler has implicitly added the Variants unit to the uses list. To remove this warning
-% the Variants unit needs to be added to the uses statement.
-parser_e_no_static_method_in_interfaces=03212_E_Class and static methods can't be used in INTERFACES
-% The specifier \var{class} and directive \var{static} can't be used in interfaces
-% because all methods of an interfaces must be public.
-parser_e_arithmetic_operation_overflow=03213_E_Overflow in arithmetic operation
-% An operation on two integers values produced an overflow
-% \end{description}
-#
-# Type Checking
-#
-# 04049 is the last used one
-#
-% \section{Type checking errors}
-% This section lists all errors that can occur when type checking is
-% performed.
-% \begin{description}
-type_e_mismatch=04000_E_Type mismatch
-% This can happen in many cases:
-% \begin{itemize}
-% \item The variable you're assigning to is of a different type than the
-% expression in the assignment.
-% \item You are calling a function or procedure with parameters that are
-% incompatible with the parameters in the function or procedure definition.
-% \end{itemize}
-type_e_incompatible_types=04001_E_Incompatible types: got "$1" expected "$2"
-% There is no conversion possible between the two types
-% Another possiblity is that they are declared in different
-% declarations:
-% \begin{verbatim}
-% Var
-%    A1 : Array[1..10] Of Integer;
-%    A2 : Array[1..10] Of Integer;
-%
-% Begin
-%    A1:=A2; { This statement gives also this error, it
-%              is due the strict type checking of pascal }
-% End.
-% \end{verbatim}
-type_e_not_equal_types=04002_E_Type mismatch between "$1" and "$2"
-% The types are not equal
-type_e_type_id_expected=04003_E_Type identifier expected
-% The identifier is not a type, or you forgot to supply a type identifier.
-type_e_variable_id_expected=04004_E_Variable identifier expected
-% This happens when you pass a constant to a routine (such as \var{Inc} var or \var{Dec})
-% when it expects a variable. You can only pass variables as arguments to these functions.
-type_e_integer_expr_expected=04005_E_Integer expression expected, but got "$1"
-% The compiler expects an expression of type integer, but gets a different
-% type.
-type_e_boolean_expr_expected=04006_E_Boolean expression expected, but got "$1"
-% The expression must be a boolean type, it should be return true or
-% false.
-type_e_ordinal_expr_expected=04007_E_Ordinal expression expected
-% The expression must be of ordinal type, i.e., maximum a \var{Longint}.
-% This happens, for instance, when you specify a second argument
-% to \var{Inc} or \var{Dec} that doesn't evaluate to an ordinal value.
-type_e_pointer_type_expected=04008_E_pointer type expected, but got "$1"
-% The variable or expression isn't of the type \var{pointer}. This
-% happens when you pass a variable that isn't a pointer to \var{New}
-% or \var{Dispose}.
-type_e_class_type_expected=04009_E_class type expected, but got "$1"
-% The variable of expression isn't of the type \var{class}. This happens
-% typically when
-% \begin{enumerate}
-% \item The parent class in a class declaration isn't a class.
-% \item An exception handler (\var{On}) contains a type identifier that
-% isn't a class.
-% \end{enumerate}
-type_e_cant_eval_constant_expr=04011_E_Can't evaluate constant expression
-% This error can occur when the bounds of an array you declared does
-% not evaluate to ordinal constants
-type_e_set_element_are_not_comp=04012_E_Set elements are not compatible
-% You are trying to make an operation on two sets, when the set element types
-% are not the same. The base type of a set must be the same when taking the
-% union
-type_e_set_operation_unknown=04013_E_Operation not implemented for sets
-% several binary operations are not defined for sets
-% like div mod ** (also >= <= for now)
-type_w_convert_real_2_comp=04014_W_Automatic type conversion from floating type to COMP which is an integer type
-% An implicit type conversion from a real type to a \var{comp} is
-% encountered. Since \var{comp} is a 64 bit integer type, this may indicate
-% an error.
-type_h_use_div_for_int=04015_H_use DIV instead to get an integer result
-% When hints are on, then an integer division with the '/' operator will
-% procuce this message, because the result will then be of type real
-type_e_strict_var_string_violation=04016_E_string types doesn't match, because of $V+ mode
-% When compiling in \var{\{\$V+\}} mode, the string you pass as a parameter
-% should be of the exact same type as the declared parameter of the procedure.
-type_e_succ_and_pred_enums_with_assign_not_possible=04017_E_succ or pred on enums with assignments not possible
-% When you declared an enumeration type which has assignments in it, as in C,
-% like in the following:
-% \begin{verbatim}
-%   Tenum = (a,b,e:=5);
-% \end{verbatim}
-% you cannot use the \var{Succ} or \var{Pred} functions on them.
-type_e_cant_read_write_type=04018_E_Can't read or write variables of this type
-% You are trying to \var{read} or \var{write} a variable from or to a
-% file of type text, which doesn't support that. Only integer types,
-% reals, pchars and strings can be read from/written to a text file.
-% Booleans can only be written to text files.
-type_e_no_readln_writeln_for_typed_file=04019_E_Can't use readln or writeln on typed file
-% \var{readln} and \var{writeln} are only allowed for text files.
-type_e_no_read_write_for_untyped_file=04020_E_Can't use read or write on untyped file.
-% \var{read} and \var{write} are only allowed for text or typed files.
-type_e_typeconflict_in_set=04021_E_Type conflict between set elements
-% There is at least one set element which is of the wrong type, i.e. not of
-% the set type.
-type_w_maybe_wrong_hi_lo=04022_W_lo/hi(dword/qword) returns the upper/lower word/dword
-% \fpc supports an overloaded version of \var{lo/hi} for \var{longint/dword/int64/qword}
-% which returns the lower/upper word/dword of the argument. TP always uses
-% a 16 bit \var{lo/hi} which returns always bits 0..7 for \var{lo} and the
-% bits 8..15 for \var{hi}. If you want the TP behavior you have
-% to type cast the argument to \var{word/integer}
-type_e_integer_or_real_expr_expected=04023_E_Integer or real expression expected
-% The first argument to \var{str} must a real or integer type.
-type_e_wrong_type_in_array_constructor=04024_E_Wrong type "$1" in array constructor
-% You are trying to use a type in an array constructor which is not
-% allowed.
-type_e_wrong_parameter_type=04025_E_Incompatible type for arg no. $1: Got "$2", expected "$3"
-% You are trying to pass an invalid type for the specified parameter.
-type_e_no_method_and_procedure_not_compatible=04026_E_Method (variable) and Procedure (variable) are not compatible
-% You can't assign a method to a procedure variable or a procedure to a
-% method pointer.
-type_e_wrong_math_argument=04027_E_Illegal constant passed to internal math function
-% The constant argument passed to a ln or sqrt function is out of
-% the definition range of these functions.
-type_e_no_addr_of_constant=04028_E_Can't get the address of constants
-% It is not possible to get the address of a constant, because they
-% aren't stored in memory, you can try making it a typed constant.
-type_e_argument_cant_be_assigned=04029_E_Argument can't be assigned to
-% Only expressions which can be on the left side of an
-% assignment can be passed as call by reference argument
-% Remark: Properties can be only
-% used on the left side of an assignment, but they cannot be used as arguments
-type_e_cannot_local_proc_to_procvar=04030_E_Can't assign local procedure/function to procedure variable
-% It's not allowed to assign a local procedure/function to a
-% procedure variable, because the calling of local procedure/function is
-% different. You can only assign local procedure/function to a void pointer.
-type_e_no_assign_to_addr=04031_E_Can't assign values to an address
-% It is not allowed to assign a value to an address of a variable,constant,
-% procedure or function. You can try compiling with -So if the identifier
-% is a procedure variable.
-type_e_no_assign_to_const=04032_E_Can't assign values to const variable
-% It's not allowed to assign a value to a variable which is declared
-% as a const. This is normally a parameter declared as const, to allow
-% changing the value make the parameter as a value parameter or a var.
-type_e_array_required=04033_E_Array type required
-% If you are accessing a variable using an index '[<x>]' then
-% the type must be an array. In FPC mode also a pointer is allowed.
-type_e_interface_type_expected=04034_E_interface type expected, but got "$1"
-type_w_mixed_signed_unsigned=04035_W_Mixing signed expressions and longwords gives a 64bit result
-% If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa),
-% or if you have overflow and/or range checking turned on and use an arithmetic
-% expression (+, -, *, div, mod) in which both signed numbers and longwords appear,
-% then everything has to be evaluated in 64bit which is slower than normal
-% 32bit arithmetic. You can avoid this by typecasting one operand so it
-% matches the resulttype of the other one.
-type_w_mixed_signed_unsigned2=04036_W_Mixing signed expressions and cardinals here may cause a range check error
-% If you use a binary operator (and, or, xor) and one of
-% the operands is a longword while the other one is a signed expression, then,
-% if range checking is turned on, you may get a range check error because in
-% such a case both operands are converted to longword before the operation is
-% carried out. You can avoid this by typecasting one operand so it
-% matches the resulttype of the other one.
-type_e_typecast_wrong_size_for_assignment=04037_E_Typecast has different size ($1 -> $2) in assignment
-% Type casting to a type with a different size is not allowed when the variable is
-% used for assigning.
-type_e_array_index_enums_with_assign_not_possible=04038_E_enums with assignments can't be used as array index
-% When you declared an enumeration type which has assignments in it, as in C,
-% like in the following:
-% \begin{verbatim}
-%   Tenum = (a,b,e:=5);
-% \end{verbatim}
-% you cannot use it as index of an array.
-type_e_classes_not_related=04039_E_Class or Object types "$1" and "$2" are not related
-%  There is a typecast from one class or object to another while the class/object
-%  are not related. This will probably lead to errors
-type_w_classes_not_related=04040_W_Class types "$1" and "$2" are not related
-%  There is a typecast from one class or object to another while the class/object
-%  are not related. This will probably lead to errors
-type_e_class_or_interface_type_expected=04041_E_Class or interface type expected, but got "$1"
-type_e_type_is_not_completly_defined=04042_E_Type "$1" is not completely defined
-type_w_string_too_long=04043_W_String literal has more characters than short string length
-% The size of the constant string, which is assigned to a shortstring,
-% is longer than the maximum size of the shortstring
-type_w_signed_unsigned_always_false=04044_W_Comparison is always false due to range of values
-% There is a comparison between an unsigned value and a signed constant which is
-% less than zero. Because of type promotion, the statement will always evaluate to
-% false. Exlicitly typecast the constant to the correct range to avoid this problem.
-type_w_signed_unsigned_always_true=04045_W_Comparison is always true due to range of values
-% There is a comparison between an unsigned value and a signed constant which is
-% less than zero. Because of type promotion, the statement will always evaluate to
-% true. Exlicitly typecast the constant to the correct range to avoid this problem.
-type_w_instance_with_abstract=04046_W_Constructing a class "$1" with abstract methods
-% An instance of a class is created which contains non-implemented abstract
-% methods. This will probably lead to a runtime error 211 in the code if that
-% routine is ever called. All abstract methods should be overriden.
-type_h_in_range_check=04047_H_The left operand of the IN operator should be byte sized
-% The left operand of the \var{in} operator is not an ordinal or enumeration which fits
-% within 8-bits, this may lead to range check errors. The  \var{in} operator
-% currently only supports a left operand which fits within a byte. In the case of
-% enumerations, the size of an element of an enumeration can be controlled with
-% the \var{\{\$PACKENUM\}} or \var{\{\$Zn\}} switches.
-type_w_smaller_possible_range_check=04048_W_Type size mismatch, possible loss of data / range check error
-% There is an assignment to a smaller type than the source type. This means that
-% this may cause a range-check error, or may lead to possible loss of data.
-type_h_smaller_possible_range_check=04049_H_Type size mismatch, possible loss of data / range check error
-% There is an assignment to a smaller type than the source type. This means that
-% this may cause a range-check error, or may lead to possible loss of data.
-type_e_cant_take_address_of_abstract_method=04050_E_The address of an abstract method can't be taken
-% An abstract method has no body, so the address of an abstract method can't be taken.
-type_e_operator_not_allowed=04051_E_The operator is not applicable for the operand type
-% You are trying an operator that is not available for the type of the
-% operands
-type_e_constant_expr_expected=04052_E_Constant Expression expected
-% The compiler expects an constant expression, but gets a variable expression.
-type_e_operator_not_supported_for_types=04053_E_Operation "$1" not supported for types "$2" and "$3"
-% The operation is not allowed for the supplied types
-type_e_illegal_type_conversion=04054_E_Illegal type conversion: "$1" to "$2"
-% When doing a type-cast, you must take care that the sizes of the variable and
-% the destination type are the same.
-type_h_pointer_to_longint_conv_not_portable=04055_H_Conversion between ordinals and pointers is not portable
-% If you typecast a pointer to a longint (or vice-versa), this code will not compile
-% on a machine using 64-bit for pointer storage.
-type_w_pointer_to_longint_conv_not_portable=04056_W_Conversion between ordinals and pointers is not portable
-% If you typecast a pointer to a ordinal type of a different size (or vice-versa), this can
-% cause problems. This is a warning to help finding the 32bit specific code where cardinal/longint is used
-% to typecast pointers to ordinals. A solution is to use the ptrint/ptruint types instead.
-type_e_cant_choose_overload_function=04057_E_Can't determine which overloaded function to call
-% You're calling overloaded functions with a parameter that doesn't correspond
-% to any of the declared function parameter lists. e.g. when you have declared
-% a function with parameters \var{word} and \var{longint}, and then you call
-% it with a parameter which is of type \var{integer}.
-type_e_illegal_count_var=04058_E_Illegal counter variable
-% The type of a \var{for} loop variable must be an ordinal type.
-% Loop variables cannot be reals or strings.
-% \end{description}
-#
-# Symtable
-#
-# 05055 is the last used one
-#
-% \section{Symbol handling}
-% This section lists all the messages that concern the handling of symbols.
-% This means all things that have to do with procedure and variable names.
-% \begin{description}
-sym_e_id_not_found=05000_E_Identifier not found "$1"
-% The compiler doesn't know this symbol. Usually happens when you misspel
-% the name of a variable or procedure, or when you forgot to declare a
-% variable.
-sym_f_internal_error_in_symtablestack=05001_F_Internal Error in SymTableStack()
-% An internal error occurred in the compiler; If you encounter such an error,
-% please contact the developers and try to provide  an exact description of
-% the circumstances in which the error occurs.
-sym_e_duplicate_id=05002_E_Duplicate identifier "$1"
-% The identifier was already declared in the current scope.
-sym_h_duplicate_id_where=05003_H_Identifier already defined in $1 at line $2
-% The identifier was already declared in a previous scope.
-sym_e_unknown_id=05004_E_Unknown identifier "$1"
-% The identifier encountered has not been declared, or is used outside the
-% scope where it is defined.
-sym_e_forward_not_resolved=05005_E_Forward declaration not solved "$1"
-% This can happen in two cases:
-% \begin{itemize}
-% \item This happens when you declare a function (in the \var{interface} part, or
-% with a \var{forward} directive, but do not implement it.
-% \item You reference a type which isn't declared in the current \var{type}
-% block.
-% \end{itemize}
-sym_e_error_in_type_def=05007_E_Error in type definition
-% There is an error in your definition of a new array type:
-% \item One of the range delimiters in an array declaration is erroneous.
-% For example, \var{Array [1..1.25]} will trigger this error.
-sym_e_forward_type_not_resolved=05009_E_Forward type not resolved "$1"
-% A symbol was forward defined, but no declaration was encountered.
-sym_e_only_static_in_static=05010_E_Only static variables can be used in static methods or outside methods
-% A static method of an object can only access static variables.
-sym_f_type_must_be_rec_or_class=05012_F_record or class type expected
-% The variable or expression isn't of the type \var{record} or \var{class}.
-sym_e_no_instance_of_abstract_object=05013_E_Instances of classes or objects with an abstract method are not allowed
-% You are trying to generate an instance of a class which has an abstract
-% method that wasn't overridden.
-sym_w_label_not_defined=05014_W_Label not defined "$1"
-% A label was declared, but not defined.
-sym_e_label_used_and_not_defined=05015_E_Label used but not defined "$1"
-% A label was declared and used, but not defined.
-sym_e_ill_label_decl=05016_E_Illegal label declaration
-% This error should never happen; it occurs if a label is defined outside a
-% procedure or function.
-sym_e_goto_and_label_not_supported=05017_E_GOTO and LABEL are not supported (use switch -Sg)
-% You must compile a program which has \var{label}s and \var{goto} statements
-% with the  \var{-Sg} switch. By default, \var{label} and \var{goto} aren't
-% supported.
-sym_e_label_not_found=05018_E_Label not found
-% A \var{goto label} was encountered, but the label isn't declared.
-sym_e_id_is_no_label_id=05019_E_identifier isn't a label
-% The identifier specified after the \var{goto} isn't of type label.
-sym_e_label_already_defined=05020_E_label already defined
-% You are defining a label twice. You can define a label only once.
-sym_e_ill_type_decl_set=05021_E_illegal type declaration of set elements
-% The declaration of a set contains an invalid type definition.
-sym_e_class_forward_not_resolved=05022_E_Forward class definition not resolved "$1"
-% You declared a class, but you did not implement it.
-sym_n_unit_not_used=05023_H_Unit "$1" not used in $2
-% The unit referenced in the \var{uses} clause is not used.
-sym_h_para_identifier_not_used=05024_H_Parameter "$1" not used
-% The identifier was declared (locally or globally) but
-% was not used (locally or globally).
-sym_n_local_identifier_not_used=05025_N_Local variable "$1" not used
-% You have declared, but not used a variable in a procedure or function
-% implementation.
-sym_h_para_identifier_only_set=05026_H_Value parameter "$1" is assigned but never used
-% The identifier was declared (locally or globally)
-% set but not used (locally or globally).
-sym_n_local_identifier_only_set=05027_N_Local variable "$1" is assigned but never used
-% The variable in a procedure or function
-% implementation is declared, set but never used.
-sym_h_local_symbol_not_used=05028_H_Local $1 "$2" is not used
-% A local symbol is never used.
-sym_n_private_identifier_not_used=05029_N_Private field "$1.$2" is never used
-sym_n_private_identifier_only_set=05030_N_Private field "$1.$2" is assigned but never used
-sym_n_private_method_not_used=05031_N_Private method "$1.$2" never used
-sym_e_set_expected=05032_E_Set type expected
-% The variable or expression is not of type \var{set}. This happens in an
-% \var{in} statement.
-sym_w_function_result_not_set=05033_W_Function result does not seem to be set
-% You can get this warning if the compiler thinks that a function return
-% value is not set. This will not be displayed for assembler procedures,
-% or procedures that contain assembler blocks.
-sym_w_wrong_C_pack=05034_W_Type "$1" is not aligned correctly in current record for C
-% Arrays with sizes not multiples of 4 will be wrongly aligned
-% for C structures.
-sym_e_illegal_field=05035_E_Unknown record field identifier "$1"
-% The field doesn't exist in the record/object definition.
-sym_w_uninitialized_local_variable=05036_W_Local variable "$1" does not seem to be initialized
-% This message is displayed if the compiler thinks that a variable will
-% be used (i.e. appears in the right-hand-side of an expression) when it
-% was not initialized first (i.e. appeared in the left-hand side of an
-% assigment)
-sym_w_uninitialized_variable=05037_W_Variable "$1" does not seem to be initialized
-% This message is displayed if the compiler thinks that a variable will
-% be used (i.e. appears in the right-hand-side of an expression) when it
-% was not initialized first (i.e. appeared in the left-hand side of an
-% assigment)
-sym_e_id_no_member=05038_E_identifier idents no member "$1"
-% This error is generated when an identifier of a record,
-% field, or method is accessed while it is not defined.
-sym_h_param_list=05039_H_Found declaration: $1
-% You get this when you use the \var{-vh} switch. In case an overloaded
-% procedure is not found, then all candidate overloaded procedures are
-% listed, with their parameter lists.
-sym_e_segment_too_large=05040_E_Data element too large
-% You get this when you declare a data element whose size exceeds the
-% prescribed limit (2 Gb on 80386+/68020+ processors)
-sym_e_no_matching_implementation_found=05042_E_No matching implementation for interface method "$1" found
-% There was no matching method found which could implement the interface
-% method. Check argument types and result type of the methods.
-sym_w_deprecated_symbol=05043_W_Symbol "$1" is deprecated
-% This means that a symbol (a variable, routine, etc...) which is
-% declared as \var{deprecated} is used. Deprecated symbols may no longer
-% be available in newer versions of the unit / library. Usage of this symbol
-% should be avoided as much as possible.
-sym_w_non_portable_symbol=05044_W_Symbol "$1" is not portable
-% This means that a symbol (a variable, routine, etc...) which is
-% declared as \var{platform} is used. This symbol's value, usage
-% and availability is platform specific and should not be used
-% if the source code must be portable.
-sym_w_non_implemented_symbol=05055_W_Symbol "$1" is not implemented
-% This means that a symbol (a variable, routine, etc...) which is
-% declared as \var{unimplemented} is used. This symbol is defined,
-% but is not yet implemented on this specific platform.
-sym_e_cant_create_unique_type=05056_E_Can't create unique type from this type
-% Only simple types like ordinal, float and string types are supported when
-% redefining a type with \var{type newtype = type oldtype;}.
-sym_h_uninitialized_local_variable=05057_H_Local variable "$1" does not seem to be initialized
-% This message is displayed if the compiler thinks that a variable will
-% be used (i.e. appears in the right-hand-side of an expression) when it
-% was not initialized first (i.e. appeared in the left-hand side of an
-% assigment)
-sym_h_uninitialized_variable=05058_H_Variable "$1" does not seem to be initialized
-% This message is displayed if the compiler thinks that a variable will
-% be used (i.e. appears in the right-hand-side of an expression) when it
-% was not initialized first (i.e. appeared in the left-hand side of an
-% assigment)
-% \end{description}
-#
-# Codegenerator
-#
-# 06040 is the last used one
-#
-% \section{Code generator messages}
-% This section lists all messages that can be displayed if the code
-% generator encounters an error condition.
-% \begin{description}
-cg_e_parasize_too_big=06009_E_Parameter list size exceeds 65535 bytes
-% The I386 processor limits the parameter list to 65535 bytes (the \var{RET}
-% instruction causes this)
-cg_e_file_must_call_by_reference=06012_E_File types must be var parameters
-% You cannot specify files as value parameters, i.e. they must always be
-% declared \var{var} parameters.
-cg_e_cant_use_far_pointer_there=06013_E_The use of a far pointer isn't allowed there
-% Free Pascal doesn't support far pointers, so you cannot take the address of
-% an expression which has a far reference as a result. The \var{mem} construct
-% has a far reference as a result, so the following code will produce this
-% error:
-% \begin{verbatim}
-% var p : pointer;
-% ...
-% p:=@mem[a000:000];
-% \end{verbatim}
-cg_e_dont_call_exported_direct=06015_E_EXPORT declared functions can't be called
-% No longer in use.
-cg_w_member_cd_call_from_method=06016_W_Possible illegal call of constructor or destructor
-% The compiler detected that a constructor or destructor is called within a
-% a method. This will probably lead to problems, since constructors / destructors
-% require parameters on entry.
-cg_n_inefficient_code=06017_N_Inefficient code
-% Your statement seems dubious to the compiler.
-cg_w_unreachable_code=06018_W_unreachable code
-% You specified a construct which will never be executed. Example:
-% \begin{verbatim}
-% while false do
-%   begin
-%   {.. code ...}
-%   end;
-% \end{verbatim}
-cg_e_cant_call_abstract_method=06020_E_Abstract methods can't be called directly
-% You cannot call an abstract method directy, instead you must call a
-% overriding child method, because an abstract method isn't implemented.
-cg_d_register_weight=06027_DL_Register $1 weight $2 $3
-% Debugging message. Shown when the compiler considers a variable for
-% keeping in the registers.
-cg_d_stackframe_omited=06029_DL_Stack frame is omitted
-% Some procedure/functions do not need a complete stack-frame, so it is omitted.
-% This message will be displayed when the {-vd} switch is used.
-cg_e_unable_inline_object_methods=06031_E_Object or class methods can't be inline.
-% You cannot have inlined object methods.
-cg_e_unable_inline_procvar=06032_E_Procvar calls cannot be inline.
-% A procedure with a procedural variable call cannot be inlined.
-cg_e_no_code_for_inline_stored=06033_E_No code for inline procedure stored
-% The compiler couldn't store code for the inline procedure.
-cg_e_can_access_element_zero=06035_E_Element zero of an ansi/wide- or longstring can't be accessed, use (set)length instead
-% You should use \var{setlength} to set the length of an ansi/wide/longstring
-% and \var{length} to get the length of such a string types
-cg_e_cannot_call_cons_dest_inside_with=06037_E_Constructors or destructors can not be called inside a 'with' clause
-% Inside a \var{with} clause you cannot call a constructor or destructor for the
-% object you have in the \var{with} clause.
-cg_e_cannot_call_message_direct=06038_E_Cannot call message handler methods directly
-% A message method handler method cannot be called directly if it contains an
-% explicit self argument
-cg_e_goto_inout_of_exception_block=06039_E_Jump in or outside of an exception block
-% It is not allowed to jump in or outside of an exception block like \var{try..finally..end;}:
-% \begin{verbatim}
-% label 1;
-%
-% ...
-%
-% try
-%    if not(final) then
-%      goto 1;   // this line will cause an error
-% finally
-%   ...
-% end;
-% 1:
-% ...
-% \end{verbatim}
-cg_e_control_flow_outside_finally=06040_E_Control flow statements aren't allowed in a finally block
-% It isn't allowed to use the control flow statements \var{break},
-% \var{continue} and \var{exit}
-% inside a finally statement. The following example shows the problem:
-% \begin{verbatim}
-% ...
-%   try
-%      p;
-%   finally
-%      ...
-%      exit;  // This exit ISN'T allowed
-%   end;
-% ...
-%
-% \end{verbatim}
-% If the procedure \var{p} raises an exception the finally block is
-% executed. If the execution reaches the exit, it's unclear what to do:
-% exiting the procedure or searching for another exception handler
-cg_w_parasize_too_big=06041_W_Parameters size exceeds limit for certain cpu's
-% This indicates that you are declaring more than 64K of parameters, which
-% might not be supported on other processor targets.
-cg_w_localsize_too_big=06042_W_Local variable size exceed limit for certain cpu's
-% This indicates that you are declaring more than 32K of lcoal variables, which
-% might not be supported on other processor targets.
-cg_e_localsize_too_big=06043_E_Local variables size exceeds supported limit
-% This indicates that you are declaring more than 32K of lcoal variables, which
-% is not supported by this processor.
-cg_e_break_not_allowed=06044_E_BREAK not allowed
-% You're trying to use \var{break} outside a loop construction.
-cg_e_continue_not_allowed=06045_E_CONTINUE not allowed
-% You're trying to use \var{continue} outside a loop construction.
-% \end{description}
-# EndOfTeX
-
-#
-# Assembler reader
-#
-# 07097 is the last used one
-#
-asmr_d_start_reading=07000_DL_Starting $1 styled assembler parsing
-% This informs you that an assembler block is being parsed
-asmr_d_finish_reading=07001_DL_Finished $1 styled assembler parsing
-% This informs you that an assembler block has finished.
-asmr_e_none_label_contain_at=07002_E_Non-label pattern contains @
-% A identifier which isn't a label can't contain a @.
-asmr_e_building_record_offset=07004_E_Error building record offset
-% There has an error occured while building the offset of a record/object
-% structure, this can happend when there is no field specified at all or
-% an unknown field identifier is used.
-asmr_e_offset_without_identifier=07005_E_OFFSET used without identifier
-% You can only use OFFSET with an identifier. Other syntaxes aren't
-% supported
-asmr_e_type_without_identifier=07006_E_TYPE used without identifier
-% You can only use TYPE with an identifier. Other syntaxes aren't
-% supported
-asmr_e_no_local_or_para_allowed=07007_E_Cannot use local variable or parameters here
-% You can't use a local variable or parameter here, mostly because the
-% addressing of locals and parameters is done using the frame pointer register so the
-% address can't be obtained directly.
-asmr_e_need_offset=07008_E_need to use OFFSET here
-% You need to use OFFSET <id> here to get the address of the identifier.
-asmr_e_need_dollar=07009_E_need to use $ here
-% You need to use $<id> here to get the address of the identifier.
-asmr_e_cant_have_multiple_relocatable_symbols=07010_E_Cannot use multiple relocatable symbols
-% You can't have more than one relocatable symbol (variable/typed constant)
-% in one argument.
-asmr_e_only_add_relocatable_symbol=07011_E_Relocatable symbol can only be added
-% Relocatable symbols (variable/typed constant) can't be used with other
-% operators. Only addition is allowed.
-asmr_e_invalid_constant_expression=07012_E_Invalid constant expression
-% There is an error in the constant expression.
-asmr_e_relocatable_symbol_not_allowed=07013_E_Relocatable symbol is not allowed
-% You can't use a relocatable symbol (variable/typed constant) here.
-asmr_e_invalid_reference_syntax=07014_E_Invalid reference syntax
-% There is an error in the reference.
-asmr_e_local_para_unreachable=07015_E_You can not reach $1 from that code
-% You can not read directly the value of local or para
-% of a higher level in assembler code (except for
-% local assembler code without parameter nor locals).
-asmr_e_local_label_not_allowed_as_ref=07016_E_Local symbols/labels aren't allowed as references
-% You can't use local symbols/labels as references
-asmr_e_wrong_base_index=07017_E_Invalid base and index register usage
-% There is an error with the base and index register, they are
-% probably incorrect
-asmr_w_possible_object_field_bug=07018_W_Possible error in object field handling
-% Fields of objects or classes can be reached directly in normal or objfpc
-% modes but TP and Delphi modes treat the field name as a simple offset.
-asmr_e_wrong_scale_factor=07019_E_Wrong scale factor specified
-% The scale factor given is wrong, only 1,2,4 and 8 are allowed
-asmr_e_multiple_index=07020_E_Multiple index register usage
-% You are trying to use more than one index register
-asmr_e_invalid_operand_type=07021_E_Invalid operand type
-% The operand type doesn't match with the opcode used
-asmr_e_invalid_string_as_opcode_operand=07022_E_Invalid string as opcode operand: $1
-% The string specified as operand is not correct with this opcode
-asmr_w_CODE_and_DATA_not_supported=07023_W_@CODE and @DATA not supported
-% @CODE and @DATA are unsupported and are ignored.
-asmr_e_null_label_ref_not_allowed=07024_E_Null label references are not allowed
-asmr_e_expr_zero_divide=07025_E_Divide by zero in asm evaluator
-% There is a division by zero in a constant expression
-asmr_e_expr_illegal=07026_E_Illegal expression
-% There is an illegal expression in a constant expression
-asmr_e_escape_seq_ignored=07027_E_escape sequence ignored: $1
-% There is a C-styled string, but the escape sequence in the string
-% is unknown, and is therefore ignored
-asmr_e_invalid_symbol_ref=07028_E_Invalid symbol reference
-asmr_w_fwait_emu_prob=07029_W_Fwait can cause emulation problems with emu387
-asmr_w_fadd_to_faddp=07030_W_$1 without operand translated into $1P
-asmr_w_enter_not_supported_by_linux=07031_W_ENTER instruction is not supported by Linux kernel
-% ENTER instruction can generate a stack page fault that is not
-% caught correctly by the i386 Linux page handler.
-asmr_w_calling_overload_func=07032_W_Calling an overload function in assembler
-% There is a call to an overloaded method in the assembler block,
-% this might be the sign there is a problem
-asmr_e_unsupported_symbol_type=07033_E_Unsupported symbol type for operand
-asmr_e_constant_out_of_bounds=07034_E_Constant value out of bounds
-asmr_e_error_converting_decimal=07035_E_Error converting decimal $1
-% A constant decimal value does not have the correct syntax
-asmr_e_error_converting_octal=07036_E_Error converting octal $1
-% A constant octal value does not have the correct syntax
-asmr_e_error_converting_binary=07037_E_Error converting binary $1
-% A constant binary value does not have the correct syntax
-asmr_e_error_converting_hexadecimal=07038_E_Error converting hexadecimal $1
-% A constant hexadecimal value does not have the correct syntax
-asmr_h_direct_global_to_mangled=07039_H_$1 translated to $2
-asmr_w_direct_global_is_overloaded_func=07040_W_$1 is associated to an overloaded function
-asmr_e_cannot_use_SELF_outside_a_method=07041_E_Cannot use SELF outside a method
-% There is a reference to the \var{self} symbol while it is not
-% allowed. \var{self} can only be referenced inside methods
-asmr_e_cannot_use_OLDEBP_outside_nested_procedure=07042_E_Cannot use OLDEBP outside a nested procedure
-% There is a reference to the \var{oldebp} symbol while it is not
-% allowed. \var{oldebp} can only be referenced inside nested routines
-asmr_e_void_function=07043_W_Procedures can't return any value in asm code
-% Trying to return a value while in a procedure. A procedure
-% does not have any return value
-asmr_e_SEG_not_supported=07044_E_SEG not supported
-asmr_e_size_suffix_and_dest_dont_match=07045_E_Size suffix and destination or source size do not match
-% The register size and the opcode size suffix don't match. This is
-% probably an error in the assembler statement
-asmr_w_size_suffix_and_dest_dont_match=07046_W_Size suffix and destination or source size do not match
-% The register size and the opcode size suffix don't match. This is
-% probably an error in the assembler statement
-asmr_e_syntax_error=07047_E_Assembler syntax error
-% There is an assembler syntax error
-asmr_e_invalid_opcode_and_operand=07048_E_Invalid combination of opcode and operands
-% The opcode cannot be used with this type of operand
-asmr_e_syn_operand=07049_E_Assembler syntax error in operand
-asmr_e_syn_constant=07050_E_Assembler syntax error in constant
-asmr_e_invalid_string_expression=07051_E_Invalid String expression
-asmr_w_const32bit_for_address=07052_W_constant with symbol $1 for address which is not on a pointer
-% A constant expression represents an address which does not fit
-% into a pointer. The address is probably incorrect
-asmr_e_unknown_opcode=07053_E_Unrecognized opcode $1
-% This opcode is not known
-asmr_e_invalid_or_missing_opcode=07054_E_Invalid or missing opcode
-asmr_e_invalid_prefix_and_opcode=07055_E_Invalid combination of prefix and opcode: $1
-asmr_e_invalid_override_and_opcode=07056_E_Invalid combination of override and opcode: $1
-asmr_e_too_many_operands=07057_E_Too many operands on line
-% There are too many operands for this opcode. Check your
-% assembler syntax
-asmr_w_near_ignored=07058_W_NEAR ignored
-asmr_w_far_ignored=07059_W_FAR ignored
-asmr_e_dup_local_sym=07060_E_Duplicate local symbol $1
-asmr_e_unknown_local_sym=07061_E_Undefined local symbol $1
-asmr_e_unknown_label_identifier=07062_E_Unknown label identifier $1
-asmr_e_invalid_register=07063_E_Invalid register name
-% There is an unknown register name used as operand.
-asmr_e_invalid_fpu_register=07064_E_Invalid floating point register name
-% There is an unknown register name used as operand.
-asmr_w_modulo_not_supported=07066_W_Modulo not supported
-asmr_e_invalid_float_const=07067_E_Invalid floating point constant $1
-% The floating point constant declared in an assembler block is
-% invalid.
-asmr_e_invalid_float_expr=07068_E_Invalid floating point expression
-% The floating point expression declared in an assembler block is
-% invalid.
-asmr_e_wrong_sym_type=07069_E_Wrong symbol type
-asmr_e_cannot_index_relative_var=07070_E_Cannot index a local var or parameter with a register
-% Trying to index using a base register a symbol which is already relative
-% to a register. This is not possible, and will probably lead to crashes.
-asmr_e_invalid_seg_override=07071_E_Invalid segment override expression
-asmr_w_id_supposed_external=07072_W_Identifier $1 supposed external
-% There is a reference to an undefined symbol. This will not result
-% in an error, since the symbol might be external, but may cause
-% problems at link time if the symbol is not defined anywhere.
-asmr_e_string_not_allowed_as_const=07073_E_Strings not allowed as constants
-% Character strings are not allowed as constants.
-asmr_e_no_var_type_specified=07074_No type of variable specified
-% The syntax expects a type idenfitifer after the dot, but
-% none was found.
-asmr_w_assembler_code_not_returned_to_text=07075_E_assembler code not returned to text section
-% There was a directive in the assembler block to change sections,
-% but there is a missing return to the text section at the end
-% of the assembler block. This might cause errors during link time.
-asmr_e_not_directive_or_local_symbol=07076_E_Not a directive or local symbol $1
-% This symbol is unknown.
-asmr_w_using_defined_as_local=07077_E_Using a defined name as a local label
-asmr_e_dollar_without_identifier=07078_E_Dollar token is used without an identifier
-% A constant expression has an identifier which does not start with
-% the $ symbol.
-asmr_w_32bit_const_for_address=07079_W_32bit constant created for address
-% A constant was used as an address. This is probably an error,
-% since using absolute addresses will probably not work.
-asmr_n_align_is_target_specific=07080_N_.align is target specific, use .balign or .p2align
-% Using the .align directive is platform specific, and its meaning will vary
-% from one platform to another.
-asmr_e_cannot_access_field_directly_for_parameters=07081_E_Can't access fields directly for parameters
-% You should load the parameter first into a register and then access the
-% fields using that register.
-asmr_e_cannot_access_object_field_directly=07082_E_Can't access fields of objects/classes directly
-% You should load the self pointer first into a register and then access the
-% fields using the register as base. By default the self pointer is available
-% in the esi register on i386.
-asmr_e_unable_to_determine_reference_size=07083_E_No size specified and unable to determine the size of the operands
-% You should specify explicitly a size for the reference, because
-% the compiler is unable to determine what size (byte,word,dword,etc.) it
-% should use for the reference.
-asmr_e_cannot_use_RESULT_here=07084_E_Cannot use RESULT in this function
-% Some functions which return complex types cannot use the \var{result}
-% keyword.
-asmr_w_adding_explicit_args_fXX=07086_W_"$1" without operand translated into "$1 %st,%st(1)"
-asmr_w_adding_explicit_first_arg_fXX=07087_W_"$1 %st(n)" translated into "$1 %st,%st(n)"
-asmr_w_adding_explicit_second_arg_fXX=07088_W_"$1 %st(n)" translated into "$1 %st(n),%st"
-asmr_e_invalid_char_smaller=07089_E_Char < not allowed here
-% The shift operator requires the << characters. Only one
-% of those characters was found.
-asmr_e_invalid_char_greater=07090_E_Char > not allowed here
-% The shift operator requires the >> characters. Only one
-% of those characters was found.
-asmr_w_align_not_supported=07093_W_ALIGN not supported
-asmr_e_no_inc_and_dec_together=07094_E_Inc and Dec cannot be together
-% Trying to use an increment and a decrement within the same
-% opcode on the 680x0. This is impossible.
-asmr_e_invalid_reg_list_in_movem=07095_E_Invalid reglist for movem
-% Trying to use the \var{movem} opcode with invalid registers
-% to save or restore.
-asmr_e_invalid_reg_list_for_opcode=07096_E_Reglist invalid for opcode
-asmr_e_higher_cpu_mode_required=07097_E_Higher cpu mode required ($1)
-% Trying to use an instruction which is not supported in the current
-% cpu mode. Use a higher cpu generation to be able to use this
-% opcode in your assembler block
-asmr_w_unable_to_determine_reference_size_using_dword=07098_W_No size specified and unable to determine the size of the operands, using DWORD as default
-% You should specify explicitly a size for the reference, because
-% the compiler is unable to determine what size (byte,word,dword,etc.) it
-% should use for the reference. This warning is only used in Delphi mode where
-% it falls back to use DWORD as default.
-asmr_e_illegal_shifterop_syntax=07099_E_Syntax error while trying to parse a shifter operand
-% ARM only; ARM assembler supports a so called shifter operand. The used syntax isn't
-% a valid shifter operand. Example for an operation with shifter operand:
-% \begin{verbatim}
-% asm
-%   orr     r2,r2,r2,lsl #8
-% end;
-% \end{verbatim}
-#
-# Assembler/binary writers
-#
-# 08018 is the last used one
-#
-asmw_f_too_many_asm_files=08000_F_Too many assembler files
-% With smartlinking enabled, there are too many assembler
-% files generated. Disable smartlinking.
-asmw_f_assembler_output_not_supported=08001_F_Selected assembler output not supported
-asmw_f_comp_not_supported=08002_F_Comp not supported
-asmw_f_direct_not_supported=08003_F_Direct not support for binary writers
-% Direct assembler mode is not supported for binary writers.
-asmw_e_alloc_data_only_in_bss=08004_E_Allocating of data is only allowed in bss section
-asmw_f_no_binary_writer_selected=08005_F_No binary writer selected
-asmw_e_opcode_not_in_table=08006_E_Asm: Opcode $1 not in table
-asmw_e_invalid_opcode_and_operands=08007_E_Asm: $1 invalid combination of opcode and operands
-asmw_e_16bit_not_supported=08008_E_Asm: 16 Bit references not supported
-asmw_e_invalid_effective_address=08009_E_Asm: Invalid effective address
-asmw_e_immediate_or_reference_expected=08010_E_Asm: Immediate or reference expected
-asmw_e_value_exceeds_bounds=08011_E_Asm: $1 value exceeds bounds $2
-asmw_e_short_jmp_out_of_range=08012_E_Asm: Short jump is out of range $1
-asmw_e_undefined_label=08013_E_Asm: Undefined label $1
-asmw_e_comp_not_supported=08014_E_Asm: Comp type not supported for this target
-asmw_e_extended_not_supported=08015_E_Asm: Extended type not supported for this target
-asmw_e_duplicate_label=08016_E_Asm: Duplicate label $1
-asmw_e_redefined_label=08017_E_Asm: Redefined label $1
-asmw_e_first_defined_label=08018_E_Asm: First defined here
-asmw_e_invalid_register=08019_E_Asm: Invalid register $1
-
-#
-# Executing linker/assembler
-#
-# 09034 is the last used one
-#
-# BeginOfTeX
-%
-% \section{Errors of assembling/linking stage}
-% This section lists errors that occur when the compiler is processing the
-% command line or handling the configuration files.
-% \begin{description}
-exec_w_source_os_redefined=09000_W_Source operating system redefined
-exec_i_assembling_pipe=09001_I_Assembling (pipe) $1
-exec_d_cant_create_asmfile=09002_E_Can't create assember file: $1
-% The mentioned file can't be created. Check if you have got
-% access permissions to create this file
-exec_e_cant_create_objectfile=09003_E_Can't create object file: $1
-% The mentioned file can't be created. Check if you've
-% got access permissions to create this file
-exec_e_cant_create_archivefile=09004_E_Can't create archive file: $1
-% The mentioned file can't be created. Check if you've
-% access permissions to create this file
-exec_e_assembler_not_found=09005_E_Assembler $1 not found, switching to external assembling
-exec_t_using_assembler=09006_T_Using assembler: $1
-exec_e_error_while_assembling=09007_E_Error while assembling exitcode $1
-% There was an error while assembling the file using an external assembler.
-% Consult the documentation of the assembler tool to find out more information
-% on this error.
-exec_e_cant_call_assembler=09008_E_Can't call the assembler, error $1 switching to external assembling
-exec_i_assembling=09009_I_Assembling $1
-exec_i_assembling_smart=09010_I_Assembling with smartlinking $1
-exec_w_objfile_not_found=09011_W_Object $1 not found, Linking may fail !
-% One of the object file is missing, and linking will probably fail.
-% Check your paths.
-exec_w_libfile_not_found=09012_W_Library $1 not found, Linking may fail !
-% One of the library file is missing, and linking will probably fail.
-% Check your paths.
-exec_e_error_while_linking=09013_E_Error while linking
-% Generic error while linking.
-exec_e_cant_call_linker=09014_E_Can't call the linker, switching to external linking
-exec_i_linking=09015_I_Linking $1
-exec_e_util_not_found=09016_E_Util $1 not found, switching to external linking
-exec_t_using_util=09017_T_Using util $1
-exec_e_exe_not_supported=09018_E_Creation of Executables not supported
-exec_e_dll_not_supported=09019_E_Creation of Dynamic/Shared Libraries not supported
-exec_i_closing_script=09020_I_Closing script $1
-exec_e_res_not_found=09021_E_resource compiler not found, switching to external mode
-exec_i_compilingresource=09022_I_Compiling resource $1
-exec_t_unit_not_static_linkable_switch_to_smart=09023_T_unit $1 can't be statically linked, switching to smart linking
-exec_t_unit_not_smart_linkable_switch_to_static=09024_T_unit $1 can't be smart linked, switching to static linking
-exec_t_unit_not_shared_linkable_switch_to_static=09025_T_unit $1 can't be shared linked, switching to static linking
-exec_e_unit_not_smart_or_static_linkable=09026_E_unit $1 can't be smart or static linked
-exec_e_unit_not_shared_or_static_linkable=09027_E_unit $1 can't be shared or static linked
-%\end{description}
-# EndOfTeX
-
-#
-# Executable information
-#
-execinfo_f_cant_process_executable=09028_F_Can't post process executable $1
-execinfo_f_cant_open_executable=09029_F_Can't open executable $1
-execinfo_x_codesize=09030_X_Size of Code: $1 bytes
-execinfo_x_initdatasize=09031_X_Size of initialized data: $1 bytes
-execinfo_x_uninitdatasize=09032_X_Size of uninitialized data: $1 bytes
-execinfo_x_stackreserve=09033_X_Stack space reserved: $1 bytes
-execinfo_x_stackcommit=09034_X_Stack space commited: $1 bytes
-
-#
-# Unit loading
-#
-# 10041 is the last used one
-#
-# BeginOfTeX
-% \section{Unit loading messages.}
-% This section lists all messages that can occur when the compiler is
-% loading a unit from disk into memory. Many of these messages are
-% informational messages.
-% \begin{description}
-unit_t_unitsearch=10000_T_Unitsearch: $1
-% When you use the \var{-vt}, the compiler tells you where it tries to find
-% unit files.
-unit_t_ppu_loading=10001_T_PPU Loading $1
-% When the \var{-vt} switch is used, the compiler tells you
-% what units it loads.
-unit_u_ppu_name=10002_U_PPU Name: $1
-% When you use the \var{-vu} flag, the unit name is shown.
-unit_u_ppu_flags=10003_U_PPU Flags: $1
-% When you use the \var{-vu} flag, the unit flags are shown.
-unit_u_ppu_crc=10004_U_PPU Crc: $1
-% When you use the \var{-vu} flag, the unit CRC check is shown.
-unit_u_ppu_time=10005_U_PPU Time: $1
-% When you use the \var{-vu} flag, the time the unit was compiled is shown.
-unit_u_ppu_file_too_short=10006_U_PPU File too short
-% The ppufile is too short, not all declarations are present.
-unit_u_ppu_invalid_header=10007_U_PPU Invalid Header (no PPU at the begin)
-% A unit file contains as the first three bytes the ascii codes of \var{PPU}
-unit_u_ppu_invalid_version=10008_U_PPU Invalid Version $1
-% This unit file was compiled with a different version of the compiler, and
-% cannot be read.
-unit_u_ppu_invalid_processor=10009_U_PPU is compiled for another processor
-% This unit file was compiled for a different processor type, and
-% cannot be read
-unit_u_ppu_invalid_target=10010_U_PPU is compiled for an other target
-% This unit file was compiled for a different target, and
-% cannot be read
-unit_u_ppu_source=10011_U_PPU Source: $1
-% When you use the \var{-vu} flag, the unit CRC check is shown.
-unit_u_ppu_write=10012_U_Writing $1
-% When you specify the \var{-vu} switch, the compiler will tell you where it
-% writes the unit file.
-unit_f_ppu_cannot_write=10013_F_Can't Write PPU-File
-% An error occurred when writing the unit file.
-unit_f_ppu_read_error=10014_F_Error reading PPU-File
-% This means that the unit file was corrupted, and contains invalid
-% information. Recompilation will be necessary.
-unit_f_ppu_read_unexpected_end=10015_F_unexpected end of PPU-File
-% Unexpected end of file. This may mean that the PPU file is
-% corrupted.
-unit_f_ppu_invalid_entry=10016_F_Invalid PPU-File entry: $1
-% The unit the compiler is trying to read is corrupted, or generated with a
-% newer version of the compiler.
-unit_f_ppu_dbx_count_problem=10017_F_PPU Dbx count problem
-% There is an inconsistency in the debugging information of the unit.
-unit_e_illegal_unit_name=10018_E_Illegal unit name: $1
-% The name of the unit does not match the file name.
-unit_f_too_much_units=10019_F_Too much units
-% \fpc has a limit of 1024 units in a program. You can change this behavior
-% by changing the \var{maxunits} constant in the \file{fmodule.pas} file of the
-% compiler, and recompiling the compiler.
-unit_f_circular_unit_reference=10020_F_Circular unit reference between $1 and $2
-% Two units are using each other in the interface part. This is only allowed
-% in the \var{implementation} part. At least one unit must contain the other one
-% in the \var{implementation} section.
-unit_f_cant_compile_unit=10021_F_Can't compile unit $1, no sources available
-% A unit was found that needs to be recompiled, but no sources are
-% available.
-unit_f_cant_find_ppu=10022_F_Can't find unit $1
-% You tried to use a unit of which the PPU file isn't found by the
-% compiler. Check your configuration file for the unit paths
-unit_w_unit_name_error=10023_W_Unit $1 was not found but $2 exists
-unit_f_unit_name_error=10024_F_Unit $1 searched but $2 found
-% Dos truncation of 8 letters for unit PPU files
-% may lead to problems when unit name is longer than 8 letters.
-unit_w_switch_us_missed=10025_W_Compiling the system unit requires the -Us switch
-% When recompiling the system unit (it needs special treatment), the
-% \var{-Us} must be specified.
-unit_f_errors_in_unit=10026_F_There were $1 errors compiling module, stopping
-% When the compiler encounters a fatal error or too many errors in a module
-% then it stops with this message.
-unit_u_load_unit=10027_U_Load from $1 ($2) unit $3
-% When you use the \var{-vu} flag, which unit is loaded from which unit is
-% shown.
-unit_u_recompile_crc_change=10028_U_Recompiling $1, checksum changed for $2
-unit_u_recompile_source_found_alone=10029_U_Recompiling $1, source found only
-% When you use the \var{-vu} flag, these messages tell you why the current
-% unit is recompiled.
-unit_u_recompile_staticlib_is_older=10030_U_Recompiling unit, static lib is older than ppufile
-% When you use the \var{-vu} flag, the compiler warns if the static library
-% of the unit are older than the unit file itself.
-unit_u_recompile_sharedlib_is_older=10031_U_Recompiling unit, shared lib is older than ppufile
-% When you use the \var{-vu} flag, the compiler warns if the shared library
-% of the unit are older than the unit file itself.
-unit_u_recompile_obj_and_asm_older=10032_U_Recompiling unit, obj and asm are older than ppufile
-% When you use the \var{-vu} flag, the compiler warns if the assembler or
-% object file of the unit are older than the unit file itself.
-unit_u_recompile_obj_older_than_asm=10033_U_Recompiling unit, obj is older than asm
-% When you use the \var{-vu} flag, the compiler warns if the assembler
-% file of the unit is older than the object file of the unit.
-unit_u_parsing_interface=10034_U_Parsing interface of $1
-% When you use the \var{-vu} flag, the compiler warns that it starts
-% parsing the interface part of the unit
-unit_u_parsing_implementation=10035_U_Parsing implementation of $1
-% When you use the \var{-vu} flag, the compiler warns that it starts
-% parsing the implementation part of the unit
-unit_u_second_load_unit=10036_U_Second load for unit $1
-% When you use the \var{-vu} flag, the compiler warns that it starts
-% recompiling a unit for the second time. This can happend with interdepend
-% units.
-unit_u_check_time=10037_U_PPU Check file $1 time $2
-% When you use the \var{-vu} flag, the compiler show the filename and
-% date and time of the file which a recompile depends on
-### The following two error msgs is currently disabled.
-#unit_h_cond_not_set_in_last_compile=10038_H_Conditional $1 was not set at startup in last compilation of $2
-#% when recompilation of an unit is required the compiler will check that
-#% the same conditionals are set for the recompiliation. The compiler has
-#% found a conditional that currently is defined, but was not used the last
-#% time the unit was compiled.
-#unit_h_cond_set_in_last_compile=10039_H_Conditional $1 was set at startup in last compilation of $2
-#% when recompilation of an unit is required the compiler will check that
-#% the same conditionals are set for the recompiliation. The compiler has
-#% found a conditional that was used the last time the unit was compiled, but
-#% the conditional is currently not defined.
-unit_w_cant_compile_unit_with_changed_incfile=10040_W_Can't recompile unit $1, but found modifed include files
-% A unit was found to have modified include files, but
-% some source files were not found, so recompilation is impossible.
-unit_h_source_modified=10041_H_File $1 is newer than Release PPU file $2
-% A modified source file for a unit was found that was compiled with the
-% release flag (-Ur). The unit will not implicitly be recompiled because
-% this release flag is set.
-unit_u_ppu_invalid_fpumode=10042_U_Using a unit which was not compiled with correct FPU mode
-% Trying to compile code while using units which were not compiled with
-% the same floating point format mode. Either all code should be compiled
-% with FPU emulation on, or with FPU emulation off.
-unit_u_loading_interface_units=10043_U_Loading interface units from $1
-% When you use the \var{-vu} flag, the compiler warns that it starts
-% loading the units defined in the interface part of the unit.
-unit_u_loading_implementation_units=10044_U_Loading implementation units from $1
-% When you use the \var{-vu} flag, the compiler warns that it starts
-% loading the units defined in the implementation part of the unit.
-unit_u_interface_crc_changed=10045_U_Interface CRC changed for unit $1
-% When you use the \var{-vu} flag, the compiler warns that it the
-% CRC calculated for the interface has been changed after the implementation
-% has been parsed.
-unit_u_implementation_crc_changed=10046_U_Implementation CRC changed for unit $1
-% When you use the \var{-vu} flag, the compiler warns that it the
-% CRC calculated has been changed after the implementation
-% has been parsed.
-unit_u_finished_compiling=10047_U_Finished compiling unit $1
-% When you use the \var{-vu} flag, the compiler warns that it
-% has finished compiling the unit.
-unit_u_add_depend_to=10048_U_Add dependency of $1 to $2
-% When you use the \var{-vu} flag, the compiler warns that it
-% has added a dependency between the two units.
-unit_u_no_reload_is_caller=10049_U_No reload, is caller: $1
-% When you use the \var{-vu} flag, the compiler warns that it
-% has will not reload the unit because it is the unit that wants
-% to load this unit
-unit_u_no_reload_in_second_compile=10050_U_No reload, already in second compile: $1
-% When you use the \var{-vu} flag, the compiler warns that it
-% has will not reload the unit because it is already in a second recompile
-unit_u_flag_for_reload=10051_U_Flag for reload: $1
-% When you use the \var{-vu} flag, the compiler warns that it
-% has to reload the unit
-unit_u_forced_reload=10052_U_Forced reloading
-% When you use the \var{-vu} flag, the compiler warns that it
-% has is reloading the unit because it was required
-unit_u_previous_state=10053_U_Previous state of $1: $2
-% When you use the \var{-vu} flag, the compiler shows the
-% previous state of the unit
-unit_u_second_compile_unit=10054_U_Already compiling $1, setting second compile
-% When you use the \var{-vu} flag, the compiler warns that it starts
-% recompiling a unit for the second time. This can happend with interdepend
-% units.
-unit_u_loading_unit=10055_U_Loading unit $1
-% When you use the \var{-vu} flag, the compiler warns that it starts
-% loading the unit.
-unit_u_finished_loading_unit=10056_U_Finished loading unit $1
-% When you use the \var{-vu} flag, the compiler warns that it finished
-% loading the unit.
-unit_u_registering_new_unit=10057_U_Registering new unit $1
-% When you use the \var{-vu} flag, the compiler warns that it has
-% found a new unit and registers it in the internal lists.
-unit_u_reresolving_unit=10058_U_Re-resolving unit $1
-% When you use the \var{-vu} flag, the compiler warns that it
-% has to recalculate the internal data of the unit
-unit_u_skipping_reresolving_unit=10059_U_Skipping re-resolving unit $1, still loading used units
-% When you use the \var{-vu} flag, the compiler warns that it
-% skips to recalculate the internal data of the unit because there
-% is no data to recalculate
-% \end{description}
-# EndOfTeX
-
-#
-#  Options
-#
-# 11039 is the last used one
-#
-option_usage=11000_$1 [options] <inputfile> [options]
-# BeginOfTeX
-%
-% \section{Command-line handling errors}
-% This section lists errors that occur when the compiler is processing the
-% command line or handling the configuration files.
-% \begin{description}
-option_only_one_source_support=11001_W_Only one source file supported
-% You can specify only one source file on the command line. The first
-% one will be compiled, others will be ignored. This may indicate that
-% you forgot a \var{'-'} sign.
-option_def_only_for_os2=11002_W_DEF file can be created only for OS/2
-% This option can only be specified when you're compiling for OS/2
-option_no_nested_response_file=11003_E_nested response files are not supported
-% you cannot nest response files with the \var{@file} command-line option.
-option_no_source_found=11004_F_No source file name in command line
-% The compiler expects a source file name on the command line.
-option_no_option_found=11005_N_No option inside $1 config file
-% The compiler didn't find any option in that config file.
-option_illegal_para=11006_E_Illegal parameter: $1
-% You specified an unknown option.
-option_help_pages_para=11007_H_-? writes help pages
-% When an unknown option is given, this message is diplayed.
-option_too_many_cfg_files=11008_F_Too many config files nested
-% You can only nest up to 16 config files.
-option_unable_open_file=11009_F_Unable to open file $1
-% The option file cannot be found.
-option_reading_further_from=11010_D_Reading further options from $1
-% Displayed when you have notes turned on, and the compiler switches
-% to another options file.
-option_target_is_already_set=11011_W_Target is already set to: $1
-% Displayed if more than one \var{-T} option is specified.
-option_no_shared_lib_under_dos=11012_W_Shared libs not supported on DOS platform, reverting to static
-% If you specify \var{-CD} for the \dos platform, this message is displayed.
-% The compiler supports only static libraries under \dos
-option_too_many_ifdef=11013_F_too many IF(N)DEFs
-% the \var{\#IF(N)DEF} statements in the options file are not balanced with
-% the \var{\#ENDIF} statements.
-option_too_many_endif=11014_F_too many ENDIFs
-% the \var{\#IF(N)DEF} statements in the options file are not balanced with
-% the \var{\#ENDIF} statements.
-option_too_less_endif=11015_F_open conditional at the end of the file
-% the \var{\#IF(N)DEF} statements in the options file are not balanced with
-% the \var{\#ENDIF} statements.
-option_no_debug_support=11016_W_Debug information generation is not supported by this executable
-% It is possible to have a compiler executable that doesn't support
-% the generation of debugging info. If you use such an executable with the
-% \var{-g} switch, this warning will be displayed.
-option_no_debug_support_recompile_fpc=11017_H_Try recompiling with -dGDB
-% It is possible to have a compiler executable that doesn't support
-% the generation of debugging info. If you use such an executable with the
-% \var{-g} switch, this warning will be displayed.
-option_obsolete_switch=11018_E_You are using the obsolete switch $1
-% this warns you when you use a switch that is not needed/supported anymore.
-% It is recommended that you remove the switch to overcome problems in the
-% future, when the switch meaning may change.
-option_obsolete_switch_use_new=11019_E_You are using the obsolete switch $1, please use $2
-% this warns you when you use a switch that is not supported anymore. You
-% must now use the second switch instead.
-% It is recommended that you change the switch to overcome problems in the
-% future, when the switch meaning may change.
-option_switch_bin_to_src_assembler=11020_N_Switching assembler to default source writing assembler
-% this notifies you that the assembler has been changed because you used the
-% -a switch which can't be used with a binary assembler writer.
-option_incompatible_asm=11021_W_Assembler output selected "$1" is not compatible with "$2"
-option_asm_forced=11022_W_"$1" assembler use forced
-% The assembler output selected can not generate
-% object files with the correct format. Therefore, the
-% default assembler for this target is used instead.
-option_using_file=11026_T_Reading options from file $1
-% Options are also read from this file
-option_using_env=11027_T_Reading options from environment $1
-% Options are also read from this environment string
-option_handling_option=11028_D_Handling option "$1"
-% Debug info that an option is found and will be handled
-option_help_press_enter=11029__*** press enter ***
-option_start_reading_configfile=11030_H_Start of reading config file $1
-% Starting of config file parsing.
-option_end_reading_configfile=11031_H_End of reading config file $1
-% End of config file parsing.
-option_interpreting_option=11032_D_interpreting option "$1"
-option_interpreting_firstpass_option=11036_D_interpreting firstpass option "$1"
-option_interpreting_file_option=11033_D_interpreting file option "$1"
-option_read_config_file=11034_D_Reading config file "$1"
-option_found_file=11035_D_found source file name "$1"
-% Additional infos about options, displayed
-% when you have debug option turned on.
-option_code_page_not_available=11039_E_Unknown code page
-%\end{description}
-# EndOfTeX
-
-#
-# Logo (option -l)
-#
-option_logo=11023_[
-Free Pascal Compiler version $FPCVERSION [$FPCDATE] for $FPCCPU
-Copyright (c) 1993-2005 by Florian Klaempfl
-]
-
-#
-# Info (option -i)
-#
-option_info=11024_[
-Free Pascal Compiler version $FPCVERSION
-
-Compiler Date      : $FPCDATE
-Compiler CPU Target: $FPCCPU
-
-Supported targets:
-  $OSTARGETS
-
-Supported CPU instruction sets:
-  $INSTRUCTIONSETS
-
-Supported FPU instruction sets:
-  $FPUINSTRUCTIONSETS
-
-This program comes under the GNU General Public Licence
-For more information read COPYING.FPC
-
-Report bugs,suggestions etc to:
-                 [email protected]
-]
-
-#
-# Help pages (option -? and -h)
-#
-# The first character on the line indicates who will display this
-# line, the current possibilities are :
-#    * = every target
-#    3 = 80x86 targets
-#    6 = 680x0 targets
-#    e = in extended debug mode only
-#    P = PowerPC targets
-#    S = Sparc targets
-#    V = Virtual machine targets
-# The second character also indicates who will display this line,
-# (if the above character was TRUE) the current possibilities are :
-#    * = everyone
-#    g = with GDB info supported by the compiler
-#    O = OS/2
-#    L = UNIX systems
-#  The third character represents the indentation level.
-#
-option_help_pages=11025_[
-**0*_put + after a boolean switch option to enable it, - to disable it
-**1a_the compiler doesn't delete the generated assembler file
-**2al_list sourcecode lines in assembler file
-**2an_list node info in assembler file
-*L2ap_use pipes instead of creating temporary assembler files
-**2ar_list register allocation/release info in assembler file
-**2at_list temp allocation/release info in assembler file
-**1A<x>_output format:
-**2Adefault_use default assembler
-3*2Aas_assemble using GNU AS
-3*2Anasmcoff_coff (Go32v2) file using Nasm
-3*2Anasmelf_elf32 (Linux) file using Nasm
-3*2Anasmwin32_Win32 object file using Nasm
-3*2Anasmwdosx_Win32/WDOSX object file using Nasm
-3*2Awasm_obj file using Wasm (Watcom)
-3*2Anasmobj_obj file using Nasm
-3*2Amasm_obj file using Masm (Microsoft)
-3*2Atasm_obj file using Tasm (Borland)
-3*2Aelf_elf32 (Linux) using internal writer
-3*2Acoff_coff (Go32v2) using internal writer
-3*2Apecoff_pecoff (Win32) using internal writer
-4*2Aas_assemble using GNU AS
-6*2Aas_Unix o-file using GNU AS
-6*2Agas_GNU Motorola assembler
-6*2Amit_MIT Syntax (old GAS)
-6*2Amot_Standard Motorola assembler
-A*2Aas_assemble using GNU AS
-P*2Aas_assemble using GNU AS
-S*2Aas_assemble using GNU AS
-**1b_generate browser info
-**2bl_generate local symbol info
-**1B_build all modules
-**1C<x>_code generation options:
-**2Cc<x>_set default calling convention to <x>
-**2CD_create also dynamic library (not supported)
-**2Ce_Compilation with emulated floating point opcodes
-**2Cf<x>_Select fpu instruction set to use, see fpc -i for possible values
-**2Cg_Generate PIC code
-**2Ch<n>_<n> bytes heap (between 1023 and 67107840)
-**2Ci_IO-checking
-**2Cn_omit linking stage
-**2Co_check overflow of integer operations
-**2Cp<x>_select instruction set, see fpc -i for possible values
-**2Cr_range checking
-**2CR_verify object method call validity
-**2Cs<n>_set stack size to <n>
-**2Ct_stack checking
-**2CX_create also smartlinked library
-**1d<x>_defines the symbol <x>
-**1D_generate a DEF file
-**2Dd<x>_set description to <x>
-**2Dv<x>_set DLL version to <x>
-*O2Dw_PM application
-**1e<x>_set path to executable
-**1E_same as -Cn
-**1F<x>_set file names and paths:
-**2Fa<x>[,y]_for a program load first units <x> and [y] before uses is parsed
-**2Fc<x>_sets input codepage to <x>
-**2FD<x>_sets the directory where to search for compiler utilities
-**2Fe<x>_redirect error output to <x>
-**2FE<x>_set exe/unit output path to <x>
-**2Fi<x>_adds <x> to include path
-**2Fl<x>_adds <x> to library path
-**2FL<x>_uses <x> as dynamic linker
-**2Fo<x>_adds <x> to object path
-**2Fr<x>_load error message file <x>
-**2Fu<x>_adds <x> to unit path
-**2FU<x>_set unit output path to <x>, overrides -FE
-*g1g_generate debugger information:
-*g2gc_generate checks for pointers
-*g2gd_use dbx
-*g2gg_use gsym
-*g2gh_use heap trace unit (for memory leak debugging)
-*g2gl_use line info unit to show more info for backtraces
-*g2gv_generates programs tracable with valgrind
-*g2gw_generate dwarf debugging info
-**1i_information
-**2iD_return compiler date
-**2iV_return compiler version
-**2iSO_return compiler OS
-**2iSP_return compiler processor
-**2iTO_return target OS
-**2iTP_return target processor
-**1I<x>_adds <x> to include path
-**1k<x>_Pass <x> to the linker
-**1l_write logo
-**1M<x>_set language mode to <x>
-**2Mfpc_free pascal dialect (default)
-**2Mobjfpc_switch some Delphi 2 extensions on
-**2Mdelphi_tries to be Delphi compatible
-**2Mtp_tries to be TP/BP 7.0 compatible
-**2Mgpc_tries to be gpc compatible
-**2Mmacpas_tries to be compatible to the macintosh pascal dialects
-**1n_don't read the default config file
-**1o<x>_change the name of the executable produced to <x>
-**1O<x>_optimizations:
-3*2Og_generate smaller code
-3*2OG_generate faster code (default)
-**2Or_keep certain variables in registers
-3*2Ou_enable uncertain optimizations (see docs)
-3*2O1_level 1 optimizations (quick optimizations)
-3*2O2_level 2 optimizations (-O1 + slower optimizations)
-3*2O3_level 3 optimizations (-O2 repeatedly, max 5 times)
-3*2Op<x>_target processor:
-3*3Op1_set target processor to 386/486
-3*3Op2_set target processor to Pentium/PentiumMMX (tm)
-3*3Op3_set target processor to PPro/PII/c6x86/K6 (tm)
-6*2Og_generate smaller code
-6*2OG_generate faster code (default)
-6*2Ox_optimize maximum (still BUGGY!!!)
-6*2O0_set target processor to a MC68000
-6*2O2_set target processor to a MC68020+ (default)
-**1pg_generate profile code for gprof (defines FPC_PROFILE)
-**1R<x>_assembler reading style:
-**2Rdefault_use default assembler
-3*2Ratt_read AT&T style assembler
-3*2Rintel_read Intel style assembler
-6*2RMOT_read motorola style assembler
-**1S<x>_syntax options:
-**2S2_same as -Mobjfpc
-**2Sc_supports operators like C (*=,+=,/= and -=)
-**2Sa_include assertion code.
-**2Sd_same as -Mdelphi
-**2Se<x>_error options. <x> is a combination of the following:
-**3*_<n> : compiler stops after the <n> errors (default is 1)
-**3*_w : compiler stops also after warnings
-**3*_n : compiler stops also after notes
-**3*_h : compiler stops also after hints
-**2Sg_allow LABEL and GOTO
-**2Sh_Use ansistrings
-**2Si_support C++ styled INLINE
-**2SI<x>_set interface style to <x>
-**3SIcom_COM compatible interface (default)
-**3SIcorba_CORBA compatible interface
-**2Sm_support macros like C (global)
-**2So_same as -Mtp
-**2Sp_same as -Mgpc
-**2Ss_constructor name must be init (destructor must be done)
-**2St_allow static keyword in objects
-**1s_don't call assembler and linker
-**2sh_Generate script to link on host
-**2st_Generate script to link on target
-**2sr_Skip register allocation phase (use with -alr)
-**1T<x>_Target operating system:
-3*2Temx_OS/2 via EMX (including EMX/RSX extender)
-3*2Tfreebsd_FreeBSD
-3*2Tgo32v2_Version 2 of DJ Delorie DOS extender
-3*2Tlinux_Linux
-3*2Tnetbsd_NetBSD
-3*2Tnetware_Novell Netware Module (clib)
-3*2Tnetwlibc_Novell Netware Module (libc)
-3*2Topenbsd_OpenBSD
-3*2Tos2_OS/2 / eComStation
-3*2Tsunos_SunOS/Solaris
-3*2Twatcom_Watcom compatible DOS extender
-3*2Twdosx_WDOSX DOS extender
-3*2Twin32_Windows 32 Bit
-4*2Tlinux_Linux
-6*2Tamiga_Commodore Amiga
-6*2Tatari_Atari ST/STe/TT
-6*2Tlinux_Linux-68k
-6*2Tmacos_Macintosh m68k (not supported)
-6*2Tpalmos_PalmOS
-A*2Tlinux_Linux
-P*2Tdarwin_Darwin and MacOS X on PowerPC
-P*2Tlinux_Linux on PowerPC
-P*2Tmacos_MacOS (classic) on PowerPC
-P*2Tmorphos_MorphOS
-S*2Tlinux_Linux
-**1u<x>_undefines the symbol <x>
-**1U_unit options:
-**2Un_don't check the unit name
-**2Ur_generate release unit files
-**2Us_compile a system unit
-**1v<x>_Be verbose. <x> is a combination of the following letters:
-**2*_e : Show errors (default)       0 : Show nothing (except errors)
-**2*_w : Show warnings               u : Show unit info
-**2*_n : Show notes                  t : Show tried/used files
-**2*_h : Show hints                  c : Show conditionals
-**2*_i : Show general info           d : Show debug info
-**2*_l : Show linenumbers            r : Rhide/GCC compatibility mode
-**2*_a : Show everything             x : Executable info (Win32 only)
-**2*_v : write fpcdebug.txt with     p : Write tree.log with parse tree
-**2*_    lots of debugging info
-3*1W<x>_Win32-like target options
-3*2WB<x>_Set Image base to Hexadecimal <x> value
-3*2WC_Specify console type application
-3*2WD_Use DEFFILE to export functions of DLL or EXE
-3*2WF_Specify full-screen type application (OS/2 only)
-3*2WG_Specify graphic type application
-3*2WN_Do not generate relocation code (necessary for debugging)
-3*2WR_Generate relocation code
-P*2WC_Specify console type application (MacOS only)
-P*2WG_Specify graphic type application (MacOS only)
-P*2WT_Specify tool type application (MPW tool, MacOS only)
-**1X_executable options:
-**2Xc_pass --shared to the linker (Unix only)
-**2Xd_don't use standard library search path (needed for cross compile)
-**2XD_try to link units dynamic          (defines FPC_LINK_DYNAMIC)
-**2XP<x>_prepend the binutils names with the prefix <x>
-**2Xr<x>_set library search path to <x> (needed for cross compile)
-**2Xs_strip all symbols from executable
-**2XS_try to link units static (default) (defines FPC_LINK_STATIC)
-**2Xt_link with static libraries (-static is passed to linker)
-**2XX_try to link units smart            (defines FPC_LINK_SMART)
-**1*_
-**1?_shows this help
-**1h_shows this help without waiting
-]
-
-#
-# The End...
+#
+#   $Id: errore.msg,v 1.124 2005/05/05 14:52:50 florian Exp $
+#   This file is part of the Free Pascal Compiler
+#   Copyright (c) 1999-2000 by the Free Pascal Development team
+#
+#   English (default) Language File for Free Pascal
+#
+#   See the file COPYING.FPC, included in this distribution,
+#   for details about the copyright.
+#
+#   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.
+#
+#
+# The constants are build in the following order:
+# <part>_<type>_<txtidentifier>
+#
+# <part> is the part of the compiler the message is used
+#   asmr_     assembler parsing
+#   asmw_     assembler writing/binary writers
+
+#   unit_     unit handling
+#   scan_     scanner
+#   parser_   parser
+#   type_     type checking
+#   general_  general info
+#   exec_     calls to assembler, linker, binder
+#
+# <type> the type of the message it should normally used for
+#   f_   fatal error
+#   e_   error
+#   w_   warning
+#   n_   note
+#   h_   hint
+#   i_   info
+#   l_   add linenumber
+#   u_   used
+#   t_   tried
+#   c_   conditional
+#   d_   debug message
+#   x_   executable informations
+#
+
+#
+# General
+#
+# 01016 is the last used one
+#
+# BeginOfTeX
+% \section{General compiler messages}
+% This section gives the compiler messages which are not fatal, but which
+% display useful information. The number of such messages can be
+% controlled with the various verbosity level \var{-v} switches.
+% \begin{description}
+general_t_compilername=01000_T_Compiler: $1
+% When the \var{-vt} switch is used, this line tells you what compiler
+% is used.
+general_d_sourceos=01001_D_Compiler OS: $1
+% When the \var{-vd} switch is used, this line tells you what the source
+% operating system is.
+general_i_targetos=01002_I_Target OS: $1
+% When the \var{-vd} switch is used, this line tells you what the target
+% operating system is.
+general_t_exepath=01003_T_Using executable path: $1
+% When the \var{-vt} switch is used, this line tells you where the compiler
+% looks for it's binaries.
+general_t_unitpath=01004_T_Using unit path: $1
+% When the \var{-vt} switch is used, this line tells you where the compiler
+% looks for compiled units. You can set this path with the \var{-Fu}
+general_t_includepath=01005_T_Using include path: $1
+% When the \var{-vt} switch is used, this line tells you where the compiler
+% looks for it's include files (files used in \var{\{\$I xxx\}} statements).
+% You can set this path with the \var{-I} option.
+general_t_librarypath=01006_T_Using library path: $1
+% When the \var{-vt} switch is used, this line tells you where the compiler
+% looks for the libraries. You can set this path with the \var{-Fl} option.
+general_t_objectpath=01007_T_Using object path: $1
+% When the \var{-vt} switch is used, this line tells you where the compiler
+% looks for object files you link in (files used in \var{\{\$L xxx\}} statements).
+% You can set this path with the \var{-Fo} option.
+general_i_abslines_compiled=01008_I_$1 Lines compiled, $2 sec
+% When the \var{-vi} switch is used, the compiler reports the number
+% of lines compiled, and the time it took to compile them (real time,
+% not program time).
+general_f_no_memory_left=01009_F_No memory left
+% The compiler doesn't have enough memory to compile your program. There are
+% several remedies for this:
+% \begin{itemize}
+% \item If you're using the build option of the compiler, try compiling the
+% different units manually.
+% \item If you're compiling a huge program, split it up in units, and compile
+% these separately.
+% \item If the previous two don't work, recompile the compiler with a bigger
+% heap (you can use the \var{-Ch} option for this, \seeo{Ch})
+% \end{itemize}
+general_i_writingresourcefile=01010_I_Writing Resource String Table file: $1
+% This message is shown when the compiler writes the Resource String Table
+% file containing all the resource strings for a program.
+general_e_errorwritingresourcefile=01011_E_Writing Resource String Table file: $1
+% This message is shown when the compiler encountered an error when writing
+% the Resource String Table file
+general_i_fatal=01012_I_Fatal:
+% Prefix for Fatal Errors
+general_i_error=01013_I_Error:
+% Prefix for Errors
+general_i_warning=01014_I_Warning:
+% Prefix for Warnings
+general_i_note=01015_I_Note:
+% Prefix for Notes
+general_i_hint=01016_I_Hint:
+% Prefix for Hints
+general_e_path_does_not_exist=01017_E_Path "$1" does not exist
+% The specified path does not exist.
+general_f_compilation_aborted=01018_F_Compilation aborted
+% \end{description}
+#
+# Scanner
+#
+# 02063 is the last used one
+#
+% \section{Scanner messages.}
+% This section lists the messages that the scanner emits. The scanner takes
+% care of the lexical structure of the pascal file, i.e. it tries to find
+% reserved words, strings, etc. It also takes care of directives and
+% conditional compiling handling.
+% \begin{description}
+scan_f_end_of_file=02000_F_Unexpected end of file
+% this typically happens in one of the following cases :
+% \begin{itemize}
+% \item The source file ends before the final \var{end.} statement. This
+% happens mostly when the \var{begin} and \var{end} statements aren't
+% balanced;
+% \item An include file ends in the middle of a statement.
+% \item A comment was not closed
+% \end{itemize}
+scan_f_string_exceeds_line=02001_F_String exceeds line
+% There is a missing closing ' in a string, so it occupies
+% multiple lines.
+scan_f_illegal_char=02002_F_illegal character "$1" ($2)
+% An illegal character was encountered in the input file.
+scan_f_syn_expected=02003_F_Syntax error, "$1" expected but "$2" found
+% This indicates that the compiler expected a different token than
+% the one you typed. It can occur almost everywhere where you make a
+% mistake against the pascal language.
+scan_t_start_include_file=02004_TL_Start reading includefile $1
+% When you provide the \var{-vt} switch, the compiler tells you
+% when it starts reading an included file.
+scan_w_comment_level=02005_W_Comment level $1 found
+% When the \var{-vw} switch is used, then the compiler warns you if
+% it finds nested comments. Nested comments are not allowed in Turbo Pascal
+% and can be a possible source of errors.
+scan_n_ignored_switch=02008_N_Ignored compiler switch "$1"
+% With \var{-vn} on, the compiler warns if it ignores a switch
+scan_w_illegal_switch=02009_W_Illegal compiler switch "$1"
+% You included a compiler switch (i.e. \var{\{\$... \}}) which the compiler
+% does not recognise
+scan_w_switch_is_global=02010_W_Misplaced global compiler switch
+% The compiler switch is misplaced, and should be located at
+% the start of the unit or program.
+scan_e_illegal_char_const=02011_E_Illegal char constant
+% This happens when you specify a character with its ASCII code, as in
+% \var{\#96}, but the number is either illegal, or out of range.
+scan_f_cannot_open_input=02012_F_Can't open file "$1"
+% \fpc cannot find the program or unit source file you specified on the
+% command line.
+scan_f_cannot_open_includefile=02013_F_Can't open include file "$1"
+% \fpc cannot find the source file you specified in a \var{\{\$include ..\}}
+% statement.
+scan_w_only_pack_records=02015_W_Records fields can be aligned to 1,2,4,8,16 or 32 bytes only
+% You are specifying the \var{\{\$PACKRECORDS n\} } with an illegal value for
+% \var{n}. Only 1, 2, 4, 8, 16 and 32 are valid in this case.
+scan_w_only_pack_enum=02016_W_Enumerated can be saved in 1,2 or 4 bytes only
+% You are specifying the \var{\{\$PACKENUM n\}} with an illegal value for
+% \var{n}. Only 1,2 or 4 are valid in this case.
+scan_e_endif_expected=02017_E_$ENDIF expected for $1 $2 defined in $3 line $4
+% Your conditional compilation statements are unbalanced.
+scan_e_preproc_syntax_error=02018_E_Syntax error while parsing a conditional compiling expression
+% There is an error in the expression following the \var{\{\$if ..\}}, $ifc or $setc compiler
+% directives.
+scan_e_error_in_preproc_expr=02019_E_Evaluating a conditional compiling expression
+% There is an error in the expression following the \var{\{\$if ..\}}, $ifc or $setc compiler
+% directives.
+scan_w_macro_cut_after_255_chars=02020_W_Macro contents are limited to 255 characters in length
+% The contents of macros cannot be longer than 255 characters.
+scan_e_endif_without_if=02021_E_ENDIF without IF(N)DEF
+% Your \var{\{\$IFDEF ..\}} and {\{\$ENDIF\}} statements aren't balanced.
+scan_f_user_defined=02022_F_User defined: $1
+% A user defined fatal error occurred. see also the \progref
+scan_e_user_defined=02023_E_User defined: $1
+% A user defined error occurred. see also the \progref
+scan_w_user_defined=02024_W_User defined: $1
+% A user defined warning occurred. see also the \progref
+scan_n_user_defined=02025_N_User defined: $1
+% A user defined note was encountered. see also the \progref
+scan_h_user_defined=02026_H_User defined: $1
+% A user defined hint was encountered. see also the \progref
+scan_i_user_defined=02027_I_User defined: $1
+% User defined information was encountered. see also the \progref
+scan_e_keyword_cant_be_a_macro=02028_E_Keyword redefined as macro has no effect
+% You cannot redefine keywords with macros.
+scan_f_macro_buffer_overflow=02029_F_Macro buffer overflow while reading or expanding a macro
+% Your macro or it's result  was too long for the compiler.
+scan_w_macro_too_deep=02030_W_Expanding of macros exceeds a depth of 16.
+% When expanding a macro, macros have been nested to a level of 16.
+% The compiler will expand no further, since this may be a sign that
+% recursion is used.
+scan_w_wrong_styled_switch=02031_W_compiler switches aren't supported in // styled comments
+% Compiler switches should be in normal pascal style comments.
+scan_d_handling_switch=02032_DL_Handling switch "$1"
+% When you set debugging info on (\var{-vd}) the compiler tells you when it
+% is evaluating conditional compile statements.
+scan_c_endif_found=02033_CL_ENDIF $1 found
+% When you turn on conditional messages(\var{-vc}), the compiler tells you
+% where it encounters conditional statements.
+scan_c_ifdef_found=02034_CL_IFDEF $1 found, $2
+% When you turn on conditional messages(\var{-vc}), the compiler tells you
+% where it encounters conditional statements.
+scan_c_ifopt_found=02035_CL_IFOPT $1 found, $2
+% When you turn on conditional messages(\var{-vc}), the compiler tells you
+% where it encounters conditional statements.
+scan_c_if_found=02036_CL_IF $1 found, $2
+% When you turn on conditional messages(\var{-vc}), the compiler tells you
+% where it encounters conditional statements.
+scan_c_ifndef_found=02037_CL_IFNDEF $1 found, $2
+% When you turn on conditional messages(\var{-vc}), the compiler tells you
+% where it encounters conditional statements.
+scan_c_else_found=02038_CL_ELSE $1 found, $2
+% When you turn on conditional messages(\var{-vc}), the compiler tells you
+% where it encounters conditional statements.
+scan_c_skipping_until=02039_CL_Skipping until...
+% When you turn on conditional messages(\var{-vc}), the compiler tells you
+% where it encounters conditional statements, and whether it is skipping or
+% compiling parts.
+scan_i_press_enter=02040_I_Press <return> to continue
+% When the \var{-vi} switch is used, the compiler stops compilation
+% and waits for the \var{Enter} key to be pressed when it encounters
+% a \var{\{\$STOP\}} directive.
+scan_w_unsupported_switch=02041_W_Unsupported switch "$1"
+% When warnings are turned on (\var{-vw}) the compiler warns you about
+% unsupported switches. This means that the switch is used in Delphi or
+% Turbo Pascal, but not in \fpc
+scan_w_illegal_directive=02042_W_Illegal compiler directive "$1"
+% When warings are turned on (\var{-vw}) the compiler warns you about
+% unrecognised switches. For a list of recognised switches, \progref
+scan_t_back_in=02043_TL_Back in $1
+% When you use (\var{-vt}) the compiler tells you when it has finished
+% reading an include file.
+scan_w_unsupported_app_type=02044_W_Unsupported application type: "$1"
+% You get this warning, ff you specify an unknown application type
+% with the directive \var{\{\$APPTYPE\}}
+scan_w_app_type_not_support=02045_W_APPTYPE is not supported by the target OS
+% The \var{\{\$APPTYPE\}} directive is supported by certain operating systems only.
+scan_w_description_not_support=02046_W_DESCRIPTION is not supported by the target OS
+% The \var{\{\$DESCRIPTION\}} directive is not supported on this target OS
+scan_n_version_not_support=02047_N_VERSION is not supported by target OS
+% The \var{\{\$VERSION\}} directive is not supported on this target OS
+scan_n_only_exe_version=02048_N_VERSION only for exes or DLLs
+% The \var{\{\$VERSION\}} directive is only used for executable or DLL sources.
+scan_w_wrong_version_ignored=02049_W_Wrong format for VERSION directive "$1"
+% The \var{\{\$VERSION\}} directive format is majorversion.minorversion
+% where majorversion and minorversion are words.
+scan_e_illegal_asmmode_specifier=02050_E_Illegal assembler style specified "$1"
+% When you specify an assembler mode with the \var{\{\$ASMMODE xxx\}}
+% the compiler didn't recognize the mode you specified.
+scan_w_no_asm_reader_switch_inside_asm=02051_W_ASM reader switch is not possible inside asm statement, "$1" will be effective only for next
+% It is not possible to switch from one assembler reader to another
+% inside an assmebler block. The new reader will be used for next
+% assembler statements only.
+scan_e_wrong_switch_toggle=02052_E_Wrong switch toggle, use ON/OFF or +/-
+% You need to use ON or OFF or a + or - to toggle the switch
+scan_e_resourcefiles_not_supported=02053_E_Resource files are not supported for this target
+% The target you are compiling for doesn't support resource files.
+scan_w_include_env_not_found=02054_W_Include environment "$1" not found in environment
+% The included environment variable can't be found in the environment, it will
+% be replaced by an empty string instead.
+scan_e_invalid_maxfpureg_value=02055_E_Illegal value for FPU register limit
+% Valid values for this directive are 0..8 and NORMAL/DEFAULT
+scan_w_only_one_resourcefile_supported=02056_W_Only one resource file is supported for this target
+% The target you are compiling for supports only one resource file.
+% The first resource file found is used, the others are discarded.
+scan_w_macro_support_turned_off=02057_W_Macro support has been turned off
+% A macro declaration has been found, but macro support is currently off,
+% so the declaration will be ignored. To turn macro support on compile with
+% -Sm on the commandline or add \{\$MACRO ON\} in the source
+scan_e_invalid_interface_type=02058_E_Illegal interface type specified. Valids are COM, CORBA or DEFAULT.
+% The interface type that was specified is not supported
+scan_w_appid_not_support=02059_W_APPID is only supported for PalmOS
+% The \var{\{\$APPID\}} directive is only supported for the PalmOS target.
+scan_w_appname_not_support=02060_W_APPNAME is only supported for PalmOS
+% The \var{\{\$APPNAME\}} directive is only supported for the PalmOS target.
+scan_e_string_exceeds_255_chars=02061_E_Constant strings can't be longer than 255 chars
+% A single string constant can contain at most 255 chars. Try splitting up the
+% string in multiple smaller parts and concatenate them with a + operator.
+scan_f_include_deep_ten=02062_F_Including include files exceeds a depth of 16.
+% When including include files the files have been nested to a level of 16.
+% The compiler will expand no further, since this may be a sign that
+% recursion is used.
+scan_e_too_many_push=02063_F_Too many levels of PUSH
+% A maximum of 20 levels is allowed.  This error occur only in mode MacPas.
+scan_e_too_many_pop=02064_E_A POP without a preceding PUSH
+% This error occur only in mode MacPas.
+scan_e_error_macro_lacks_value=02065_E_Macro or compile time variable "$1" does not have any value
+% Thus the conditional compile time expression cannot be evaluated.
+scan_e_wrong_switch_toggle_default=02066_E_Wrong switch toggle, use ON/OFF/DEFAULT or +/-/*
+% You need to use ON or OFF or DEFAULT or a + or - or * to toggle the switch
+scan_e_mode_switch_not_allowed=02067_E_Mode switch "$1" not allowed here
+% A mode switch has already been encountered, or, in case of option -Mmacpas,
+% a mode switch occur after UNIT.
+scan_e_error_macro_undefined=02068_E_Compile time variable "$1" is not defined.
+% Thus the conditional compile time expression cannot be evaluated.
+scan_e_utf8_bigger_than_65535=02069_E_UTF-8 code greater than 65535 found
+% \fpc handles utf-8 strings internally as widestrings e.g. the char codes are limited to 65535
+scan_e_utf8_malformed=02070_E_Malformed UTF-8 string
+% The given string isn't a valid UTF-8 string
+scan_c_switching_to_utf8=02071_C_UTF-8 signature found, using UTF-8 encoding
+% The compiler found an UTF-8 encoding signature ($ef, $bb, $bf) at the beginning of a file,
+% so it interprets it as an UTF-8 file
+% \end{description}
+#
+# Parser
+#
+# 03192 is the last used one
+#
+% \section{Parser messages}
+% This section lists all parser messages. The parser takes care of the
+% semantics of you language, i.e. it determines if your pascal constructs
+% are correct.
+% \begin{description}
+parser_e_syntax_error=03000_E_Parser - Syntax Error
+% An error against the Turbo Pascal language was encountered. This happens
+% typically when an illegal character is found in the sources file.
+parser_e_dont_nest_interrupt=03004_E_INTERRUPT procedure can't be nested
+% An \var{INTERRUPT} procedure must be global.
+parser_w_proc_directive_ignored=03005_W_Procedure type "$1" ignored
+% The specified is ignored by FPC programs.
+parser_e_no_overload_for_all_procs=03006_E_Not all declarations of "$1" are declared with OVERLOAD
+% When you want to use overloading using the \var{OVERLOAD} directive, then
+% all declarations need to have \var{OVERLOAD} specified.
+parser_e_export_name_double=03008_E_Duplicate exported function name "$1"
+% Exported function names inside a specific DLL must all be different
+parser_e_export_ordinal_double=03009_E_Duplicate exported function index $1
+% Exported function names inside a specific DLL must all be different
+parser_e_export_invalid_index=03010_E_Invalid index for exported function
+% DLL function index must be in the range \var{1..\$FFFF}
+parser_w_parser_reloc_no_debug=03011_W_Relocatable DLL or executable $1 debug info does not work, disabled.
+parser_w_parser_win32_debug_needs_WN=03012_W_To allow debugging for win32 code you need to disable relocation with -WN option
+% Stabs info is wrong for relocatable DLL or EXES use -WN
+% if you want to debug win32 executables.
+parser_e_constructorname_must_be_init=03013_E_Constructor name must be INIT
+% You are declaring an object constructor with a name which is not \var{init}, and the
+% \var{-Ss} switch is in effect. See the \var{-Ss} switch (\seeo{Ss}).
+parser_e_destructorname_must_be_done=03014_E_Destructor name must be DONE
+% You are declaring an object destructor with a name which is not \var{done}, and the
+% \var{-Ss} switch is in effect. See the \var{-Ss} switch (\seeo{Ss}).
+parser_e_proc_inline_not_supported=03016_E_Procedure type INLINE not supported
+% You tried to compile a program with C++ style inlining, and forgot to
+% specify the \var{-Si} option (\seeo{Si}). The compiler doesn't support C++
+% styled inlining by default.
+parser_w_constructor_should_be_public=03018_W_Constructor should be public
+% Constructors must be in the 'public' part of an object (class) declaration.
+parser_w_destructor_should_be_public=03019_W_Destructor should be public
+% Destructors must be in the 'public' part of an object (class) declaration.
+parser_n_only_one_destructor=03020_N_Class should have one destructor only
+% You can declare only one destructor for a class.
+parser_e_no_local_objects=03021_E_Local class definitions are not allowed
+% Classes must be defined globally. They cannot be defined inside a
+% procedure or function
+parser_f_no_anonym_objects=03022_F_Anonym class definitions are not allowed
+% An invalid object (class) declaration was encountered, i.e. an
+% object or class without methods that isn't derived from another object or
+% class. For example:
+% \begin{verbatim}
+% Type o = object
+%          a : longint;
+%          end;
+% \end{verbatim}
+% will trigger this error.
+parser_n_object_has_no_vmt=03023_N_The object "$1" has no VMT
+% This is a note indicating that the declared object has no
+% virtual method table.
+parser_e_illegal_parameter_list=03024_E_Illegal parameter list
+% You are calling a function with parameters that are of a different type than
+% the declared parameters of the function.
+parser_e_wrong_parameter_size=03026_E_Wrong number of parameters specified
+% There is an error in the parameter list of the function or procedure,
+% the number of parameters is not correct.
+parser_e_overloaded_no_procedure=03027_E_overloaded identifier "$1" isn't a function
+% The compiler encountered a symbol with the same name as an overloaded
+% function, but it is not a function it can overload.
+parser_e_overloaded_have_same_parameters=03028_E_overloaded functions have the same parameter list
+% You're declaring overloaded functions, but with the same parameter list.
+% Overloaded function must have at least 1 different parameter in their
+% declaration.
+parser_e_header_dont_match_forward=03029_E_function header doesn't match the forward declaration "$1"
+% You declared a function with same parameters but
+% different result type or function modifiers.
+parser_e_header_different_var_names=03030_E_function header "$1" doesn't match forward : var name changes $2 => $3
+% You declared the function in the \var{interface} part, or with the
+% \var{forward} directive, but define it with a different parameter list.
+parser_n_duplicate_enum=03031_N_Values in enumeration types have to be ascending
+% \fpc allows enumeration constructions as in C. Given the following
+% declaration two declarations:
+% \begin{verbatim}
+% type a = (A_A,A_B,A_E:=6,A_UAS:=200);
+% type a = (A_A,A_B,A_E:=6,A_UAS:=4);
+% \end{verbatim}
+% The second declaration would produce an error. \var{A\_UAS} needs to have a
+% value higher than \var{A\_E}, i.e. at least 7.
+parser_e_no_with_for_variable_in_other_segments=03033_E_With can not be used for variables in a different segment
+% With stores a variable locally on the stack,
+% but this is not possible if the variable belongs to another segment.
+parser_e_too_much_lexlevel=03034_E_function nesting > 31
+% You can nest function definitions only 31 times.
+parser_e_range_check_error=03035_E_range check error while evaluating constants
+% The constants are out of their allowed range.
+parser_w_range_check_error=03036_W_range check error while evaluating constants
+% The constants are out of their allowed range.
+parser_e_double_caselabel=03037_E_duplicate case label
+% You are specifying the same label 2 times in a \var{case} statement.
+parser_e_case_lower_less_than_upper_bound=03038_E_Upper bound of case range is less than lower bound
+% The upper bound of a \var{case} label is less than the lower bound and this
+% is useless
+parser_e_type_const_not_possible=03039_E_typed constants of classes are not allowed
+% You cannot declare a constant of type class or object.
+parser_e_no_overloaded_procvars=03040_E_functions variables of overloaded functions are not allowed
+% You are trying to assign an overloaded function to a procedural variable.
+% This is not allowed
+parser_e_invalid_string_size=03041_E_string length must be a value from 1 to 255
+% The length of a shortstring in Pascal is limited to 255 characters. You are
+% trying to declare a string with length lower than 1 or greater than 255
+parser_w_use_extended_syntax_for_objects=03042_W_use extended syntax of NEW and DISPOSE for instances of objects
+% If you have a pointer \var{a} to a class type, then the statement
+% \var{new(a)} will not initialize the class (i.e. the constructor isn't
+% called), although space will be allocated. you should issue the
+% \var{new(a,init)} statement. This will allocate space, and call the
+% constructor of the object
+parser_w_no_new_dispose_on_void_pointers=03043_W_use of NEW or DISPOSE for untyped pointers is meaningless
+parser_e_no_new_dispose_on_void_pointers=03044_E_use of NEW or DISPOSE is not possible for untyped pointers
+% You cannot use \var{new(p)} or \var{dispose(p)} if \var{p} is an untyped pointer
+% because no size is associated to an untyped pointer.
+% Accepted for compatibility in \var{tp} and \var{delphi} modes.
+parser_e_class_id_expected=03045_E_class identifier expected
+% This happens when the compiler scans a procedure declaration that contains
+% a dot,
+% i.e., a object or class method, but the type in front of the dot is not
+% a known type.
+parser_e_no_type_not_allowed_here=03046_E_type identifier not allowed here
+% You cannot use a type inside an expression.
+parser_e_methode_id_expected=03047_E_method identifier expected
+% This identifier is not a method.
+% This happens when the compiler scans a procedure declaration that contains
+% a dot, i.e., a object or class method, but the procedure name is not a
+% procedure of this type.
+parser_e_header_dont_match_any_member=03048_E_function header doesn't match any method of this class "$1"
+% This identifier is not a method.
+% This happens when the compiler scans a procedure declaration that contains
+% a dot, i.e., a object or class method, but the procedure name is not a
+% procedure of this type.
+parser_d_procedure_start=03049_DL_procedure/function $1
+% When using the \var{-vd} switch, the compiler tells you when it starts
+% processing a procedure or function implementation.
+parser_e_error_in_real=03050_E_Illegal floating point constant
+% The compiler expects a floating point expression, and gets something else.
+parser_e_fail_only_in_constructor=03051_E_FAIL can be used in constructors only
+% You are using the \var{fail} keyword outside a constructor method.
+parser_e_no_paras_for_destructor=03052_E_Destructors can't have parameters
+% You are declaring a destructor with a parameter list. Destructor methods
+% cannot have parameters.
+parser_e_only_class_methods_via_class_ref=03053_E_Only class methods can be referred with class references
+% This error occurs in a situation like the following:
+% \begin{verbatim}
+% Type :
+%    Tclass = Class of Tobject;
+%
+% Var C : TClass;
+%
+% begin
+% ...
+% C.free
+% \end{verbatim}
+% \var{Free} is not a class method and hence cannot be called with a class
+% reference.
+parser_e_only_class_methods=03054_E_Only class methods can be accessed in class methods
+% This is related to the previous error. You cannot call a method of an object
+% from a inside a class method. The following code would produce this error:
+% \begin{verbatim}
+% class procedure tobject.x;
+%
+% begin
+%   free
+% \end{verbatim}
+% Because free is a normal method of a class it cannot be called from a class
+% method.
+parser_e_case_mismatch=03055_E_Constant and CASE types do not match
+% One of the labels is not of the same type as the case variable.
+parser_e_illegal_symbol_exported=03056_E_The symbol can't be exported from a library
+% You can only export procedures and functions when you write a library. You
+% cannot export variables or constants.
+parser_w_should_use_override=03057_W_An inherited method is hidden by "$1"
+% A method that is declared \var{virtual} in a parent class, should be
+% overridden in the descendent class with the \var{override} directive. If you
+% don't specify the \var{override} directive, you will hide the parent method;
+% you will not override it.
+parser_e_nothing_to_be_overridden=03058_E_There is no method in an ancestor class to be overridden: "$1"
+% You are trying to \var{override} a virtual method of a parent class that does
+% not exist.
+parser_e_no_procedure_to_access_property=03059_E_No member is provided to access property
+% You specified no \var{read} directive for a property.
+parser_w_stored_not_implemented=03060_W_Stored prorperty directive is not yet implemented
+% The \var{stored} directive is not yet implemented
+parser_e_ill_property_access_sym=03061_E_Illegal symbol for property access
+% There is an error in the \var{read} or \var{write} directives for an array
+% property. When you declare an array property, you can only access it with
+% procedures and functions. The following code woud cause such an error.
+% \begin{verbatim}
+% tmyobject = class
+%   i : integer;
+%   property x [i : integer]: integer read I write i;
+% \end{verbatim}
+%
+parser_e_cant_access_protected_member=03062_E_Cannot access a protected field of an object here
+% Fields that are declared in a \var{protected} section of an object or class
+% declaration cannot be accessed outside the module wher the object is
+% defined, or outside descendent object methods.
+parser_e_cant_access_private_member=03063_E_Cannot access a private field of an object here
+% Fields that are declared in a \var{private} section of an object or class
+% declaration cannot be accessed outside the module where the class is
+% defined.
+parser_e_overridden_methods_not_same_ret=03066_E_overridden methods must have the same return type: "$2" is overriden by "$1" which has another return type
+% If you declare overridden methods in a class definition, they must
+% have the same return type.
+parser_e_dont_nest_export=03067_E_EXPORT declared functions can't be nested
+% You cannot declare a function or procedure within a function or procedure
+% that was declared as an export procedure.
+parser_e_methods_dont_be_export=03068_E_methods can't be EXPORTed
+% You cannot declare a procedure that is a method for an object as
+% \var{export}ed.
+parser_e_call_by_ref_without_typeconv=03069_E_call by var parameters have to match exactly: Got "$1" expected "$2"
+% When calling a function declared with \var{var} parameters, the variables in
+% the function call must be of exactly the same type. There is no automatic
+% type conversion.
+parser_e_no_super_class=03070_E_Class isn't a parent class of the current class
+% When calling inherited methods, you are trying to call a method of a non-related
+% class. You can only call an inherited method of a parent class.
+parser_e_self_not_in_method=03071_E_SELF is only allowed in methods
+% You are trying to use the \var{self} parameter outside an object's method.
+% Only methods get passed the \var{self} parameters.
+parser_e_generic_methods_only_in_methods=03072_E_methods can be only in other methods called direct with type identifier of the class
+% A construction like \var{sometype.somemethod} is only allowed in a method.
+parser_e_illegal_colon_qualifier=03073_E_Illegal use of ':'
+% You are using the format \var{:} (colon) 2 times on an expression that
+% is not a real expression.
+parser_e_illegal_set_expr=03074_E_range check error in set constructor or duplicate set element
+% The declaration of a set contains an error. Either one of the elements is
+% outside the range of the set type, either two of the elements are in fact
+% the same.
+parser_e_pointer_to_class_expected=03075_E_Pointer to object expected
+% You specified an illegal type in a \var{new} statement.
+% The extended syntax of \var{new} needs an  object as a parameter.
+parser_e_expr_have_to_be_constructor_call=03076_E_Expression must be constructor call
+% When using the extended syntax of \var{new}, you must specify the constructor
+% method of the object you are trying to create. The procedure you specified
+% is not a constructor.
+parser_e_expr_have_to_be_destructor_call=03077_E_Expression must be destructor call
+% When using the extended syntax of \var{dispose}, you must specify the
+% destructor method of the object you are trying to dispose of.
+% The procedure you specified is not a destructor.
+parser_e_invalid_record_const=03078_E_Illegal order of record elements
+% When declaring a constant record, you specified the fields in the wrong
+% order.
+parser_e_false_with_expr=03079_E_Expression type must be class or record type
+% A \var{with} statement needs an argument that is of the type \var{record}
+% or \var{class}. You are using \var{with} on an expression that is not of
+% this type.
+parser_e_void_function=03080_E_Procedures can't return a value
+% In \fpc, you can specify a return value for a function when using
+% the \var{exit} statement. This error occurs when you try to do this with a
+% procedure. Procedures  cannot return a value.
+parser_e_constructors_always_objects=03081_E_constructors and destructors must be methods
+% You're declaring a procedure as destructor or constructor, when the
+% procedure isn't a class method.
+parser_e_operator_not_overloaded=03082_E_Operator is not overloaded
+% You're trying to use an overloaded operator when it is not overloaded for
+% this type.
+parser_e_no_such_assignment=03083_E_Impossible to overload assignment for equal types
+% You can not overload assignment for types
+% that the compiler considers as equal.
+parser_e_overload_impossible=03084_E_Impossible operator overload
+% The combination of operator, arguments and return type are
+% incompatible.
+parser_e_no_reraise_possible=03085_E_Re-raise isn't possible there
+% You are trying to raise an exception where it is not allowed. You can only
+% raise exceptions in an \var{except} block.
+parser_e_no_new_or_dispose_for_classes=03086_E_The extended syntax of new or dispose isn't allowed for a class
+% You cannot generate an instance of a class with the extended syntax of
+% \var{new}. The constructor must be used for that. For the same reason, you
+% cannot call \var{dispose} to de-allocate an instance of a class, the
+% destructor must be used for that.
+parser_e_procedure_overloading_is_off=03088_E_Procedure overloading is switched off
+% When using the \var{-So} switch, procedure overloading is switched off.
+% Turbo Pascal does not support function overloading.
+parser_e_overload_operator_failed=03089_E_It is not possible to overload this operator (overload = instead)
+% You are trying to overload an operator which cannot be overloaded.
+% The following operators can be overloaded :
+% \begin{verbatim}
+%    +, -, *, /, =, >, <, <=, >=, is, as, in, **, :=
+% \end{verbatim}
+parser_e_comparative_operator_return_boolean=03090_E_Comparative operator must return a boolean value
+% When overloading the \var{=} operator, the function must return a boolean
+% value.
+parser_e_only_virtual_methods_abstract=03091_E_Only virtual methods can be abstract
+% You are declaring a method as abstract, when it is not declared to be
+% virtual.
+parser_f_unsupported_feature=03092_F_Use of unsupported feature!
+% You're trying to force the compiler into doing something it cannot do yet.
+parser_e_mix_of_classes_and_objects=03093_E_The mix of different kind of objects (class, object, interface, etc) isn't allowed
+% You cannot derive \var{objects}, \var{classes}, \var{cppclasses} and \var{interfaces} interttwined . E.g.
+% a class cannot have an object as parent and vice versa.
+parser_w_unknown_proc_directive_ignored=03094_W_Unknown procedure directive had to be ignored: "$1"
+% The procedure directive you specified is unknown.
+parser_e_absolute_only_one_var=03095_E_absolute can only be associated to one variable
+% You cannot specify more than one variable before the \var{absolute} directive.
+% Thus, the following construct will provide this error:
+% \begin{verbatim}
+% Var Z : Longint;
+%     X,Y : Longint absolute Z;
+% \end{verbatim}
+% \item [ absolute can only be associated a var or const ]
+% The address of a \var{absolute} directive can only point to a variable or a
+% typed constant. Therefore, the following code will produce this error:
+% \begin{verbatim}
+%   Procedure X;
+%
+%  var p : longint absolute x;
+% \end{verbatim}
+%
+parser_e_absolute_only_to_var_or_const=03096_E_absolute can only be associated with a var or const
+% The address of a \var{absolute} directive can only point to a variable or
+% constant. Therefore, the following code will produce this error:
+% \begin{verbatim}
+%   Procedure X;
+%
+%  var p : longint absolute x;
+% \end{verbatim}
+%
+parser_e_initialized_only_one_var=03097_E_Only one variable can be initialized
+% You cannot specify more than one variable with a initial value
+% in Delphi mode.
+parser_e_abstract_no_definition=03098_E_Abstract methods shouldn't have any definition (with function body)
+% Abstract methods can only be declared, you cannot implement them. They
+% should be overridden by a descendant class.
+parser_e_overloaded_must_be_all_global=03099_E_This overloaded function can't be local (must be exported)
+% You are defining a overloaded function in the implementation part of a unit,
+% but there is no corresponding declaration in the interface part of the unit.
+parser_w_virtual_without_constructor=03100_W_Virtual methods are used without a constructor in "$1"
+% If you declare objects or classes that contain virtual methods, you need
+% to have a constructor and destructor to initialize them. The compiler
+% encountered an object or class with virtual methods that doesn't have
+% a constructor/destructor pair.
+parser_c_macro_defined=03101_CL_Macro defined: $1
+% When \var{-vc} is used, the compiler tells you when it defines macros.
+parser_c_macro_undefined=03102_CL_Macro undefined: $1
+% When \var{-vc} is used, the compiler tells you when it undefines macros.
+parser_c_macro_set_to=03103_CL_Macro $1 set to $2
+% When \var{-vc} is used, the compiler tells you what values macros get.
+parser_i_compiling=03104_I_Compiling $1
+% When you turn on information messages (\var{-vi}), the compiler tells you
+% what units it is recompiling.
+parser_u_parsing_interface=03105_UL_Parsing interface of unit $1
+% This tells you that the reading of the interface
+% of the current unit starts
+parser_u_parsing_implementation=03106_UL_Parsing implementation of $1
+% This tells you that the code reading of the implementation
+% of the current unit, library or program starts
+parser_d_compiling_second_time=03107_DL_Compiling $1 for the second time
+% When you request debug messages (\var{-vd}) the compiler tells you what
+% units it recompiles for the second time.
+parser_e_no_property_found_to_override=03109_E_No property found to override
+% You want to overrride a property of a parent class, when there is, in fact,
+% no such property in the parent class.
+parser_e_only_one_default_property=03110_E_Only one default property is allowed
+% You specified a property as \var{Default}, but the class already has a
+% default property, and a class can have only one default property.
+parser_e_property_need_paras=03111_E_The default property must be an array property
+% Only array properties of classes can be made \var{default} properties.
+parser_e_constructor_cannot_be_not_virtual=03112_E_Virtual constructors are only supported in class object model
+% You cannot have virtual constructors in objects. You can only have them
+% in classes.
+parser_e_no_default_property_available=03113_E_No default property available
+% You are trying to access a default property of a class, but this class (or one of
+% it's ancestors) doesn't have a default property.
+parser_e_cant_have_published=03114_E_The class can't have a published section, use the {$M+} switch
+% If you want a \var{published} section in a class definition, you must
+% use the \var{\{\$M+\}} switch, whch turns on generation of type
+% information.
+parser_e_forward_declaration_must_be_resolved=03115_E_Forward declaration of class "$1" must be resolved here to use the class as ancestor
+% To be able to use an object as an ancestor object, it must be defined
+% first. This error occurs in the following situation:
+% \begin{verbatim}
+%  Type ParentClas = Class;
+%       ChildClass = Class(ParentClass)
+%         ...
+%       end;
+% \end{verbatim}
+% Where \var{ParentClass} is declared but not defined.
+parser_e_no_local_operator=03116_E_Local operators not supported
+% You cannot overload locally, i.e. inside procedures or function
+% definitions.
+parser_e_proc_dir_not_allowed_in_interface=03117_E_Procedure directive "$1" not allowed in interface section
+% This procedure directive is not allowed in the \var{interface} section of
+% a unit. You can only use it in the \var{implementation} section.
+parser_e_proc_dir_not_allowed_in_implementation=03118_E_Procedure directive "$1" not allowed in implementation section
+% This procedure directive is not defined in the \var{implementation} section of
+% a unit. You can only use it in the \var{interface} section.
+parser_e_proc_dir_not_allowed_in_procvar=03119_E_Procedure directive "$1" not allowed in procvar declaration
+% This procedure directive cannot be part of a procedural or function
+% type declaration.
+parser_e_function_already_declared_public_forward=03120_E_Function is already declared Public/Forward "$1"
+% You will get this error if a function is defined as \var{forward} twice.
+% Or it is once in the \var{interface} section, and once as a \var{forward}
+% declaration in the \var{implmentation} section.
+parser_e_not_external_and_export=03121_E_Can't use both EXPORT and EXTERNAL
+% These two procedure directives are mutually exclusive
+parser_w_not_supported_for_inline=03123_W_"$1" not yet supported inside inline procedure/function
+% Inline procedures don't support this declaration.
+parser_w_inlining_disabled=03124_W_Inlining disabled
+% Inlining of procedures is disabled.
+parser_i_writing_browser_log=03125_I_Writing Browser log $1
+% When information messages are on, the compiler warns you when it
+% writes the browser log (generated with the \var{\{\$Y+ \}} switch).
+parser_h_maybe_deref_caret_missing=03126_H_may be pointer dereference is missing
+% The compiler thinks that a pointer may need a dereference.
+parser_f_assembler_reader_not_supported=03127_F_Selected assembler reader not supported
+% The selected assembler reader (with \var{\{\$ASMMODE xxx\}} is not
+% supported. The compiler can be compiled with or without support for a
+% particular assembler reader.
+parser_e_proc_dir_conflict=03128_E_Procedure directive "$1" has conflicts with other directives
+% You specified a procedure directive that conflicts with other directives.
+% for instance \var{cdecl} and \var{pascal} are mutually exclusive.
+parser_e_call_convention_dont_match_forward=03129_E_Calling convention doesn't match forward
+% This error happens when you declare a function or procedure with
+% e.g. \var{cdecl;} but omit this directive in the implementation, or vice
+% versa. The calling convention is part of the function declaration, and
+% must be repeated in the function definition.
+parser_e_property_cant_have_a_default_value=03131_E_Property can't have a default value
+% Set properties or indexed properties cannot have a default value.
+parser_e_property_default_value_must_const=03132_E_The default value of a property must be constant
+% The value of a \var{default} declared property must be known at compile
+% time. The value you specified is only known at run time. This happens
+% .e.g. if you specify a variable name as a default value.
+parser_e_cant_publish_that=03133_E_Symbol can't be published, can be only a class
+% Only class type variables can be in a \var{published} section of a class
+% if they are not declared as a property.
+parser_e_cant_publish_that_property=03134_E_That kind of property can't be published
+% Properties in a \var{published} section cannot be array properties.
+% they must be moved to public sections. Properties in a \var{published}
+% section must be an ordinal type, a real type, strings or sets.
+parser_e_empty_import_name=03136_E_An import name is required
+% Some targets need a name for the imported procedure or a \var{cdecl} specifier
+parser_e_division_by_zero=03138_E_Division by zero
+% There is a divsion by zero encounted
+parser_e_invalid_float_operation=03139_E_Invalid floating point operation
+% An operation on two real type values produced an overflow or a division
+% by zero.
+parser_e_array_lower_less_than_upper_bound=03140_E_Upper bound of range is less than lower bound
+% The upper bound of a an array declaration is less than the lower bound and this
+% is not possible
+parser_w_string_too_long=03141_W_string "$1" is longer than "$2"
+% The size of the constant string is larger than the size you specified in
+% string type definition
+parser_e_string_larger_array=03142_E_string length is larger than array of char length
+% The size of the constant string is larger than the size you specified in
+% the array[x..y] of char definition
+parser_e_ill_msg_expr=03143_E_Illegal expression after message directive
+% \fpc supports only integer or string values as message constants
+parser_e_ill_msg_param=03144_E_Message handlers can take only one call by ref. parameter
+% A method declared with the \var{message}-directive as message handler
+% can take only one parameter which must be declared as call by reference
+% Parameters are declared as call by reference using the \var{var}-directive
+parser_e_duplicate_message_label=03145_E_Duplicate message label: "$1"
+% A label for a message is used twice in one object/class
+parser_e_self_in_non_message_handler=03146_E_Self can only be an explicit parameter in methods which are message handlers
+% The self parameter can only be passed explicitly to a method which
+% is declared as message handler.
+parser_e_threadvars_only_sg=03147_E_Threadvars can be only static or global
+% Threadvars must be static or global, you can't declare a thread
+% local to a procedure. Local variables are always local to a thread,
+% because every thread has it's own stack and local variables
+% are stored on the stack
+parser_f_direct_assembler_not_allowed=03148_F_Direct assembler not supported for binary output format
+% You can't use direct assembler when using a binary writer, choose an
+% other outputformat or use an other assembler reader
+parser_w_no_objpas_use_mode=03149_W_Don't load OBJPAS unit manually, use \{\$mode objfpc\} or \{\$mode delphi\} instead
+% You are trying to load the ObjPas unit manually from a uses clause. This is
+% not a good idea. Use the \var{\{\$mode objfpc\}} or
+% \var{\{\$mode delphi\}}
+% directives which load the unit automatically
+parser_e_no_object_override=03150_E_OVERRIDE can't be used in objects
+% Override is not supported for objects, use \var{virtual} instead to override
+% a method of a parent object
+parser_e_cant_use_inittable_here=03151_E_Data types which require initialization/finalization can't be used in variant records
+% Some data type (e.g. \var{ansistring}) needs initialization/finalization
+% code which is implicitly generated by the compiler. Such data types
+% can't be used in the variant part of a record.
+parser_e_resourcestring_only_sg=03152_E_Resourcestrings can be only static or global
+% Resourcestring can not be declared local, only global or using the static
+% directive.
+parser_e_exit_with_argument_not__possible=03153_E_Exit with argument can't be used here
+% an exit statement with an argument for the return value can't be used here, this
+% can happen e.g. in \var{try..except} or \var{try..finally} blocks
+parser_e_stored_property_must_be_boolean=03154_E_The type of the storage symbol must be boolean
+% If you specify a storage symbol in a property declaration, it must be of
+% the type boolean
+parser_e_ill_property_storage_sym=03155_E_This symbol isn't allowed as storage symbol
+% You can't use this type of symbol as storage specifier in property
+% declaration. You can use only methods with the result type boolean,
+% boolean class fields or boolean constants
+parser_e_only_publishable_classes_can__be_published=03156_E_Only class which are compiled in $M+ mode can be published
+% In the published section of a class can be only class as fields used which
+% are compiled in \var{\{\$M+\}} or which are derived from such a class. Normally
+% such a class should be derived from TPersitent
+parser_e_proc_directive_expected=03157_E_Procedure directive expected
+% When declaring a procedure in a const block you used a ; after the
+% procedure declaration after which a procedure directive must follow.
+% Correct declarations are:
+% \begin{verbatim}
+% const
+%   p : procedure;stdcall=nil;
+%   p : procedure stdcall=nil;
+% \end{verbatim}
+parser_e_invalid_property_index_value=03158_E_The value for a property index must be of an ordinal type
+% The value you use to index a property must be of an ordinal type, for
+% example an integer or enumerated type.
+parser_e_procname_to_short_for_export=03159_E_Procedure name to short to be exported
+% The length of the procedure/function name must be at least 2 characters
+% long. This is because of a bug in dlltool which doesn't parse the .def
+% file correct with a name of length 1.
+parser_e_dlltool_unit_var_problem=03160_E_No DEFFILE entry can be generated for unit global vars
+parser_e_dlltool_unit_var_problem2=03161_E_Compile without -WD option
+% You need to compile this file without the -WD switch on the
+% commandline
+parser_f_need_objfpc_or_delphi_mode=03162_F_You need ObjFpc (-S2) or Delphi (-Sd) mode to compile this module
+% You need to use \{\$mode objfpc\} or \{\$mode delphi\} to compile this file.
+% Or use the equivalent commandline switches -S2 or -Sd.
+parser_e_no_export_with_index_for_target=03163_E_Can't export with index under $1
+% Exporting of functions or procedures with a specified index is not
+% supported on this target.
+parser_e_no_export_of_variables_for_target=03164_E_Exporting of variables is not supported under $1
+% Exporting of variables is not supported on this target.
+parser_e_improper_guid_syntax=03165_E_Improper GUID syntax
+parser_w_interface_mapping_notfound=03168_W_Procedure named "$1" not found that is suitable for implementing the $2.$3
+parser_e_interface_id_expected=03169_E_interface identifier expected
+% This happens when the compiler scans a \var{class} declaration that contains
+% \var{interface} function name mapping code like this:
+% \begin{verbatim}
+% type
+%   TMyObject = class(TObject, IDispatch)
+%     function IUnknown.QueryInterface=MyQueryInterface;
+%     ....
+% \end{verbatim}
+% and the \var{interface} before the dot not listed in the inheritance list.
+parser_e_type_cant_be_used_in_array_index=03170_E_Type "$1" can't be used as array index type
+% Types like \var{qword} or \var{int64} aren't allowed as array index type
+parser_e_no_con_des_in_interfaces=03171_E_Con- and destructors aren't allowed in interfaces
+% Constructor and destructor declarations aren't allowed in interface
+% In the most cases the method \var{QueryInterface} of \var{IUnknown} can
+% be used to create a new interface.
+parser_e_no_access_specifier_in_interfaces=03172_E_Access specifiers can't be used in INTERFACES
+% The access specifiers \var{public}, \var{private}, \var{protected} and
+% \var{pusblished} can't be used in interfaces because all methods
+% of an interfaces must be public.
+parser_e_no_vars_in_interfaces=03173_E_An interface can't contain fields
+% Declarations of fields aren't allowed in interfaces. An interface
+% can contain only methods
+parser_e_no_local_proc_external=03174_E_Can't declare local procedure as EXTERNAL
+% Declaring local procedures as external is not possible. Local procedures
+% get hidden parameters that will make the chance of errors very high
+parser_w_skipped_fields_before=03175_W_Some fields coming before "$1" weren't initialized
+% In Delphi mode, not all fields of a typed constant record have to be
+% initialized, but the compiler warns you when it detects such situations.
+parser_e_skipped_fields_before=03176_E_Some fields coming before "$1" weren't initialized
+% In all syntax modes but Delphi mode, you can't leave some fields uninitialized
+% in the middle of a typed constant record
+parser_w_skipped_fields_after=03177_W_Some fields coming after "$1" weren't initialized
+% You can leave some fields at the end of a type constant record uninitialized
+% (the compiler will initialize them to zero automatically). This may be the cause
+% of subtle problems.
+parser_e_varargs_need_cdecl_and_external=03178_E_VarArgs directive without CDecl and External
+% The varargs directive can only be used with procedures or functions
+% that are declared with \var{cdecl} and \var{external} directives. The varargs directive
+% is only meant to provide a compatible interface to C functions like printf.
+parser_e_self_call_by_value=03179_E_Self must be a normal (call-by-value) parameter
+% You can't declare self as a const or var parameter, it must always be
+% a call-by-value parameter
+parser_e_interface_has_no_guid=03180_E_Interface "$1" has no interface identification
+% When you want to assign an interface to a constant, then the interface
+% must have a GUID value set.
+parser_e_illegal_field_or_method=03181_E_Unknown class field or method identifier "$1"
+% Properties must refer to a field or method in the same class.
+parser_w_proc_overriding_calling=03182_W_Overriding calling convention "$1" with "$2"
+% There are two directives in the procedure declaration that specify a calling
+% convention. Only the last directive will be used
+parser_e_no_procvarobj_const=03183_E_Typed constants of the type "procedure of object" can only be initialized with NIL
+% You can't assign the address of a method to a typed constant which has a
+% 'procedure of object' type, because such a constant requires two addresses:
+% that of the method (which is known at compile time) and that of the object or
+% class instance it operates on (which can not be known at compile time).
+parser_e_default_value_only_one_para=03184_E_Default value can only be assigned to one parameter
+parser_e_default_value_expected_for_para=03185_E_Default parameter required for "$1"
+parser_w_unsupported_feature=03186_W_Use of unsupported feature!
+% You're trying to force the compiler into doing something it cannot do yet.
+parser_h_c_arrays_are_references=03187_H_C arrays are passed by reference
+% Any array passed to a C functions is passed
+% by a pointer (i.e. by reference).
+parser_e_C_array_of_const_must_be_last=03188_E_C array of const must be the last argument
+% You can not add any other argument after an \var{array of const} for
+% \var{cdecl} functions, as the size pushed on stack for this argument is
+% not known.
+parser_h_type_redef=03189_H_Type "$1" redefinition
+% This is an indicator that a previously declared type is
+% being redefined as something else. This may, or may not
+% be, a cause for errors.
+parser_w_cdecl_has_no_high=03190_W_cdecl'ared functions have no high parameter
+% Functions declared with cdecl modifier do not pass an extra implicit parameter.
+parser_w_cdecl_no_openstring=03191_W_cdecl'ared functions do not support open strings
+% Openstring is not supported for cdecl'ared functions.
+parser_e_initialized_not_for_threadvar=03192_E_Cannot initialize variables declared as threadvar
+% Variables declared as threadvar can not be initialized with a default value.
+% The variables will always be filled with zero at the start of a new thread.
+parser_e_msg_only_for_classes=03193_E_Message directive is only allowed in Classes
+% The message directive is only supported for Class types.
+parser_e_procedure_or_function_expected=03194_E_Procedure or Function expected
+% A class method can only be specified for procedures and functions.
+parser_e_illegal_calling_convention=03195_W_Calling convention directive ignored: "$1"
+% Some calling conventions are supported only by certain CPUs. I.e. most non-i386 ports support
+% only the standard ABI calling convention of the CPU.
+parser_e_no_object_reintroduce=03196_E_REINTRODUCE can't be used in objects
+% \var{reintroduce} is not supported for objects.
+parser_e_paraloc_only_one_para=03197_E_Each argument must have it's own location
+% If locations for arguments are specified explicitly as it is required by
+% some syscall conventions, each argument must have it's only location, things
+% like \var{procedure p(i,j : longint 'r1');} aren't allowed
+parser_e_paraloc_all_paras=03198_E_Each argument must have an explicit location
+% If one argument has an explicit argument location, all arguments of a procedure
+% must have one.
+parser_e_illegal_explicit_paraloc=03199_E_Unknown argument location
+% The location specified for an argument isn't recognized by the compiler
+parser_e_32bitint_or_pointer_variable_expected=03200_E_32 Bit-Integer or pointer variable expected
+% The libbase for MorphOS/AmigaOS can be give only as \var{longint}, \var{dword} or any pointer variable.
+parser_e_goto_outside_proc=03201_E_Goto statements aren't allowed between different procedures
+% It isn't allowed to use the \var{goto} statements referencing labels outside the
+% current procedure. The following example shows the problem:
+% \begin{verbatim}
+% ...
+%   procedure p1;
+%   label
+%     l1;
+%
+%     procedure p2;
+%     begin
+%       goto l1; // This goto ISN'T allowed
+%     end;
+%
+%   begin
+%     p2
+%   l1:
+%   end;
+% ...
+%
+% \end{verbatim}
+parser_f_too_complex_proc=03202_F_Procedure too complex, it requires too much registers
+% Your procedure body is too long for the compiler. You should split the
+% procedure into multiple smaller procedures.
+parser_e_illegal_expression=03203_E_Illegal expression
+% This can occur under many circumstances. Mostly when trying to evaluate
+% constant expressions.
+parser_e_invalid_integer=03204_E_Invalid integer expression
+% You made an expression which isn't an integer, and the compiler expects the
+% result to be an integer.
+parser_e_invalid_qualifier=03205_E_Illegal qualifier
+% One of the following is happening :
+% \begin{itemize}
+% \item You're trying to access a field of a variable that is not a record.
+% \item You're indexing a variable that is not an array.
+% \item You're dereferencing a variable that is not a pointer.
+% \end{itemize}
+parser_e_upper_lower_than_lower=03206_E_High range limit < low range limit
+% You are declaring a subrange, and the lower limit is higher than the high
+% limit of the range.
+parser_e_macpas_exit_wrong_param=03207_E_Exit's parameter must be the name of the procedure it is used in
+% Non local exit is not allowed. This error occur only in mode MacPas.
+parser_e_illegal_assignment_to_count_var=03208_E_Illegal assignment to for-loop variable "$1"
+% The type of a \var{for} loop variable must be an ordinal type.
+% Loop variables cannot be reals or strings.
+parser_e_no_local_var_external=03209_E_Can't declare local variable as EXTERNAL
+% Declaring local variables as external is not allowed. Only global variables can reference
+% to external variables.
+parser_e_proc_already_external=03210_E_Procedure is already declared EXTERNAL
+% The procedure is already declared with the EXTERNAL directive in an interface or
+% forward declaration.
+parser_w_implicit_uses_of_variants_unit=03211_W_Implicit uses of Variants unit
+% The Variant type is used in the unit without any used unit using the Variants unit. The
+% compiler has implicitly added the Variants unit to the uses list. To remove this warning
+% the Variants unit needs to be added to the uses statement.
+parser_e_no_static_method_in_interfaces=03212_E_Class and static methods can't be used in INTERFACES
+% The specifier \var{class} and directive \var{static} can't be used in interfaces
+% because all methods of an interfaces must be public.
+parser_e_arithmetic_operation_overflow=03213_E_Overflow in arithmetic operation
+% An operation on two integers values produced an overflow
+% \end{description}
+#
+# Type Checking
+#
+# 04049 is the last used one
+#
+% \section{Type checking errors}
+% This section lists all errors that can occur when type checking is
+% performed.
+% \begin{description}
+type_e_mismatch=04000_E_Type mismatch
+% This can happen in many cases:
+% \begin{itemize}
+% \item The variable you're assigning to is of a different type than the
+% expression in the assignment.
+% \item You are calling a function or procedure with parameters that are
+% incompatible with the parameters in the function or procedure definition.
+% \end{itemize}
+type_e_incompatible_types=04001_E_Incompatible types: got "$1" expected "$2"
+% There is no conversion possible between the two types
+% Another possiblity is that they are declared in different
+% declarations:
+% \begin{verbatim}
+% Var
+%    A1 : Array[1..10] Of Integer;
+%    A2 : Array[1..10] Of Integer;
+%
+% Begin
+%    A1:=A2; { This statement gives also this error, it
+%              is due the strict type checking of pascal }
+% End.
+% \end{verbatim}
+type_e_not_equal_types=04002_E_Type mismatch between "$1" and "$2"
+% The types are not equal
+type_e_type_id_expected=04003_E_Type identifier expected
+% The identifier is not a type, or you forgot to supply a type identifier.
+type_e_variable_id_expected=04004_E_Variable identifier expected
+% This happens when you pass a constant to a routine (such as \var{Inc} var or \var{Dec})
+% when it expects a variable. You can only pass variables as arguments to these functions.
+type_e_integer_expr_expected=04005_E_Integer expression expected, but got "$1"
+% The compiler expects an expression of type integer, but gets a different
+% type.
+type_e_boolean_expr_expected=04006_E_Boolean expression expected, but got "$1"
+% The expression must be a boolean type, it should be return true or
+% false.
+type_e_ordinal_expr_expected=04007_E_Ordinal expression expected
+% The expression must be of ordinal type, i.e., maximum a \var{Longint}.
+% This happens, for instance, when you specify a second argument
+% to \var{Inc} or \var{Dec} that doesn't evaluate to an ordinal value.
+type_e_pointer_type_expected=04008_E_pointer type expected, but got "$1"
+% The variable or expression isn't of the type \var{pointer}. This
+% happens when you pass a variable that isn't a pointer to \var{New}
+% or \var{Dispose}.
+type_e_class_type_expected=04009_E_class type expected, but got "$1"
+% The variable of expression isn't of the type \var{class}. This happens
+% typically when
+% \begin{enumerate}
+% \item The parent class in a class declaration isn't a class.
+% \item An exception handler (\var{On}) contains a type identifier that
+% isn't a class.
+% \end{enumerate}
+type_e_cant_eval_constant_expr=04011_E_Can't evaluate constant expression
+% This error can occur when the bounds of an array you declared does
+% not evaluate to ordinal constants
+type_e_set_element_are_not_comp=04012_E_Set elements are not compatible
+% You are trying to make an operation on two sets, when the set element types
+% are not the same. The base type of a set must be the same when taking the
+% union
+type_e_set_operation_unknown=04013_E_Operation not implemented for sets
+% several binary operations are not defined for sets
+% like div mod ** (also >= <= for now)
+type_w_convert_real_2_comp=04014_W_Automatic type conversion from floating type to COMP which is an integer type
+% An implicit type conversion from a real type to a \var{comp} is
+% encountered. Since \var{comp} is a 64 bit integer type, this may indicate
+% an error.
+type_h_use_div_for_int=04015_H_use DIV instead to get an integer result
+% When hints are on, then an integer division with the '/' operator will
+% procuce this message, because the result will then be of type real
+type_e_strict_var_string_violation=04016_E_string types doesn't match, because of $V+ mode
+% When compiling in \var{\{\$V+\}} mode, the string you pass as a parameter
+% should be of the exact same type as the declared parameter of the procedure.
+type_e_succ_and_pred_enums_with_assign_not_possible=04017_E_succ or pred on enums with assignments not possible
+% When you declared an enumeration type which has assignments in it, as in C,
+% like in the following:
+% \begin{verbatim}
+%   Tenum = (a,b,e:=5);
+% \end{verbatim}
+% you cannot use the \var{Succ} or \var{Pred} functions on them.
+type_e_cant_read_write_type=04018_E_Can't read or write variables of this type
+% You are trying to \var{read} or \var{write} a variable from or to a
+% file of type text, which doesn't support that. Only integer types,
+% reals, pchars and strings can be read from/written to a text file.
+% Booleans can only be written to text files.
+type_e_no_readln_writeln_for_typed_file=04019_E_Can't use readln or writeln on typed file
+% \var{readln} and \var{writeln} are only allowed for text files.
+type_e_no_read_write_for_untyped_file=04020_E_Can't use read or write on untyped file.
+% \var{read} and \var{write} are only allowed for text or typed files.
+type_e_typeconflict_in_set=04021_E_Type conflict between set elements
+% There is at least one set element which is of the wrong type, i.e. not of
+% the set type.
+type_w_maybe_wrong_hi_lo=04022_W_lo/hi(dword/qword) returns the upper/lower word/dword
+% \fpc supports an overloaded version of \var{lo/hi} for \var{longint/dword/int64/qword}
+% which returns the lower/upper word/dword of the argument. TP always uses
+% a 16 bit \var{lo/hi} which returns always bits 0..7 for \var{lo} and the
+% bits 8..15 for \var{hi}. If you want the TP behavior you have
+% to type cast the argument to \var{word/integer}
+type_e_integer_or_real_expr_expected=04023_E_Integer or real expression expected
+% The first argument to \var{str} must a real or integer type.
+type_e_wrong_type_in_array_constructor=04024_E_Wrong type "$1" in array constructor
+% You are trying to use a type in an array constructor which is not
+% allowed.
+type_e_wrong_parameter_type=04025_E_Incompatible type for arg no. $1: Got "$2", expected "$3"
+% You are trying to pass an invalid type for the specified parameter.
+type_e_no_method_and_procedure_not_compatible=04026_E_Method (variable) and Procedure (variable) are not compatible
+% You can't assign a method to a procedure variable or a procedure to a
+% method pointer.
+type_e_wrong_math_argument=04027_E_Illegal constant passed to internal math function
+% The constant argument passed to a ln or sqrt function is out of
+% the definition range of these functions.
+type_e_no_addr_of_constant=04028_E_Can't get the address of constants
+% It is not possible to get the address of a constant, because they
+% aren't stored in memory, you can try making it a typed constant.
+type_e_argument_cant_be_assigned=04029_E_Argument can't be assigned to
+% Only expressions which can be on the left side of an
+% assignment can be passed as call by reference argument
+% Remark: Properties can be only
+% used on the left side of an assignment, but they cannot be used as arguments
+type_e_cannot_local_proc_to_procvar=04030_E_Can't assign local procedure/function to procedure variable
+% It's not allowed to assign a local procedure/function to a
+% procedure variable, because the calling of local procedure/function is
+% different. You can only assign local procedure/function to a void pointer.
+type_e_no_assign_to_addr=04031_E_Can't assign values to an address
+% It is not allowed to assign a value to an address of a variable,constant,
+% procedure or function. You can try compiling with -So if the identifier
+% is a procedure variable.
+type_e_no_assign_to_const=04032_E_Can't assign values to const variable
+% It's not allowed to assign a value to a variable which is declared
+% as a const. This is normally a parameter declared as const, to allow
+% changing the value make the parameter as a value parameter or a var.
+type_e_array_required=04033_E_Array type required
+% If you are accessing a variable using an index '[<x>]' then
+% the type must be an array. In FPC mode also a pointer is allowed.
+type_e_interface_type_expected=04034_E_interface type expected, but got "$1"
+type_w_mixed_signed_unsigned=04035_W_Mixing signed expressions and longwords gives a 64bit result
+% If you divide (or calculate the modulus of) a signed expression by a longword (or vice versa),
+% or if you have overflow and/or range checking turned on and use an arithmetic
+% expression (+, -, *, div, mod) in which both signed numbers and longwords appear,
+% then everything has to be evaluated in 64bit which is slower than normal
+% 32bit arithmetic. You can avoid this by typecasting one operand so it
+% matches the resulttype of the other one.
+type_w_mixed_signed_unsigned2=04036_W_Mixing signed expressions and cardinals here may cause a range check error
+% If you use a binary operator (and, or, xor) and one of
+% the operands is a longword while the other one is a signed expression, then,
+% if range checking is turned on, you may get a range check error because in
+% such a case both operands are converted to longword before the operation is
+% carried out. You can avoid this by typecasting one operand so it
+% matches the resulttype of the other one.
+type_e_typecast_wrong_size_for_assignment=04037_E_Typecast has different size ($1 -> $2) in assignment
+% Type casting to a type with a different size is not allowed when the variable is
+% used for assigning.
+type_e_array_index_enums_with_assign_not_possible=04038_E_enums with assignments can't be used as array index
+% When you declared an enumeration type which has assignments in it, as in C,
+% like in the following:
+% \begin{verbatim}
+%   Tenum = (a,b,e:=5);
+% \end{verbatim}
+% you cannot use it as index of an array.
+type_e_classes_not_related=04039_E_Class or Object types "$1" and "$2" are not related
+%  There is a typecast from one class or object to another while the class/object
+%  are not related. This will probably lead to errors
+type_w_classes_not_related=04040_W_Class types "$1" and "$2" are not related
+%  There is a typecast from one class or object to another while the class/object
+%  are not related. This will probably lead to errors
+type_e_class_or_interface_type_expected=04041_E_Class or interface type expected, but got "$1"
+type_e_type_is_not_completly_defined=04042_E_Type "$1" is not completely defined
+type_w_string_too_long=04043_W_String literal has more characters than short string length
+% The size of the constant string, which is assigned to a shortstring,
+% is longer than the maximum size of the shortstring
+type_w_signed_unsigned_always_false=04044_W_Comparison is always false due to range of values
+% There is a comparison between an unsigned value and a signed constant which is
+% less than zero. Because of type promotion, the statement will always evaluate to
+% false. Exlicitly typecast the constant to the correct range to avoid this problem.
+type_w_signed_unsigned_always_true=04045_W_Comparison is always true due to range of values
+% There is a comparison between an unsigned value and a signed constant which is
+% less than zero. Because of type promotion, the statement will always evaluate to
+% true. Exlicitly typecast the constant to the correct range to avoid this problem.
+type_w_instance_with_abstract=04046_W_Constructing a class "$1" with abstract methods
+% An instance of a class is created which contains non-implemented abstract
+% methods. This will probably lead to a runtime error 211 in the code if that
+% routine is ever called. All abstract methods should be overriden.
+type_h_in_range_check=04047_H_The left operand of the IN operator should be byte sized
+% The left operand of the \var{in} operator is not an ordinal or enumeration which fits
+% within 8-bits, this may lead to range check errors. The  \var{in} operator
+% currently only supports a left operand which fits within a byte. In the case of
+% enumerations, the size of an element of an enumeration can be controlled with
+% the \var{\{\$PACKENUM\}} or \var{\{\$Zn\}} switches.
+type_w_smaller_possible_range_check=04048_W_Type size mismatch, possible loss of data / range check error
+% There is an assignment to a smaller type than the source type. This means that
+% this may cause a range-check error, or may lead to possible loss of data.
+type_h_smaller_possible_range_check=04049_H_Type size mismatch, possible loss of data / range check error
+% There is an assignment to a smaller type than the source type. This means that
+% this may cause a range-check error, or may lead to possible loss of data.
+type_e_cant_take_address_of_abstract_method=04050_E_The address of an abstract method can't be taken
+% An abstract method has no body, so the address of an abstract method can't be taken.
+type_e_operator_not_allowed=04051_E_The operator is not applicable for the operand type
+% You are trying an operator that is not available for the type of the
+% operands
+type_e_constant_expr_expected=04052_E_Constant Expression expected
+% The compiler expects an constant expression, but gets a variable expression.
+type_e_operator_not_supported_for_types=04053_E_Operation "$1" not supported for types "$2" and "$3"
+% The operation is not allowed for the supplied types
+type_e_illegal_type_conversion=04054_E_Illegal type conversion: "$1" to "$2"
+% When doing a type-cast, you must take care that the sizes of the variable and
+% the destination type are the same.
+type_h_pointer_to_longint_conv_not_portable=04055_H_Conversion between ordinals and pointers is not portable
+% If you typecast a pointer to a longint (or vice-versa), this code will not compile
+% on a machine using 64-bit for pointer storage.
+type_w_pointer_to_longint_conv_not_portable=04056_W_Conversion between ordinals and pointers is not portable
+% If you typecast a pointer to a ordinal type of a different size (or vice-versa), this can
+% cause problems. This is a warning to help finding the 32bit specific code where cardinal/longint is used
+% to typecast pointers to ordinals. A solution is to use the ptrint/ptruint types instead.
+type_e_cant_choose_overload_function=04057_E_Can't determine which overloaded function to call
+% You're calling overloaded functions with a parameter that doesn't correspond
+% to any of the declared function parameter lists. e.g. when you have declared
+% a function with parameters \var{word} and \var{longint}, and then you call
+% it with a parameter which is of type \var{integer}.
+type_e_illegal_count_var=04058_E_Illegal counter variable
+% The type of a \var{for} loop variable must be an ordinal type.
+% Loop variables cannot be reals or strings.
+% \end{description}
+#
+# Symtable
+#
+# 05055 is the last used one
+#
+% \section{Symbol handling}
+% This section lists all the messages that concern the handling of symbols.
+% This means all things that have to do with procedure and variable names.
+% \begin{description}
+sym_e_id_not_found=05000_E_Identifier not found "$1"
+% The compiler doesn't know this symbol. Usually happens when you misspel
+% the name of a variable or procedure, or when you forgot to declare a
+% variable.
+sym_f_internal_error_in_symtablestack=05001_F_Internal Error in SymTableStack()
+% An internal error occurred in the compiler; If you encounter such an error,
+% please contact the developers and try to provide  an exact description of
+% the circumstances in which the error occurs.
+sym_e_duplicate_id=05002_E_Duplicate identifier "$1"
+% The identifier was already declared in the current scope.
+sym_h_duplicate_id_where=05003_H_Identifier already defined in $1 at line $2
+% The identifier was already declared in a previous scope.
+sym_e_unknown_id=05004_E_Unknown identifier "$1"
+% The identifier encountered has not been declared, or is used outside the
+% scope where it is defined.
+sym_e_forward_not_resolved=05005_E_Forward declaration not solved "$1"
+% This can happen in two cases:
+% \begin{itemize}
+% \item This happens when you declare a function (in the \var{interface} part, or
+% with a \var{forward} directive, but do not implement it.
+% \item You reference a type which isn't declared in the current \var{type}
+% block.
+% \end{itemize}
+sym_e_error_in_type_def=05007_E_Error in type definition
+% There is an error in your definition of a new array type:
+% \item One of the range delimiters in an array declaration is erroneous.
+% For example, \var{Array [1..1.25]} will trigger this error.
+sym_e_forward_type_not_resolved=05009_E_Forward type not resolved "$1"
+% A symbol was forward defined, but no declaration was encountered.
+sym_e_only_static_in_static=05010_E_Only static variables can be used in static methods or outside methods
+% A static method of an object can only access static variables.
+sym_f_type_must_be_rec_or_class=05012_F_record or class type expected
+% The variable or expression isn't of the type \var{record} or \var{class}.
+sym_e_no_instance_of_abstract_object=05013_E_Instances of classes or objects with an abstract method are not allowed
+% You are trying to generate an instance of a class which has an abstract
+% method that wasn't overridden.
+sym_w_label_not_defined=05014_W_Label not defined "$1"
+% A label was declared, but not defined.
+sym_e_label_used_and_not_defined=05015_E_Label used but not defined "$1"
+% A label was declared and used, but not defined.
+sym_e_ill_label_decl=05016_E_Illegal label declaration
+% This error should never happen; it occurs if a label is defined outside a
+% procedure or function.
+sym_e_goto_and_label_not_supported=05017_E_GOTO and LABEL are not supported (use switch -Sg)
+% You must compile a program which has \var{label}s and \var{goto} statements
+% with the  \var{-Sg} switch. By default, \var{label} and \var{goto} aren't
+% supported.
+sym_e_label_not_found=05018_E_Label not found
+% A \var{goto label} was encountered, but the label isn't declared.
+sym_e_id_is_no_label_id=05019_E_identifier isn't a label
+% The identifier specified after the \var{goto} isn't of type label.
+sym_e_label_already_defined=05020_E_label already defined
+% You are defining a label twice. You can define a label only once.
+sym_e_ill_type_decl_set=05021_E_illegal type declaration of set elements
+% The declaration of a set contains an invalid type definition.
+sym_e_class_forward_not_resolved=05022_E_Forward class definition not resolved "$1"
+% You declared a class, but you did not implement it.
+sym_n_unit_not_used=05023_H_Unit "$1" not used in $2
+% The unit referenced in the \var{uses} clause is not used.
+sym_h_para_identifier_not_used=05024_H_Parameter "$1" not used
+% The identifier was declared (locally or globally) but
+% was not used (locally or globally).
+sym_n_local_identifier_not_used=05025_N_Local variable "$1" not used
+% You have declared, but not used a variable in a procedure or function
+% implementation.
+sym_h_para_identifier_only_set=05026_H_Value parameter "$1" is assigned but never used
+% The identifier was declared (locally or globally)
+% set but not used (locally or globally).
+sym_n_local_identifier_only_set=05027_N_Local variable "$1" is assigned but never used
+% The variable in a procedure or function
+% implementation is declared, set but never used.
+sym_h_local_symbol_not_used=05028_H_Local $1 "$2" is not used
+% A local symbol is never used.
+sym_n_private_identifier_not_used=05029_N_Private field "$1.$2" is never used
+sym_n_private_identifier_only_set=05030_N_Private field "$1.$2" is assigned but never used
+sym_n_private_method_not_used=05031_N_Private method "$1.$2" never used
+sym_e_set_expected=05032_E_Set type expected
+% The variable or expression is not of type \var{set}. This happens in an
+% \var{in} statement.
+sym_w_function_result_not_set=05033_W_Function result does not seem to be set
+% You can get this warning if the compiler thinks that a function return
+% value is not set. This will not be displayed for assembler procedures,
+% or procedures that contain assembler blocks.
+sym_w_wrong_C_pack=05034_W_Type "$1" is not aligned correctly in current record for C
+% Arrays with sizes not multiples of 4 will be wrongly aligned
+% for C structures.
+sym_e_illegal_field=05035_E_Unknown record field identifier "$1"
+% The field doesn't exist in the record/object definition.
+sym_w_uninitialized_local_variable=05036_W_Local variable "$1" does not seem to be initialized
+% This message is displayed if the compiler thinks that a variable will
+% be used (i.e. appears in the right-hand-side of an expression) when it
+% was not initialized first (i.e. appeared in the left-hand side of an
+% assigment)
+sym_w_uninitialized_variable=05037_W_Variable "$1" does not seem to be initialized
+% This message is displayed if the compiler thinks that a variable will
+% be used (i.e. appears in the right-hand-side of an expression) when it
+% was not initialized first (i.e. appeared in the left-hand side of an
+% assigment)
+sym_e_id_no_member=05038_E_identifier idents no member "$1"
+% This error is generated when an identifier of a record,
+% field, or method is accessed while it is not defined.
+sym_h_param_list=05039_H_Found declaration: $1
+% You get this when you use the \var{-vh} switch. In case an overloaded
+% procedure is not found, then all candidate overloaded procedures are
+% listed, with their parameter lists.
+sym_e_segment_too_large=05040_E_Data element too large
+% You get this when you declare a data element whose size exceeds the
+% prescribed limit (2 Gb on 80386+/68020+ processors)
+sym_e_no_matching_implementation_found=05042_E_No matching implementation for interface method "$1" found
+% There was no matching method found which could implement the interface
+% method. Check argument types and result type of the methods.
+sym_w_deprecated_symbol=05043_W_Symbol "$1" is deprecated
+% This means that a symbol (a variable, routine, etc...) which is
+% declared as \var{deprecated} is used. Deprecated symbols may no longer
+% be available in newer versions of the unit / library. Usage of this symbol
+% should be avoided as much as possible.
+sym_w_non_portable_symbol=05044_W_Symbol "$1" is not portable
+% This means that a symbol (a variable, routine, etc...) which is
+% declared as \var{platform} is used. This symbol's value, usage
+% and availability is platform specific and should not be used
+% if the source code must be portable.
+sym_w_non_implemented_symbol=05055_W_Symbol "$1" is not implemented
+% This means that a symbol (a variable, routine, etc...) which is
+% declared as \var{unimplemented} is used. This symbol is defined,
+% but is not yet implemented on this specific platform.
+sym_e_cant_create_unique_type=05056_E_Can't create unique type from this type
+% Only simple types like ordinal, float and string types are supported when
+% redefining a type with \var{type newtype = type oldtype;}.
+sym_h_uninitialized_local_variable=05057_H_Local variable "$1" does not seem to be initialized
+% This message is displayed if the compiler thinks that a variable will
+% be used (i.e. appears in the right-hand-side of an expression) when it
+% was not initialized first (i.e. appeared in the left-hand side of an
+% assigment)
+sym_h_uninitialized_variable=05058_H_Variable "$1" does not seem to be initialized
+% This message is displayed if the compiler thinks that a variable will
+% be used (i.e. appears in the right-hand-side of an expression) when it
+% was not initialized first (i.e. appeared in the left-hand side of an
+% assigment)
+% \end{description}
+#
+# Codegenerator
+#
+# 06040 is the last used one
+#
+% \section{Code generator messages}
+% This section lists all messages that can be displayed if the code
+% generator encounters an error condition.
+% \begin{description}
+cg_e_parasize_too_big=06009_E_Parameter list size exceeds 65535 bytes
+% The I386 processor limits the parameter list to 65535 bytes (the \var{RET}
+% instruction causes this)
+cg_e_file_must_call_by_reference=06012_E_File types must be var parameters
+% You cannot specify files as value parameters, i.e. they must always be
+% declared \var{var} parameters.
+cg_e_cant_use_far_pointer_there=06013_E_The use of a far pointer isn't allowed there
+% Free Pascal doesn't support far pointers, so you cannot take the address of
+% an expression which has a far reference as a result. The \var{mem} construct
+% has a far reference as a result, so the following code will produce this
+% error:
+% \begin{verbatim}
+% var p : pointer;
+% ...
+% p:=@mem[a000:000];
+% \end{verbatim}
+cg_e_dont_call_exported_direct=06015_E_EXPORT declared functions can't be called
+% No longer in use.
+cg_w_member_cd_call_from_method=06016_W_Possible illegal call of constructor or destructor
+% The compiler detected that a constructor or destructor is called within a
+% a method. This will probably lead to problems, since constructors / destructors
+% require parameters on entry.
+cg_n_inefficient_code=06017_N_Inefficient code
+% Your statement seems dubious to the compiler.
+cg_w_unreachable_code=06018_W_unreachable code
+% You specified a construct which will never be executed. Example:
+% \begin{verbatim}
+% while false do
+%   begin
+%   {.. code ...}
+%   end;
+% \end{verbatim}
+cg_e_cant_call_abstract_method=06020_E_Abstract methods can't be called directly
+% You cannot call an abstract method directy, instead you must call a
+% overriding child method, because an abstract method isn't implemented.
+cg_d_register_weight=06027_DL_Register $1 weight $2 $3
+% Debugging message. Shown when the compiler considers a variable for
+% keeping in the registers.
+cg_d_stackframe_omited=06029_DL_Stack frame is omitted
+% Some procedure/functions do not need a complete stack-frame, so it is omitted.
+% This message will be displayed when the {-vd} switch is used.
+cg_e_unable_inline_object_methods=06031_E_Object or class methods can't be inline.
+% You cannot have inlined object methods.
+cg_e_unable_inline_procvar=06032_E_Procvar calls cannot be inline.
+% A procedure with a procedural variable call cannot be inlined.
+cg_e_no_code_for_inline_stored=06033_E_No code for inline procedure stored
+% The compiler couldn't store code for the inline procedure.
+cg_e_can_access_element_zero=06035_E_Element zero of an ansi/wide- or longstring can't be accessed, use (set)length instead
+% You should use \var{setlength} to set the length of an ansi/wide/longstring
+% and \var{length} to get the length of such a string types
+cg_e_cannot_call_cons_dest_inside_with=06037_E_Constructors or destructors can not be called inside a 'with' clause
+% Inside a \var{with} clause you cannot call a constructor or destructor for the
+% object you have in the \var{with} clause.
+cg_e_cannot_call_message_direct=06038_E_Cannot call message handler methods directly
+% A message method handler method cannot be called directly if it contains an
+% explicit self argument
+cg_e_goto_inout_of_exception_block=06039_E_Jump in or outside of an exception block
+% It is not allowed to jump in or outside of an exception block like \var{try..finally..end;}:
+% \begin{verbatim}
+% label 1;
+%
+% ...
+%
+% try
+%    if not(final) then
+%      goto 1;   // this line will cause an error
+% finally
+%   ...
+% end;
+% 1:
+% ...
+% \end{verbatim}
+cg_e_control_flow_outside_finally=06040_E_Control flow statements aren't allowed in a finally block
+% It isn't allowed to use the control flow statements \var{break},
+% \var{continue} and \var{exit}
+% inside a finally statement. The following example shows the problem:
+% \begin{verbatim}
+% ...
+%   try
+%      p;
+%   finally
+%      ...
+%      exit;  // This exit ISN'T allowed
+%   end;
+% ...
+%
+% \end{verbatim}
+% If the procedure \var{p} raises an exception the finally block is
+% executed. If the execution reaches the exit, it's unclear what to do:
+% exiting the procedure or searching for another exception handler
+cg_w_parasize_too_big=06041_W_Parameters size exceeds limit for certain cpu's
+% This indicates that you are declaring more than 64K of parameters, which
+% might not be supported on other processor targets.
+cg_w_localsize_too_big=06042_W_Local variable size exceed limit for certain cpu's
+% This indicates that you are declaring more than 32K of lcoal variables, which
+% might not be supported on other processor targets.
+cg_e_localsize_too_big=06043_E_Local variables size exceeds supported limit
+% This indicates that you are declaring more than 32K of lcoal variables, which
+% is not supported by this processor.
+cg_e_break_not_allowed=06044_E_BREAK not allowed
+% You're trying to use \var{break} outside a loop construction.
+cg_e_continue_not_allowed=06045_E_CONTINUE not allowed
+% You're trying to use \var{continue} outside a loop construction.
+% \end{description}
+# EndOfTeX
+
+#
+# Assembler reader
+#
+# 07097 is the last used one
+#
+asmr_d_start_reading=07000_DL_Starting $1 styled assembler parsing
+% This informs you that an assembler block is being parsed
+asmr_d_finish_reading=07001_DL_Finished $1 styled assembler parsing
+% This informs you that an assembler block has finished.
+asmr_e_none_label_contain_at=07002_E_Non-label pattern contains @
+% A identifier which isn't a label can't contain a @.
+asmr_e_building_record_offset=07004_E_Error building record offset
+% There has an error occured while building the offset of a record/object
+% structure, this can happend when there is no field specified at all or
+% an unknown field identifier is used.
+asmr_e_offset_without_identifier=07005_E_OFFSET used without identifier
+% You can only use OFFSET with an identifier. Other syntaxes aren't
+% supported
+asmr_e_type_without_identifier=07006_E_TYPE used without identifier
+% You can only use TYPE with an identifier. Other syntaxes aren't
+% supported
+asmr_e_no_local_or_para_allowed=07007_E_Cannot use local variable or parameters here
+% You can't use a local variable or parameter here, mostly because the
+% addressing of locals and parameters is done using the frame pointer register so the
+% address can't be obtained directly.
+asmr_e_need_offset=07008_E_need to use OFFSET here
+% You need to use OFFSET <id> here to get the address of the identifier.
+asmr_e_need_dollar=07009_E_need to use $ here
+% You need to use $<id> here to get the address of the identifier.
+asmr_e_cant_have_multiple_relocatable_symbols=07010_E_Cannot use multiple relocatable symbols
+% You can't have more than one relocatable symbol (variable/typed constant)
+% in one argument.
+asmr_e_only_add_relocatable_symbol=07011_E_Relocatable symbol can only be added
+% Relocatable symbols (variable/typed constant) can't be used with other
+% operators. Only addition is allowed.
+asmr_e_invalid_constant_expression=07012_E_Invalid constant expression
+% There is an error in the constant expression.
+asmr_e_relocatable_symbol_not_allowed=07013_E_Relocatable symbol is not allowed
+% You can't use a relocatable symbol (variable/typed constant) here.
+asmr_e_invalid_reference_syntax=07014_E_Invalid reference syntax
+% There is an error in the reference.
+asmr_e_local_para_unreachable=07015_E_You can not reach $1 from that code
+% You can not read directly the value of local or para
+% of a higher level in assembler code (except for
+% local assembler code without parameter nor locals).
+asmr_e_local_label_not_allowed_as_ref=07016_E_Local symbols/labels aren't allowed as references
+% You can't use local symbols/labels as references
+asmr_e_wrong_base_index=07017_E_Invalid base and index register usage
+% There is an error with the base and index register, they are
+% probably incorrect
+asmr_w_possible_object_field_bug=07018_W_Possible error in object field handling
+% Fields of objects or classes can be reached directly in normal or objfpc
+% modes but TP and Delphi modes treat the field name as a simple offset.
+asmr_e_wrong_scale_factor=07019_E_Wrong scale factor specified
+% The scale factor given is wrong, only 1,2,4 and 8 are allowed
+asmr_e_multiple_index=07020_E_Multiple index register usage
+% You are trying to use more than one index register
+asmr_e_invalid_operand_type=07021_E_Invalid operand type
+% The operand type doesn't match with the opcode used
+asmr_e_invalid_string_as_opcode_operand=07022_E_Invalid string as opcode operand: $1
+% The string specified as operand is not correct with this opcode
+asmr_w_CODE_and_DATA_not_supported=07023_W_@CODE and @DATA not supported
+% @CODE and @DATA are unsupported and are ignored.
+asmr_e_null_label_ref_not_allowed=07024_E_Null label references are not allowed
+asmr_e_expr_zero_divide=07025_E_Divide by zero in asm evaluator
+% There is a division by zero in a constant expression
+asmr_e_expr_illegal=07026_E_Illegal expression
+% There is an illegal expression in a constant expression
+asmr_e_escape_seq_ignored=07027_E_escape sequence ignored: $1
+% There is a C-styled string, but the escape sequence in the string
+% is unknown, and is therefore ignored
+asmr_e_invalid_symbol_ref=07028_E_Invalid symbol reference
+asmr_w_fwait_emu_prob=07029_W_Fwait can cause emulation problems with emu387
+asmr_w_fadd_to_faddp=07030_W_$1 without operand translated into $1P
+asmr_w_enter_not_supported_by_linux=07031_W_ENTER instruction is not supported by Linux kernel
+% ENTER instruction can generate a stack page fault that is not
+% caught correctly by the i386 Linux page handler.
+asmr_w_calling_overload_func=07032_W_Calling an overload function in assembler
+% There is a call to an overloaded method in the assembler block,
+% this might be the sign there is a problem
+asmr_e_unsupported_symbol_type=07033_E_Unsupported symbol type for operand
+asmr_e_constant_out_of_bounds=07034_E_Constant value out of bounds
+asmr_e_error_converting_decimal=07035_E_Error converting decimal $1
+% A constant decimal value does not have the correct syntax
+asmr_e_error_converting_octal=07036_E_Error converting octal $1
+% A constant octal value does not have the correct syntax
+asmr_e_error_converting_binary=07037_E_Error converting binary $1
+% A constant binary value does not have the correct syntax
+asmr_e_error_converting_hexadecimal=07038_E_Error converting hexadecimal $1
+% A constant hexadecimal value does not have the correct syntax
+asmr_h_direct_global_to_mangled=07039_H_$1 translated to $2
+asmr_w_direct_global_is_overloaded_func=07040_W_$1 is associated to an overloaded function
+asmr_e_cannot_use_SELF_outside_a_method=07041_E_Cannot use SELF outside a method
+% There is a reference to the \var{self} symbol while it is not
+% allowed. \var{self} can only be referenced inside methods
+asmr_e_cannot_use_OLDEBP_outside_nested_procedure=07042_E_Cannot use OLDEBP outside a nested procedure
+% There is a reference to the \var{oldebp} symbol while it is not
+% allowed. \var{oldebp} can only be referenced inside nested routines
+asmr_e_void_function=07043_W_Procedures can't return any value in asm code
+% Trying to return a value while in a procedure. A procedure
+% does not have any return value
+asmr_e_SEG_not_supported=07044_E_SEG not supported
+asmr_e_size_suffix_and_dest_dont_match=07045_E_Size suffix and destination or source size do not match
+% The register size and the opcode size suffix don't match. This is
+% probably an error in the assembler statement
+asmr_w_size_suffix_and_dest_dont_match=07046_W_Size suffix and destination or source size do not match
+% The register size and the opcode size suffix don't match. This is
+% probably an error in the assembler statement
+asmr_e_syntax_error=07047_E_Assembler syntax error
+% There is an assembler syntax error
+asmr_e_invalid_opcode_and_operand=07048_E_Invalid combination of opcode and operands
+% The opcode cannot be used with this type of operand
+asmr_e_syn_operand=07049_E_Assembler syntax error in operand
+asmr_e_syn_constant=07050_E_Assembler syntax error in constant
+asmr_e_invalid_string_expression=07051_E_Invalid String expression
+asmr_w_const32bit_for_address=07052_W_constant with symbol $1 for address which is not on a pointer
+% A constant expression represents an address which does not fit
+% into a pointer. The address is probably incorrect
+asmr_e_unknown_opcode=07053_E_Unrecognized opcode $1
+% This opcode is not known
+asmr_e_invalid_or_missing_opcode=07054_E_Invalid or missing opcode
+asmr_e_invalid_prefix_and_opcode=07055_E_Invalid combination of prefix and opcode: $1
+asmr_e_invalid_override_and_opcode=07056_E_Invalid combination of override and opcode: $1
+asmr_e_too_many_operands=07057_E_Too many operands on line
+% There are too many operands for this opcode. Check your
+% assembler syntax
+asmr_w_near_ignored=07058_W_NEAR ignored
+asmr_w_far_ignored=07059_W_FAR ignored
+asmr_e_dup_local_sym=07060_E_Duplicate local symbol $1
+asmr_e_unknown_local_sym=07061_E_Undefined local symbol $1
+asmr_e_unknown_label_identifier=07062_E_Unknown label identifier $1
+asmr_e_invalid_register=07063_E_Invalid register name
+% There is an unknown register name used as operand.
+asmr_e_invalid_fpu_register=07064_E_Invalid floating point register name
+% There is an unknown register name used as operand.
+asmr_w_modulo_not_supported=07066_W_Modulo not supported
+asmr_e_invalid_float_const=07067_E_Invalid floating point constant $1
+% The floating point constant declared in an assembler block is
+% invalid.
+asmr_e_invalid_float_expr=07068_E_Invalid floating point expression
+% The floating point expression declared in an assembler block is
+% invalid.
+asmr_e_wrong_sym_type=07069_E_Wrong symbol type
+asmr_e_cannot_index_relative_var=07070_E_Cannot index a local var or parameter with a register
+% Trying to index using a base register a symbol which is already relative
+% to a register. This is not possible, and will probably lead to crashes.
+asmr_e_invalid_seg_override=07071_E_Invalid segment override expression
+asmr_w_id_supposed_external=07072_W_Identifier $1 supposed external
+% There is a reference to an undefined symbol. This will not result
+% in an error, since the symbol might be external, but may cause
+% problems at link time if the symbol is not defined anywhere.
+asmr_e_string_not_allowed_as_const=07073_E_Strings not allowed as constants
+% Character strings are not allowed as constants.
+asmr_e_no_var_type_specified=07074_No type of variable specified
+% The syntax expects a type idenfitifer after the dot, but
+% none was found.
+asmr_w_assembler_code_not_returned_to_text=07075_E_assembler code not returned to text section
+% There was a directive in the assembler block to change sections,
+% but there is a missing return to the text section at the end
+% of the assembler block. This might cause errors during link time.
+asmr_e_not_directive_or_local_symbol=07076_E_Not a directive or local symbol $1
+% This symbol is unknown.
+asmr_w_using_defined_as_local=07077_E_Using a defined name as a local label
+asmr_e_dollar_without_identifier=07078_E_Dollar token is used without an identifier
+% A constant expression has an identifier which does not start with
+% the $ symbol.
+asmr_w_32bit_const_for_address=07079_W_32bit constant created for address
+% A constant was used as an address. This is probably an error,
+% since using absolute addresses will probably not work.
+asmr_n_align_is_target_specific=07080_N_.align is target specific, use .balign or .p2align
+% Using the .align directive is platform specific, and its meaning will vary
+% from one platform to another.
+asmr_e_cannot_access_field_directly_for_parameters=07081_E_Can't access fields directly for parameters
+% You should load the parameter first into a register and then access the
+% fields using that register.
+asmr_e_cannot_access_object_field_directly=07082_E_Can't access fields of objects/classes directly
+% You should load the self pointer first into a register and then access the
+% fields using the register as base. By default the self pointer is available
+% in the esi register on i386.
+asmr_e_unable_to_determine_reference_size=07083_E_No size specified and unable to determine the size of the operands
+% You should specify explicitly a size for the reference, because
+% the compiler is unable to determine what size (byte,word,dword,etc.) it
+% should use for the reference.
+asmr_e_cannot_use_RESULT_here=07084_E_Cannot use RESULT in this function
+% Some functions which return complex types cannot use the \var{result}
+% keyword.
+asmr_w_adding_explicit_args_fXX=07086_W_"$1" without operand translated into "$1 %st,%st(1)"
+asmr_w_adding_explicit_first_arg_fXX=07087_W_"$1 %st(n)" translated into "$1 %st,%st(n)"
+asmr_w_adding_explicit_second_arg_fXX=07088_W_"$1 %st(n)" translated into "$1 %st(n),%st"
+asmr_e_invalid_char_smaller=07089_E_Char < not allowed here
+% The shift operator requires the << characters. Only one
+% of those characters was found.
+asmr_e_invalid_char_greater=07090_E_Char > not allowed here
+% The shift operator requires the >> characters. Only one
+% of those characters was found.
+asmr_w_align_not_supported=07093_W_ALIGN not supported
+asmr_e_no_inc_and_dec_together=07094_E_Inc and Dec cannot be together
+% Trying to use an increment and a decrement within the same
+% opcode on the 680x0. This is impossible.
+asmr_e_invalid_reg_list_in_movem=07095_E_Invalid reglist for movem
+% Trying to use the \var{movem} opcode with invalid registers
+% to save or restore.
+asmr_e_invalid_reg_list_for_opcode=07096_E_Reglist invalid for opcode
+asmr_e_higher_cpu_mode_required=07097_E_Higher cpu mode required ($1)
+% Trying to use an instruction which is not supported in the current
+% cpu mode. Use a higher cpu generation to be able to use this
+% opcode in your assembler block
+asmr_w_unable_to_determine_reference_size_using_dword=07098_W_No size specified and unable to determine the size of the operands, using DWORD as default
+% You should specify explicitly a size for the reference, because
+% the compiler is unable to determine what size (byte,word,dword,etc.) it
+% should use for the reference. This warning is only used in Delphi mode where
+% it falls back to use DWORD as default.
+asmr_e_illegal_shifterop_syntax=07099_E_Syntax error while trying to parse a shifter operand
+% ARM only; ARM assembler supports a so called shifter operand. The used syntax isn't
+% a valid shifter operand. Example for an operation with shifter operand:
+% \begin{verbatim}
+% asm
+%   orr     r2,r2,r2,lsl #8
+% end;
+% \end{verbatim}
+#
+# Assembler/binary writers
+#
+# 08018 is the last used one
+#
+asmw_f_too_many_asm_files=08000_F_Too many assembler files
+% With smartlinking enabled, there are too many assembler
+% files generated. Disable smartlinking.
+asmw_f_assembler_output_not_supported=08001_F_Selected assembler output not supported
+asmw_f_comp_not_supported=08002_F_Comp not supported
+asmw_f_direct_not_supported=08003_F_Direct not support for binary writers
+% Direct assembler mode is not supported for binary writers.
+asmw_e_alloc_data_only_in_bss=08004_E_Allocating of data is only allowed in bss section
+asmw_f_no_binary_writer_selected=08005_F_No binary writer selected
+asmw_e_opcode_not_in_table=08006_E_Asm: Opcode $1 not in table
+asmw_e_invalid_opcode_and_operands=08007_E_Asm: $1 invalid combination of opcode and operands
+asmw_e_16bit_not_supported=08008_E_Asm: 16 Bit references not supported
+asmw_e_invalid_effective_address=08009_E_Asm: Invalid effective address
+asmw_e_immediate_or_reference_expected=08010_E_Asm: Immediate or reference expected
+asmw_e_value_exceeds_bounds=08011_E_Asm: $1 value exceeds bounds $2
+asmw_e_short_jmp_out_of_range=08012_E_Asm: Short jump is out of range $1
+asmw_e_undefined_label=08013_E_Asm: Undefined label $1
+asmw_e_comp_not_supported=08014_E_Asm: Comp type not supported for this target
+asmw_e_extended_not_supported=08015_E_Asm: Extended type not supported for this target
+asmw_e_duplicate_label=08016_E_Asm: Duplicate label $1
+asmw_e_redefined_label=08017_E_Asm: Redefined label $1
+asmw_e_first_defined_label=08018_E_Asm: First defined here
+asmw_e_invalid_register=08019_E_Asm: Invalid register $1
+
+#
+# Executing linker/assembler
+#
+# 09034 is the last used one
+#
+# BeginOfTeX
+%
+% \section{Errors of assembling/linking stage}
+% This section lists errors that occur when the compiler is processing the
+% command line or handling the configuration files.
+% \begin{description}
+exec_w_source_os_redefined=09000_W_Source operating system redefined
+exec_i_assembling_pipe=09001_I_Assembling (pipe) $1
+exec_d_cant_create_asmfile=09002_E_Can't create assember file: $1
+% The mentioned file can't be created. Check if you have got
+% access permissions to create this file
+exec_e_cant_create_objectfile=09003_E_Can't create object file: $1
+% The mentioned file can't be created. Check if you've
+% got access permissions to create this file
+exec_e_cant_create_archivefile=09004_E_Can't create archive file: $1
+% The mentioned file can't be created. Check if you've
+% access permissions to create this file
+exec_e_assembler_not_found=09005_E_Assembler $1 not found, switching to external assembling
+exec_t_using_assembler=09006_T_Using assembler: $1
+exec_e_error_while_assembling=09007_E_Error while assembling exitcode $1
+% There was an error while assembling the file using an external assembler.
+% Consult the documentation of the assembler tool to find out more information
+% on this error.
+exec_e_cant_call_assembler=09008_E_Can't call the assembler, error $1 switching to external assembling
+exec_i_assembling=09009_I_Assembling $1
+exec_i_assembling_smart=09010_I_Assembling with smartlinking $1
+exec_w_objfile_not_found=09011_W_Object $1 not found, Linking may fail !
+% One of the object file is missing, and linking will probably fail.
+% Check your paths.
+exec_w_libfile_not_found=09012_W_Library $1 not found, Linking may fail !
+% One of the library file is missing, and linking will probably fail.
+% Check your paths.
+exec_e_error_while_linking=09013_E_Error while linking
+% Generic error while linking.
+exec_e_cant_call_linker=09014_E_Can't call the linker, switching to external linking
+exec_i_linking=09015_I_Linking $1
+exec_e_util_not_found=09016_E_Util $1 not found, switching to external linking
+exec_t_using_util=09017_T_Using util $1
+exec_e_exe_not_supported=09018_E_Creation of Executables not supported
+exec_e_dll_not_supported=09019_E_Creation of Dynamic/Shared Libraries not supported
+exec_i_closing_script=09020_I_Closing script $1
+exec_e_res_not_found=09021_E_resource compiler not found, switching to external mode
+exec_i_compilingresource=09022_I_Compiling resource $1
+exec_t_unit_not_static_linkable_switch_to_smart=09023_T_unit $1 can't be statically linked, switching to smart linking
+exec_t_unit_not_smart_linkable_switch_to_static=09024_T_unit $1 can't be smart linked, switching to static linking
+exec_t_unit_not_shared_linkable_switch_to_static=09025_T_unit $1 can't be shared linked, switching to static linking
+exec_e_unit_not_smart_or_static_linkable=09026_E_unit $1 can't be smart or static linked
+exec_e_unit_not_shared_or_static_linkable=09027_E_unit $1 can't be shared or static linked
+%\end{description}
+# EndOfTeX
+
+#
+# Executable information
+#
+execinfo_f_cant_process_executable=09028_F_Can't post process executable $1
+execinfo_f_cant_open_executable=09029_F_Can't open executable $1
+execinfo_x_codesize=09030_X_Size of Code: $1 bytes
+execinfo_x_initdatasize=09031_X_Size of initialized data: $1 bytes
+execinfo_x_uninitdatasize=09032_X_Size of uninitialized data: $1 bytes
+execinfo_x_stackreserve=09033_X_Stack space reserved: $1 bytes
+execinfo_x_stackcommit=09034_X_Stack space commited: $1 bytes
+
+#
+# Unit loading
+#
+# 10041 is the last used one
+#
+# BeginOfTeX
+% \section{Unit loading messages.}
+% This section lists all messages that can occur when the compiler is
+% loading a unit from disk into memory. Many of these messages are
+% informational messages.
+% \begin{description}
+unit_t_unitsearch=10000_T_Unitsearch: $1
+% When you use the \var{-vt}, the compiler tells you where it tries to find
+% unit files.
+unit_t_ppu_loading=10001_T_PPU Loading $1
+% When the \var{-vt} switch is used, the compiler tells you
+% what units it loads.
+unit_u_ppu_name=10002_U_PPU Name: $1
+% When you use the \var{-vu} flag, the unit name is shown.
+unit_u_ppu_flags=10003_U_PPU Flags: $1
+% When you use the \var{-vu} flag, the unit flags are shown.
+unit_u_ppu_crc=10004_U_PPU Crc: $1
+% When you use the \var{-vu} flag, the unit CRC check is shown.
+unit_u_ppu_time=10005_U_PPU Time: $1
+% When you use the \var{-vu} flag, the time the unit was compiled is shown.
+unit_u_ppu_file_too_short=10006_U_PPU File too short
+% The ppufile is too short, not all declarations are present.
+unit_u_ppu_invalid_header=10007_U_PPU Invalid Header (no PPU at the begin)
+% A unit file contains as the first three bytes the ascii codes of \var{PPU}
+unit_u_ppu_invalid_version=10008_U_PPU Invalid Version $1
+% This unit file was compiled with a different version of the compiler, and
+% cannot be read.
+unit_u_ppu_invalid_processor=10009_U_PPU is compiled for another processor
+% This unit file was compiled for a different processor type, and
+% cannot be read
+unit_u_ppu_invalid_target=10010_U_PPU is compiled for an other target
+% This unit file was compiled for a different target, and
+% cannot be read
+unit_u_ppu_source=10011_U_PPU Source: $1
+% When you use the \var{-vu} flag, the unit CRC check is shown.
+unit_u_ppu_write=10012_U_Writing $1
+% When you specify the \var{-vu} switch, the compiler will tell you where it
+% writes the unit file.
+unit_f_ppu_cannot_write=10013_F_Can't Write PPU-File
+% An error occurred when writing the unit file.
+unit_f_ppu_read_error=10014_F_Error reading PPU-File
+% This means that the unit file was corrupted, and contains invalid
+% information. Recompilation will be necessary.
+unit_f_ppu_read_unexpected_end=10015_F_unexpected end of PPU-File
+% Unexpected end of file. This may mean that the PPU file is
+% corrupted.
+unit_f_ppu_invalid_entry=10016_F_Invalid PPU-File entry: $1
+% The unit the compiler is trying to read is corrupted, or generated with a
+% newer version of the compiler.
+unit_f_ppu_dbx_count_problem=10017_F_PPU Dbx count problem
+% There is an inconsistency in the debugging information of the unit.
+unit_e_illegal_unit_name=10018_E_Illegal unit name: $1
+% The name of the unit does not match the file name.
+unit_f_too_much_units=10019_F_Too much units
+% \fpc has a limit of 1024 units in a program. You can change this behavior
+% by changing the \var{maxunits} constant in the \file{fmodule.pas} file of the
+% compiler, and recompiling the compiler.
+unit_f_circular_unit_reference=10020_F_Circular unit reference between $1 and $2
+% Two units are using each other in the interface part. This is only allowed
+% in the \var{implementation} part. At least one unit must contain the other one
+% in the \var{implementation} section.
+unit_f_cant_compile_unit=10021_F_Can't compile unit $1, no sources available
+% A unit was found that needs to be recompiled, but no sources are
+% available.
+unit_f_cant_find_ppu=10022_F_Can't find unit $1
+% You tried to use a unit of which the PPU file isn't found by the
+% compiler. Check your configuration file for the unit paths
+unit_w_unit_name_error=10023_W_Unit $1 was not found but $2 exists
+unit_f_unit_name_error=10024_F_Unit $1 searched but $2 found
+% Dos truncation of 8 letters for unit PPU files
+% may lead to problems when unit name is longer than 8 letters.
+unit_w_switch_us_missed=10025_W_Compiling the system unit requires the -Us switch
+% When recompiling the system unit (it needs special treatment), the
+% \var{-Us} must be specified.
+unit_f_errors_in_unit=10026_F_There were $1 errors compiling module, stopping
+% When the compiler encounters a fatal error or too many errors in a module
+% then it stops with this message.
+unit_u_load_unit=10027_U_Load from $1 ($2) unit $3
+% When you use the \var{-vu} flag, which unit is loaded from which unit is
+% shown.
+unit_u_recompile_crc_change=10028_U_Recompiling $1, checksum changed for $2
+unit_u_recompile_source_found_alone=10029_U_Recompiling $1, source found only
+% When you use the \var{-vu} flag, these messages tell you why the current
+% unit is recompiled.
+unit_u_recompile_staticlib_is_older=10030_U_Recompiling unit, static lib is older than ppufile
+% When you use the \var{-vu} flag, the compiler warns if the static library
+% of the unit are older than the unit file itself.
+unit_u_recompile_sharedlib_is_older=10031_U_Recompiling unit, shared lib is older than ppufile
+% When you use the \var{-vu} flag, the compiler warns if the shared library
+% of the unit are older than the unit file itself.
+unit_u_recompile_obj_and_asm_older=10032_U_Recompiling unit, obj and asm are older than ppufile
+% When you use the \var{-vu} flag, the compiler warns if the assembler or
+% object file of the unit are older than the unit file itself.
+unit_u_recompile_obj_older_than_asm=10033_U_Recompiling unit, obj is older than asm
+% When you use the \var{-vu} flag, the compiler warns if the assembler
+% file of the unit is older than the object file of the unit.
+unit_u_parsing_interface=10034_U_Parsing interface of $1
+% When you use the \var{-vu} flag, the compiler warns that it starts
+% parsing the interface part of the unit
+unit_u_parsing_implementation=10035_U_Parsing implementation of $1
+% When you use the \var{-vu} flag, the compiler warns that it starts
+% parsing the implementation part of the unit
+unit_u_second_load_unit=10036_U_Second load for unit $1
+% When you use the \var{-vu} flag, the compiler warns that it starts
+% recompiling a unit for the second time. This can happend with interdepend
+% units.
+unit_u_check_time=10037_U_PPU Check file $1 time $2
+% When you use the \var{-vu} flag, the compiler show the filename and
+% date and time of the file which a recompile depends on
+### The following two error msgs is currently disabled.
+#unit_h_cond_not_set_in_last_compile=10038_H_Conditional $1 was not set at startup in last compilation of $2
+#% when recompilation of an unit is required the compiler will check that
+#% the same conditionals are set for the recompiliation. The compiler has
+#% found a conditional that currently is defined, but was not used the last
+#% time the unit was compiled.
+#unit_h_cond_set_in_last_compile=10039_H_Conditional $1 was set at startup in last compilation of $2
+#% when recompilation of an unit is required the compiler will check that
+#% the same conditionals are set for the recompiliation. The compiler has
+#% found a conditional that was used the last time the unit was compiled, but
+#% the conditional is currently not defined.
+unit_w_cant_compile_unit_with_changed_incfile=10040_W_Can't recompile unit $1, but found modifed include files
+% A unit was found to have modified include files, but
+% some source files were not found, so recompilation is impossible.
+unit_h_source_modified=10041_H_File $1 is newer than Release PPU file $2
+% A modified source file for a unit was found that was compiled with the
+% release flag (-Ur). The unit will not implicitly be recompiled because
+% this release flag is set.
+unit_u_ppu_invalid_fpumode=10042_U_Using a unit which was not compiled with correct FPU mode
+% Trying to compile code while using units which were not compiled with
+% the same floating point format mode. Either all code should be compiled
+% with FPU emulation on, or with FPU emulation off.
+unit_u_loading_interface_units=10043_U_Loading interface units from $1
+% When you use the \var{-vu} flag, the compiler warns that it starts
+% loading the units defined in the interface part of the unit.
+unit_u_loading_implementation_units=10044_U_Loading implementation units from $1
+% When you use the \var{-vu} flag, the compiler warns that it starts
+% loading the units defined in the implementation part of the unit.
+unit_u_interface_crc_changed=10045_U_Interface CRC changed for unit $1
+% When you use the \var{-vu} flag, the compiler warns that it the
+% CRC calculated for the interface has been changed after the implementation
+% has been parsed.
+unit_u_implementation_crc_changed=10046_U_Implementation CRC changed for unit $1
+% When you use the \var{-vu} flag, the compiler warns that it the
+% CRC calculated has been changed after the implementation
+% has been parsed.
+unit_u_finished_compiling=10047_U_Finished compiling unit $1
+% When you use the \var{-vu} flag, the compiler warns that it
+% has finished compiling the unit.
+unit_u_add_depend_to=10048_U_Add dependency of $1 to $2
+% When you use the \var{-vu} flag, the compiler warns that it
+% has added a dependency between the two units.
+unit_u_no_reload_is_caller=10049_U_No reload, is caller: $1
+% When you use the \var{-vu} flag, the compiler warns that it
+% has will not reload the unit because it is the unit that wants
+% to load this unit
+unit_u_no_reload_in_second_compile=10050_U_No reload, already in second compile: $1
+% When you use the \var{-vu} flag, the compiler warns that it
+% has will not reload the unit because it is already in a second recompile
+unit_u_flag_for_reload=10051_U_Flag for reload: $1
+% When you use the \var{-vu} flag, the compiler warns that it
+% has to reload the unit
+unit_u_forced_reload=10052_U_Forced reloading
+% When you use the \var{-vu} flag, the compiler warns that it
+% has is reloading the unit because it was required
+unit_u_previous_state=10053_U_Previous state of $1: $2
+% When you use the \var{-vu} flag, the compiler shows the
+% previous state of the unit
+unit_u_second_compile_unit=10054_U_Already compiling $1, setting second compile
+% When you use the \var{-vu} flag, the compiler warns that it starts
+% recompiling a unit for the second time. This can happend with interdepend
+% units.
+unit_u_loading_unit=10055_U_Loading unit $1
+% When you use the \var{-vu} flag, the compiler warns that it starts
+% loading the unit.
+unit_u_finished_loading_unit=10056_U_Finished loading unit $1
+% When you use the \var{-vu} flag, the compiler warns that it finished
+% loading the unit.
+unit_u_registering_new_unit=10057_U_Registering new unit $1
+% When you use the \var{-vu} flag, the compiler warns that it has
+% found a new unit and registers it in the internal lists.
+unit_u_reresolving_unit=10058_U_Re-resolving unit $1
+% When you use the \var{-vu} flag, the compiler warns that it
+% has to recalculate the internal data of the unit
+unit_u_skipping_reresolving_unit=10059_U_Skipping re-resolving unit $1, still loading used units
+% When you use the \var{-vu} flag, the compiler warns that it
+% skips to recalculate the internal data of the unit because there
+% is no data to recalculate
+% \end{description}
+# EndOfTeX
+
+#
+#  Options
+#
+# 11039 is the last used one
+#
+option_usage=11000_$1 [options] <inputfile> [options]
+# BeginOfTeX
+%
+% \section{Command-line handling errors}
+% This section lists errors that occur when the compiler is processing the
+% command line or handling the configuration files.
+% \begin{description}
+option_only_one_source_support=11001_W_Only one source file supported
+% You can specify only one source file on the command line. The first
+% one will be compiled, others will be ignored. This may indicate that
+% you forgot a \var{'-'} sign.
+option_def_only_for_os2=11002_W_DEF file can be created only for OS/2
+% This option can only be specified when you're compiling for OS/2
+option_no_nested_response_file=11003_E_nested response files are not supported
+% you cannot nest response files with the \var{@file} command-line option.
+option_no_source_found=11004_F_No source file name in command line
+% The compiler expects a source file name on the command line.
+option_no_option_found=11005_N_No option inside $1 config file
+% The compiler didn't find any option in that config file.
+option_illegal_para=11006_E_Illegal parameter: $1
+% You specified an unknown option.
+option_help_pages_para=11007_H_-? writes help pages
+% When an unknown option is given, this message is diplayed.
+option_too_many_cfg_files=11008_F_Too many config files nested
+% You can only nest up to 16 config files.
+option_unable_open_file=11009_F_Unable to open file $1
+% The option file cannot be found.
+option_reading_further_from=11010_D_Reading further options from $1
+% Displayed when you have notes turned on, and the compiler switches
+% to another options file.
+option_target_is_already_set=11011_W_Target is already set to: $1
+% Displayed if more than one \var{-T} option is specified.
+option_no_shared_lib_under_dos=11012_W_Shared libs not supported on DOS platform, reverting to static
+% If you specify \var{-CD} for the \dos platform, this message is displayed.
+% The compiler supports only static libraries under \dos
+option_too_many_ifdef=11013_F_too many IF(N)DEFs
+% the \var{\#IF(N)DEF} statements in the options file are not balanced with
+% the \var{\#ENDIF} statements.
+option_too_many_endif=11014_F_too many ENDIFs
+% the \var{\#IF(N)DEF} statements in the options file are not balanced with
+% the \var{\#ENDIF} statements.
+option_too_less_endif=11015_F_open conditional at the end of the file
+% the \var{\#IF(N)DEF} statements in the options file are not balanced with
+% the \var{\#ENDIF} statements.
+option_no_debug_support=11016_W_Debug information generation is not supported by this executable
+% It is possible to have a compiler executable that doesn't support
+% the generation of debugging info. If you use such an executable with the
+% \var{-g} switch, this warning will be displayed.
+option_no_debug_support_recompile_fpc=11017_H_Try recompiling with -dGDB
+% It is possible to have a compiler executable that doesn't support
+% the generation of debugging info. If you use such an executable with the
+% \var{-g} switch, this warning will be displayed.
+option_obsolete_switch=11018_E_You are using the obsolete switch $1
+% this warns you when you use a switch that is not needed/supported anymore.
+% It is recommended that you remove the switch to overcome problems in the
+% future, when the switch meaning may change.
+option_obsolete_switch_use_new=11019_E_You are using the obsolete switch $1, please use $2
+% this warns you when you use a switch that is not supported anymore. You
+% must now use the second switch instead.
+% It is recommended that you change the switch to overcome problems in the
+% future, when the switch meaning may change.
+option_switch_bin_to_src_assembler=11020_N_Switching assembler to default source writing assembler
+% this notifies you that the assembler has been changed because you used the
+% -a switch which can't be used with a binary assembler writer.
+option_incompatible_asm=11021_W_Assembler output selected "$1" is not compatible with "$2"
+option_asm_forced=11022_W_"$1" assembler use forced
+% The assembler output selected can not generate
+% object files with the correct format. Therefore, the
+% default assembler for this target is used instead.
+option_using_file=11026_T_Reading options from file $1
+% Options are also read from this file
+option_using_env=11027_T_Reading options from environment $1
+% Options are also read from this environment string
+option_handling_option=11028_D_Handling option "$1"
+% Debug info that an option is found and will be handled
+option_help_press_enter=11029__*** press enter ***
+option_start_reading_configfile=11030_H_Start of reading config file $1
+% Starting of config file parsing.
+option_end_reading_configfile=11031_H_End of reading config file $1
+% End of config file parsing.
+option_interpreting_option=11032_D_interpreting option "$1"
+option_interpreting_firstpass_option=11036_D_interpreting firstpass option "$1"
+option_interpreting_file_option=11033_D_interpreting file option "$1"
+option_read_config_file=11034_D_Reading config file "$1"
+option_found_file=11035_D_found source file name "$1"
+% Additional infos about options, displayed
+% when you have debug option turned on.
+option_code_page_not_available=11039_E_Unknown code page
+%\end{description}
+# EndOfTeX
+
+#
+# Logo (option -l)
+#
+option_logo=11023_[
+Free Pascal Compiler version $FPCVERSION [$FPCDATE] for $FPCCPU
+Copyright (c) 1993-2005 by Florian Klaempfl
+]
+
+#
+# Info (option -i)
+#
+option_info=11024_[
+Free Pascal Compiler version $FPCVERSION
+
+Compiler Date      : $FPCDATE
+Compiler CPU Target: $FPCCPU
+
+Supported targets:
+  $OSTARGETS
+
+Supported CPU instruction sets:
+  $INSTRUCTIONSETS
+
+Supported FPU instruction sets:
+  $FPUINSTRUCTIONSETS
+
+This program comes under the GNU General Public Licence
+For more information read COPYING.FPC
+
+Report bugs,suggestions etc to:
+                 [email protected]
+]
+
+#
+# Help pages (option -? and -h)
+#
+# The first character on the line indicates who will display this
+# line, the current possibilities are :
+#    * = every target
+#    3 = 80x86 targets
+#    6 = 680x0 targets
+#    e = in extended debug mode only
+#    P = PowerPC targets
+#    S = Sparc targets
+#    V = Virtual machine targets
+# The second character also indicates who will display this line,
+# (if the above character was TRUE) the current possibilities are :
+#    * = everyone
+#    g = with GDB info supported by the compiler
+#    O = OS/2
+#    L = UNIX systems
+#  The third character represents the indentation level.
+#
+option_help_pages=11025_[
+**0*_put + after a boolean switch option to enable it, - to disable it
+**1a_the compiler doesn't delete the generated assembler file
+**2al_list sourcecode lines in assembler file
+**2an_list node info in assembler file
+*L2ap_use pipes instead of creating temporary assembler files
+**2ar_list register allocation/release info in assembler file
+**2at_list temp allocation/release info in assembler file
+**1A<x>_output format:
+**2Adefault_use default assembler
+3*2Aas_assemble using GNU AS
+3*2Anasmcoff_coff (Go32v2) file using Nasm
+3*2Anasmelf_elf32 (Linux) file using Nasm
+3*2Anasmwin32_Win32 object file using Nasm
+3*2Anasmwdosx_Win32/WDOSX object file using Nasm
+3*2Awasm_obj file using Wasm (Watcom)
+3*2Anasmobj_obj file using Nasm
+3*2Amasm_obj file using Masm (Microsoft)
+3*2Atasm_obj file using Tasm (Borland)
+3*2Aelf_elf32 (Linux) using internal writer
+3*2Acoff_coff (Go32v2) using internal writer
+3*2Apecoff_pecoff (Win32) using internal writer
+4*2Aas_assemble using GNU AS
+6*2Aas_Unix o-file using GNU AS
+6*2Agas_GNU Motorola assembler
+6*2Amit_MIT Syntax (old GAS)
+6*2Amot_Standard Motorola assembler
+A*2Aas_assemble using GNU AS
+P*2Aas_assemble using GNU AS
+S*2Aas_assemble using GNU AS
+**1b_generate browser info
+**2bl_generate local symbol info
+**1B_build all modules
+**1C<x>_code generation options:
+**2Cc<x>_set default calling convention to <x>
+**2CD_create also dynamic library (not supported)
+**2Ce_Compilation with emulated floating point opcodes
+**2Cf<x>_Select fpu instruction set to use, see fpc -i for possible values
+**2Cg_Generate PIC code
+**2Ch<n>_<n> bytes heap (between 1023 and 67107840)
+**2Ci_IO-checking
+**2Cn_omit linking stage
+**2Co_check overflow of integer operations
+**2Cp<x>_select instruction set, see fpc -i for possible values
+**2Cr_range checking
+**2CR_verify object method call validity
+**2Cs<n>_set stack size to <n>
+**2Ct_stack checking
+**2CX_create also smartlinked library
+**1d<x>_defines the symbol <x>
+**1D_generate a DEF file
+**2Dd<x>_set description to <x>
+**2Dv<x>_set DLL version to <x>
+*O2Dw_PM application
+**1e<x>_set path to executable
+**1E_same as -Cn
+**1F<x>_set file names and paths:
+**2Fa<x>[,y]_for a program load first units <x> and [y] before uses is parsed
+**2Fc<x>_sets input codepage to <x>
+**2FD<x>_sets the directory where to search for compiler utilities
+**2Fe<x>_redirect error output to <x>
+**2FE<x>_set exe/unit output path to <x>
+**2Fi<x>_adds <x> to include path
+**2Fl<x>_adds <x> to library path
+**2FL<x>_uses <x> as dynamic linker
+**2Fo<x>_adds <x> to object path
+**2Fr<x>_load error message file <x>
+**2Fu<x>_adds <x> to unit path
+**2FU<x>_set unit output path to <x>, overrides -FE
+*g1g_generate debugger information:
+*g2gc_generate checks for pointers
+*g2gd_use dbx
+*g2gg_use gsym
+*g2gh_use heap trace unit (for memory leak debugging)
+*g2gl_use line info unit to show more info for backtraces
+*g2gv_generates programs tracable with valgrind
+*g2gw_generate dwarf debugging info
+**1i_information
+**2iD_return compiler date
+**2iV_return compiler version
+**2iSO_return compiler OS
+**2iSP_return compiler processor
+**2iTO_return target OS
+**2iTP_return target processor
+**1I<x>_adds <x> to include path
+**1k<x>_Pass <x> to the linker
+**1l_write logo
+**1M<x>_set language mode to <x>
+**2Mfpc_free pascal dialect (default)
+**2Mobjfpc_switch some Delphi 2 extensions on
+**2Mdelphi_tries to be Delphi compatible
+**2Mtp_tries to be TP/BP 7.0 compatible
+**2Mgpc_tries to be gpc compatible
+**2Mmacpas_tries to be compatible to the macintosh pascal dialects
+**1n_don't read the default config file
+**1o<x>_change the name of the executable produced to <x>
+**1O<x>_optimizations:
+3*2Og_generate smaller code
+3*2OG_generate faster code (default)
+**2Or_keep certain variables in registers
+3*2Ou_enable uncertain optimizations (see docs)
+3*2O1_level 1 optimizations (quick optimizations)
+3*2O2_level 2 optimizations (-O1 + slower optimizations)
+3*2O3_level 3 optimizations (-O2 repeatedly, max 5 times)
+3*2Op<x>_target processor:
+3*3Op1_set target processor to 386/486
+3*3Op2_set target processor to Pentium/PentiumMMX (tm)
+3*3Op3_set target processor to PPro/PII/c6x86/K6 (tm)
+6*2Og_generate smaller code
+6*2OG_generate faster code (default)
+6*2Ox_optimize maximum (still BUGGY!!!)
+6*2O0_set target processor to a MC68000
+6*2O2_set target processor to a MC68020+ (default)
+**1pg_generate profile code for gprof (defines FPC_PROFILE)
+**1R<x>_assembler reading style:
+**2Rdefault_use default assembler
+3*2Ratt_read AT&T style assembler
+3*2Rintel_read Intel style assembler
+6*2RMOT_read motorola style assembler
+**1S<x>_syntax options:
+**2S2_same as -Mobjfpc
+**2Sc_supports operators like C (*=,+=,/= and -=)
+**2Sa_include assertion code.
+**2Sd_same as -Mdelphi
+**2Se<x>_error options. <x> is a combination of the following:
+**3*_<n> : compiler stops after the <n> errors (default is 1)
+**3*_w : compiler stops also after warnings
+**3*_n : compiler stops also after notes
+**3*_h : compiler stops also after hints
+**2Sg_allow LABEL and GOTO
+**2Sh_Use ansistrings
+**2Si_support C++ styled INLINE
+**2SI<x>_set interface style to <x>
+**3SIcom_COM compatible interface (default)
+**3SIcorba_CORBA compatible interface
+**2Sm_support macros like C (global)
+**2So_same as -Mtp
+**2Sp_same as -Mgpc
+**2Ss_constructor name must be init (destructor must be done)
+**2St_allow static keyword in objects
+**1s_don't call assembler and linker
+**2sh_Generate script to link on host
+**2st_Generate script to link on target
+**2sr_Skip register allocation phase (use with -alr)
+**1T<x>_Target operating system:
+3*2Temx_OS/2 via EMX (including EMX/RSX extender)
+3*2Tfreebsd_FreeBSD
+3*2Tgo32v2_Version 2 of DJ Delorie DOS extender
+3*2Tlinux_Linux
+3*2Tnetbsd_NetBSD
+3*2Tnetware_Novell Netware Module (clib)
+3*2Tnetwlibc_Novell Netware Module (libc)
+3*2Topenbsd_OpenBSD
+3*2Tos2_OS/2 / eComStation
+3*2Tsunos_SunOS/Solaris
+3*2Twatcom_Watcom compatible DOS extender
+3*2Twdosx_WDOSX DOS extender
+3*2Twin32_Windows 32 Bit
+4*2Tlinux_Linux
+6*2Tamiga_Commodore Amiga
+6*2Tatari_Atari ST/STe/TT
+6*2Tlinux_Linux-68k
+6*2Tmacos_Macintosh m68k (not supported)
+6*2Tpalmos_PalmOS
+A*2Tlinux_Linux
+P*2Tdarwin_Darwin and MacOS X on PowerPC
+P*2Tlinux_Linux on PowerPC
+P*2Tmacos_MacOS (classic) on PowerPC
+P*2Tmorphos_MorphOS
+S*2Tlinux_Linux
+**1u<x>_undefines the symbol <x>
+**1U_unit options:
+**2Un_don't check the unit name
+**2Ur_generate release unit files
+**2Us_compile a system unit
+**1v<x>_Be verbose. <x> is a combination of the following letters:
+**2*_e : Show errors (default)       0 : Show nothing (except errors)
+**2*_w : Show warnings               u : Show unit info
+**2*_n : Show notes                  t : Show tried/used files
+**2*_h : Show hints                  c : Show conditionals
+**2*_i : Show general info           d : Show debug info
+**2*_l : Show linenumbers            r : Rhide/GCC compatibility mode
+**2*_a : Show everything             x : Executable info (Win32 only)
+**2*_v : write fpcdebug.txt with     p : Write tree.log with parse tree
+**2*_    lots of debugging info
+3*1W<x>_Win32-like target options
+3*2WB<x>_Set Image base to Hexadecimal <x> value
+3*2WC_Specify console type application
+3*2WD_Use DEFFILE to export functions of DLL or EXE
+3*2WF_Specify full-screen type application (OS/2 only)
+3*2WG_Specify graphic type application
+3*2WN_Do not generate relocation code (necessary for debugging)
+3*2WR_Generate relocation code
+P*2WC_Specify console type application (MacOS only)
+P*2WG_Specify graphic type application (MacOS only)
+P*2WT_Specify tool type application (MPW tool, MacOS only)
+**1X_executable options:
+**2Xc_pass --shared to the linker (Unix only)
+**2Xd_don't use standard library search path (needed for cross compile)
+**2XD_try to link units dynamic          (defines FPC_LINK_DYNAMIC)
+**2XP<x>_prepend the binutils names with the prefix <x>
+**2Xr<x>_set library search path to <x> (needed for cross compile)
+**2Xs_strip all symbols from executable
+**2XS_try to link units static (default) (defines FPC_LINK_STATIC)
+**2Xt_link with static libraries (-static is passed to linker)
+**2XX_try to link units smart            (defines FPC_LINK_SMART)
+**1*_
+**1?_shows this help
+**1h_shows this help without waiting
+]
+
+#
+# The End...

+ 5 - 2
compiler/msgidx.inc

@@ -84,6 +84,9 @@ const
   scan_e_wrong_switch_toggle_default=02066;
   scan_e_mode_switch_not_allowed=02067;
   scan_e_error_macro_undefined=02068;
+  scan_e_utf8_bigger_than_65535=02069;
+  scan_e_utf8_malformed=02070;
+  scan_c_switching_to_utf8=02071;
   parser_e_syntax_error=03000;
   parser_e_dont_nest_interrupt=03004;
   parser_w_proc_directive_ignored=03005;
@@ -653,9 +656,9 @@ const
   option_info=11024;
   option_help_pages=11025;
 
-  MsgTxtSize = 38455;
+  MsgTxtSize = 38582;
 
   MsgIdxMax : array[1..20] of longint=(
-    19,69,214,59,59,46,100,20,35,60,
+    19,72,214,59,59,46,100,20,35,60,
     40,1,1,1,1,1,1,1,1,1
   );

+ 321 - 317
compiler/msgtxt.inc

@@ -92,624 +92,627 @@ const msgtxt : array[0..000160,1..240] of char=(
   '02066_E_Wrong switch toggle, use ON/OFF/DEFAULT or +/-/*'#000+
   '02067_E_Mode switch "$1" not allowed here'#000+
   '02068_E_Compile time variable "$1" is not defined.'#000+
-  '030','00_E_Parser - Syntax Error'#000+
+  '020','69_E_UTF-8 code greater than 65535 found'#000+
+  '02070_E_Malformed UTF-8 string'#000+
+  '02071_C_UTF-8 signature found, using UTF-8 encoding'#000+
+  '03000_E_Parser - Syntax Error'#000+
   '03004_E_INTERRUPT procedure can'#039't be nested'#000+
   '03005_W_Procedure type "$1" ignored'#000+
-  '03006_E_Not all declarations of "$1" are declared with OVERLOAD'#000+
+  '03006_','E_Not all declarations of "$1" are declared with OVERLOAD'#000+
   '03008_E_Duplicate exported function name "$1"'#000+
-  '03009_E_Duplicate expor','ted function index $1'#000+
+  '03009_E_Duplicate exported function index $1'#000+
   '03010_E_Invalid index for exported function'#000+
-  '03011_W_Relocatable DLL or executable $1 debug info does not work, dis'+
-  'abled.'#000+
+  '03011_W_Relocatable DLL or executable $1 debug ','info does not work, d'+
+  'isabled.'#000+
   '03012_W_To allow debugging for win32 code you need to disable relocati'+
   'on with -WN option'#000+
-  '03013_E_','Constructor name must be INIT'#000+
+  '03013_E_Constructor name must be INIT'#000+
   '03014_E_Destructor name must be DONE'#000+
   '03016_E_Procedure type INLINE not supported'#000+
-  '03018_W_Constructor should be public'#000+
+  '03','018_W_Constructor should be public'#000+
   '03019_W_Destructor should be public'#000+
   '03020_N_Class should have one destructor only'#000+
-  '03021_E_Lo','cal class definitions are not allowed'#000+
+  '03021_E_Local class definitions are not allowed'#000+
   '03022_F_Anonym class definitions are not allowed'#000+
-  '03023_N_The object "$1" has no VMT'#000+
+  '03023_N_The object "$1" ha','s no VMT'#000+
   '03024_E_Illegal parameter list'#000+
   '03026_E_Wrong number of parameters specified'#000+
-  '03027_E_overloaded identifier "$1" isn'#039't a',' function'#000+
+  '03027_E_overloaded identifier "$1" isn'#039't a function'#000+
   '03028_E_overloaded functions have the same parameter list'#000+
-  '03029_E_function header doesn'#039't match the forward declaration "$1"'+
-  #000+
+  '03029_E_function header doesn'#039't match the for','ward declaration "$'+
+  '1"'#000+
   '03030_E_function header "$1" doesn'#039't match forward : var name chan'+
   'ges $2 => $3'#000+
-  '03031_N_Values in enumerat','ion types have to be ascending'#000+
+  '03031_N_Values in enumeration types have to be ascending'#000+
   '03033_E_With can not be used for variables in a different segment'#000+
-  '03034_E_function nesting > 31'#000+
+  '03034_E_function',' nesting > 31'#000+
   '03035_E_range check error while evaluating constants'#000+
   '03036_W_range check error while evaluating constants'#000+
-  '03037_E','_duplicate case label'#000+
+  '03037_E_duplicate case label'#000+
   '03038_E_Upper bound of case range is less than lower bound'#000+
-  '03039_E_typed constants of classes are not allowed'#000+
+  '03039_E_typed constants of class','es are not allowed'#000+
   '03040_E_functions variables of overloaded functions are not allowed'#000+
-  '03041_E_string length must be a value fr','om 1 to 255'#000+
+  '03041_E_string length must be a value from 1 to 255'#000+
   '03042_W_use extended syntax of NEW and DISPOSE for instances of object'+
   's'#000+
-  '03043_W_use of NEW or DISPOSE for untyped pointers is meaningless'#000+
+  '03043_W_use of NEW or DISPOSE',' for untyped pointers is meaningless'#000+
   '03044_E_use of NEW or DISPOSE is not possible for untyped pointers'#000+
-  '03045_E_class identifie','r expected'#000+
+  '03045_E_class identifier expected'#000+
   '03046_E_type identifier not allowed here'#000+
   '03047_E_method identifier expected'#000+
-  '03048_E_function header doesn'#039't match any method of this class "$1'+
-  '"'#000+
+  '03048_E_function header do','esn'#039't match any method of this class "'+
+  '$1"'#000+
   '03049_DL_procedure/function $1'#000+
   '03050_E_Illegal floating point constant'#000+
-  '03051_E_FAIL c','an be used in constructors only'#000+
+  '03051_E_FAIL can be used in constructors only'#000+
   '03052_E_Destructors can'#039't have parameters'#000+
-  '03053_E_Only class methods can be referred with class references'#000+
+  '03053_E_Only class methods can be refer','red with class references'#000+
   '03054_E_Only class methods can be accessed in class methods'#000+
-  '03055_E_Constant and CASE types do not ma','tch'#000+
+  '03055_E_Constant and CASE types do not match'#000+
   '03056_E_The symbol can'#039't be exported from a library'#000+
   '03057_W_An inherited method is hidden by "$1"'#000+
-  '03058_E_There is no method in an ancestor class to be overridden: "$1"'+
-  #000+
+  '03058_E_The','re is no method in an ancestor class to be overridden: "$'+
+  '1"'#000+
   '03059_E_No member is provided to access property'#000+
-  '03060_W_Stored pro','rperty directive is not yet implemented'#000+
+  '03060_W_Stored prorperty directive is not yet implemented'#000+
   '03061_E_Illegal symbol for property access'#000+
-  '03062_E_Cannot access a protected field of an object here'#000+
+  '03062_E_Cannot access a protec','ted field of an object here'#000+
   '03063_E_Cannot access a private field of an object here'#000+
-  '03066_E_overridden methods must have the sa','me return type: "$2" is o'+
-  'verriden by "$1" which has another return type'#000+
-  '03067_E_EXPORT declared functions can'#039't be nested'#000+
+  '03066_E_overridden methods must have the same return type: "$2" is ove'+
+  'rriden by "$1" which has another return type'#000+
+  '03067_E_EXPORT declared functions can'#039't b','e nested'#000+
   '03068_E_methods can'#039't be EXPORTed'#000+
   '03069_E_call by var parameters have to match exactly: Got "$1" expecte'+
   'd "$2"'#000+
-  '03070_E','_Class isn'#039't a parent class of the current class'#000+
+  '03070_E_Class isn'#039't a parent class of the current class'#000+
   '03071_E_SELF is only allowed in methods'#000+
-  '03072_E_methods can be only in other methods called direct with type i'+
-  'dentifier of the class'#000+
+  '03072_E_methods can be o','nly in other methods called direct with type'+
+  ' identifier of the class'#000+
   '03073_E_Illegal use of '#039':'#039#000+
-  '03074_E_range check error in se','t constructor or duplicate set elemen'+
-  't'#000+
+  '03074_E_range check error in set constructor or duplicate set element'#000+
   '03075_E_Pointer to object expected'#000+
-  '03076_E_Expression must be constructor call'#000+
+  '03076_E_Expression must be constructor ','call'#000+
   '03077_E_Expression must be destructor call'#000+
   '03078_E_Illegal order of record elements'#000+
-  '03079_E_Expression type must be class ','or record type'#000+
+  '03079_E_Expression type must be class or record type'#000+
   '03080_E_Procedures can'#039't return a value'#000+
   '03081_E_constructors and destructors must be methods'#000+
-  '03082_E_Operator is not overloaded'#000+
+  '03082','_E_Operator is not overloaded'#000+
   '03083_E_Impossible to overload assignment for equal types'#000+
   '03084_E_Impossible operator overload'#000+
-  '03','085_E_Re-raise isn'#039't possible there'#000+
+  '03085_E_Re-raise isn'#039't possible there'#000+
   '03086_E_The extended syntax of new or dispose isn'#039't allowed for a '+
   'class'#000+
-  '03088_E_Procedure overloading is switched off'#000+
+  '03088','_E_Procedure overloading is switched off'#000+
   '03089_E_It is not possible to overload this operator (overload = inste'+
   'ad)'#000+
-  '03090_E_Comp','arative operator must return a boolean value'#000+
+  '03090_E_Comparative operator must return a boolean value'#000+
   '03091_E_Only virtual methods can be abstract'#000+
-  '03092_F_Use of unsupported feature!'#000+
+  '03092_F_Use of unsuppor','ted feature!'#000+
   '03093_E_The mix of different kind of objects (class, object, interface'+
   ', etc) isn'#039't allowed'#000+
-  '03094_W_Unknown procedu','re directive had to be ignored: "$1"'#000+
+  '03094_W_Unknown procedure directive had to be ignored: "$1"'#000+
   '03095_E_absolute can only be associated to one variable'#000+
-  '03096_E_absolute can only be associated with a var or const'#000+
+  '03096_E_absolute can',' only be associated with a var or const'#000+
   '03097_E_Only one variable can be initialized'#000+
-  '03098_E_Abstract methods shouldn'#039't have an','y definition (with fun'+
-  'ction body)'#000+
+  '03098_E_Abstract methods shouldn'#039't have any definition (with funct'+
+  'ion body)'#000+
   '03099_E_This overloaded function can'#039't be local (must be exported)'+
   #000+
-  '03100_W_Virtual methods are used without a constructor in "$1"'#000+
+  '03100_W_Virt','ual methods are used without a constructor in "$1"'#000+
   '03101_CL_Macro defined: $1'#000+
   '03102_CL_Macro undefined: $1'#000+
-  '03103_CL_Macro $1 se','t to $2'#000+
+  '03103_CL_Macro $1 set to $2'#000+
   '03104_I_Compiling $1'#000+
   '03105_UL_Parsing interface of unit $1'#000+
   '03106_UL_Parsing implementation of $1'#000+
-  '03107_DL_Compiling $1 for the second time'#000+
+  '03107_DL','_Compiling $1 for the second time'#000+
   '03109_E_No property found to override'#000+
   '03110_E_Only one default property is allowed'#000+
-  '03111_E_Th','e default property must be an array property'#000+
-  '03112_E_Virtual constructors are only supported in class object model'#000+
+  '03111_E_The default property must be an array property'#000+
+  '03112_E_Virtual constructors are only supported in class object mode','l'+
+  #000+
   '03113_E_No default property available'#000+
   '03114_E_The class can'#039't have a published section, use the {$M+} sw'+
   'itch'#000+
-  '03115_E_Forward ','declaration of class "$1" must be resolved here to u'+
-  'se the class as ancestor'#000+
-  '03116_E_Local operators not supported'#000+
+  '03115_E_Forward declaration of class "$1" must be resolved here to use'+
+  ' the class as ancestor'#000+
+  '03116_E_Local operators not supporte','d'#000+
   '03117_E_Procedure directive "$1" not allowed in interface section'#000+
-  '03118_E_Procedure directive "$1" not allowed in implementat','ion secti'+
-  'on'#000+
+  '03118_E_Procedure directive "$1" not allowed in implementation section'+
+  #000+
   '03119_E_Procedure directive "$1" not allowed in procvar declaration'#000+
-  '03120_E_Function is already declared Public/Forward "$1"'#000+
+  '03120_E_Function is already decla','red Public/Forward "$1"'#000+
   '03121_E_Can'#039't use both EXPORT and EXTERNAL'#000+
-  '03123_W_"$1" not yet supported inside inline procedure/funct','ion'#000+
+  '03123_W_"$1" not yet supported inside inline procedure/function'#000+
   '03124_W_Inlining disabled'#000+
   '03125_I_Writing Browser log $1'#000+
   '03126_H_may be pointer dereference is missing'#000+
-  '03127_F_Selected assembler reader not supported'#000+
+  '03127_','F_Selected assembler reader not supported'#000+
   '03128_E_Procedure directive "$1" has conflicts with other directives'#000+
-  '03129_E_Calling ','convention doesn'#039't match forward'#000+
+  '03129_E_Calling convention doesn'#039't match forward'#000+
   '03131_E_Property can'#039't have a default value'#000+
-  '03132_E_The default value of a property must be constant'#000+
+  '03132_E_The default value of a prope','rty must be constant'#000+
   '03133_E_Symbol can'#039't be published, can be only a class'#000+
   '03134_E_That kind of property can'#039't be published'#000+
-  '03','136_E_An import name is required'#000+
+  '03136_E_An import name is required'#000+
   '03138_E_Division by zero'#000+
   '03139_E_Invalid floating point operation'#000+
-  '03140_E_Upper bound of range is less than lower bound'#000+
+  '03140_E_Upper ','bound of range is less than lower bound'#000+
   '03141_W_string "$1" is longer than "$2"'#000+
-  '03142_E_string length is larger than array of c','har length'#000+
+  '03142_E_string length is larger than array of char length'#000+
   '03143_E_Illegal expression after message directive'#000+
-  '03144_E_Message handlers can take only one call by ref. parameter'#000+
+  '03144_E_Message handlers can take only one call by ','ref. parameter'#000+
   '03145_E_Duplicate message label: "$1"'#000+
   '03146_E_Self can only be an explicit parameter in methods which are me'+
-  'ssag','e handlers'#000+
+  'ssage handlers'#000+
   '03147_E_Threadvars can be only static or global'#000+
-  '03148_F_Direct assembler not supported for binary output format'#000+
+  '03148_F_Direct assembler not supported for binary outp','ut format'#000+
   '03149_W_Don'#039't load OBJPAS unit manually, use \{\$mode objfpc\} or '+
   '\{\$mode delphi\} instead'#000+
-  '03150_E_OVERRIDE can'#039't be',' used in objects'#000+
+  '03150_E_OVERRIDE can'#039't be used in objects'#000+
   '03151_E_Data types which require initialization/finalization can'#039't'+
   ' be used in variant records'#000+
-  '03152_E_Resourcestrings can be only static or global'#000+
+  '03','152_E_Resourcestrings can be only static or global'#000+
   '03153_E_Exit with argument can'#039't be used here'#000+
-  '03154_E_The type of the storag','e symbol must be boolean'#000+
+  '03154_E_The type of the storage symbol must be boolean'#000+
   '03155_E_This symbol isn'#039't allowed as storage symbol'#000+
-  '03156_E_Only class which are compiled in $M+ mode can be published'#000+
+  '03156_E_Only class which are compile','d in $M+ mode can be published'#000+
   '03157_E_Procedure directive expected'#000+
-  '03158_E_The value for a property index must be of an ordina','l type'#000+
+  '03158_E_The value for a property index must be of an ordinal type'#000+
   '03159_E_Procedure name to short to be exported'#000+
-  '03160_E_No DEFFILE entry can be generated for unit global vars'#000+
+  '03160_E_No DEFFILE entry can be generated for unit global v','ars'#000+
   '03161_E_Compile without -WD option'#000+
   '03162_F_You need ObjFpc (-S2) or Delphi (-Sd) mode to compile this mod'+
   'ule'#000+
-  '03163_E_Can'#039't ','export with index under $1'#000+
+  '03163_E_Can'#039't export with index under $1'#000+
   '03164_E_Exporting of variables is not supported under $1'#000+
-  '03165_E_Improper GUID syntax'#000+
+  '03165_E_Improper GUID syntax'#000,
   '03168_W_Procedure named "$1" not found that is suitable for implementi'+
   'ng the $2.$3'#000+
   '03169_E_interface identifier expected'#000+
-  '03170_','E_Type "$1" can'#039't be used as array index type'#000+
+  '03170_E_Type "$1" can'#039't be used as array index type'#000+
   '03171_E_Con- and destructors aren'#039't allowed in interfaces'#000+
-  '03172_E_Access specifiers can'#039't be used in INTERFACES'#000+
+  '03172_E_A','ccess specifiers can'#039't be used in INTERFACES'#000+
   '03173_E_An interface can'#039't contain fields'#000+
-  '03174_E_Can'#039't declare local procedure as',' EXTERNAL'#000+
+  '03174_E_Can'#039't declare local procedure as EXTERNAL'#000+
   '03175_W_Some fields coming before "$1" weren'#039't initialized'#000+
-  '03176_E_Some fields coming before "$1" weren'#039't initialized'#000+
+  '03176_E_Some fields coming before "$1" weren',#039't initialized'#000+
   '03177_W_Some fields coming after "$1" weren'#039't initialized'#000+
   '03178_E_VarArgs directive without CDecl and External'#000+
-  '0','3179_E_Self must be a normal (call-by-value) parameter'#000+
+  '03179_E_Self must be a normal (call-by-value) parameter'#000+
   '03180_E_Interface "$1" has no interface identification'#000+
-  '03181_E_Unknown class field or method identifier "$1"'#000+
+  '031','81_E_Unknown class field or method identifier "$1"'#000+
   '03182_W_Overriding calling convention "$1" with "$2"'#000+
-  '03183_E_Typed constants',' of the type "procedure of object" can only b'+
-  'e initialized with NIL'#000+
-  '03184_E_Default value can only be assigned to one parameter'#000+
+  '03183_E_Typed constants of the type "procedure of object" can only be '+
+  'initialized with NIL'#000+
+  '03184_E_Default value can only be assigned to',' one parameter'#000+
   '03185_E_Default parameter required for "$1"'#000+
   '03186_W_Use of unsupported feature!'#000+
-  '03187_H_C arrays are passed by r','eference'#000+
+  '03187_H_C arrays are passed by reference'#000+
   '03188_E_C array of const must be the last argument'#000+
   '03189_H_Type "$1" redefinition'#000+
-  '03190_W_cdecl'#039'ared functions have no high parameter'#000+
+  '03190_W_cdecl'#039'ared fun','ctions have no high parameter'#000+
   '03191_W_cdecl'#039'ared functions do not support open strings'#000+
-  '03192_E_Cannot initialize variables decl','ared as threadvar'#000+
+  '03192_E_Cannot initialize variables declared as threadvar'#000+
   '03193_E_Message directive is only allowed in Classes'#000+
   '03194_E_Procedure or Function expected'#000+
-  '03195_W_Calling convention directive ignored: "$1"'#000+
+  '031','95_W_Calling convention directive ignored: "$1"'#000+
   '03196_E_REINTRODUCE can'#039't be used in objects'#000+
-  '03197_E_Each argument must have it',#039's own location'#000+
+  '03197_E_Each argument must have it'#039's own location'#000+
   '03198_E_Each argument must have an explicit location'#000+
   '03199_E_Unknown argument location'#000+
-  '03200_E_32 Bit-Integer or pointer variable expected'#000+
+  '03200_E_32',' Bit-Integer or pointer variable expected'#000+
   '03201_E_Goto statements aren'#039't allowed between different procedure'+
   's'#000+
-  '03202_F_Procedure',' too complex, it requires too much registers'#000+
+  '03202_F_Procedure too complex, it requires too much registers'#000+
   '03203_E_Illegal expression'#000+
   '03204_E_Invalid integer expression'#000+
-  '03205_E_Illegal qualifier'#000+
+  '03205_','E_Illegal qualifier'#000+
   '03206_E_High range limit < low range limit'#000+
-  '03207_E_Exit'#039's parameter must be the name of the procedure it is',' '+
-  'used in'#000+
+  '03207_E_Exit'#039's parameter must be the name of the procedure it is u'+
+  'sed in'#000+
   '03208_E_Illegal assignment to for-loop variable "$1"'#000+
   '03209_E_Can'#039't declare local variable as EXTERNAL'#000+
-  '03210_E_Procedure is already declared EXTERNAL'#000+
+  '03','210_E_Procedure is already declared EXTERNAL'#000+
   '03211_W_Implicit uses of Variants unit'#000+
-  '03212_E_Class and static methods can'#039't be u','sed in INTERFACES'#000+
+  '03212_E_Class and static methods can'#039't be used in INTERFACES'#000+
   '03213_E_Overflow in arithmetic operation'#000+
   '04000_E_Type mismatch'#000+
-  '04001_E_Incompatible types: got "$1" expected "$2"'#000+
+  '04001_E_Incompatible types: got ','"$1" expected "$2"'#000+
   '04002_E_Type mismatch between "$1" and "$2"'#000+
   '04003_E_Type identifier expected'#000+
-  '04004_E_Variable identifier exp','ected'#000+
+  '04004_E_Variable identifier expected'#000+
   '04005_E_Integer expression expected, but got "$1"'#000+
   '04006_E_Boolean expression expected, but got "$1"'#000+
-  '04007_E_Ordinal expression expected'#000+
+  '04007_E','_Ordinal expression expected'#000+
   '04008_E_pointer type expected, but got "$1"'#000+
   '04009_E_class type expected, but got "$1"'#000+
-  '04011_E_Can'#039,'t evaluate constant expression'#000+
+  '04011_E_Can'#039't evaluate constant expression'#000+
   '04012_E_Set elements are not compatible'#000+
-  '04013_E_Operation not implemented for sets'#000+
+  '04013_E_Operation not implemented for sets',#000+
   '04014_W_Automatic type conversion from floating type to COMP which is '+
   'an integer type'#000+
-  '04015_H_use DIV instead to get an intege','r result'#000+
+  '04015_H_use DIV instead to get an integer result'#000+
   '04016_E_string types doesn'#039't match, because of $V+ mode'#000+
-  '04017_E_succ or pred on enums with assignments not possible'#000+
+  '04017_E_succ or pred on enums with assignments n','ot possible'#000+
   '04018_E_Can'#039't read or write variables of this type'#000+
   '04019_E_Can'#039't use readln or writeln on typed file'#000+
-  '04020_E_Can'#039't ','use read or write on untyped file.'#000+
+  '04020_E_Can'#039't use read or write on untyped file.'#000+
   '04021_E_Type conflict between set elements'#000+
-  '04022_W_lo/hi(dword/qword) returns the upper/lower word/dword'#000+
+  '04022_W_lo/hi(dword/qword) returns ','the upper/lower word/dword'#000+
   '04023_E_Integer or real expression expected'#000+
   '04024_E_Wrong type "$1" in array constructor'#000+
-  '04025_E_Inc','ompatible type for arg no. $1: Got "$2", expected "$3"'#000+
-  '04026_E_Method (variable) and Procedure (variable) are not compatible'#000+
+  '04025_E_Incompatible type for arg no. $1: Got "$2", expected "$3"'#000+
+  '04026_E_Method (variable) and Procedure (variable) are not',' compatibl'+
+  'e'#000+
   '04027_E_Illegal constant passed to internal math function'#000+
   '04028_E_Can'#039't get the address of constants'#000+
-  '04029_E_Argume','nt can'#039't be assigned to'#000+
+  '04029_E_Argument can'#039't be assigned to'#000+
   '04030_E_Can'#039't assign local procedure/function to procedure variabl'+
   'e'#000+
-  '04031_E_Can'#039't assign values to an address'#000+
+  '04031_E_Can'#039't assign ','values to an address'#000+
   '04032_E_Can'#039't assign values to const variable'#000+
   '04033_E_Array type required'#000+
-  '04034_E_interface type expected,',' but got "$1"'#000+
+  '04034_E_interface type expected, but got "$1"'#000+
   '04035_W_Mixing signed expressions and longwords gives a 64bit result'#000+
-  '04036_W_Mixing signed expressions and cardinals here may cause a range'+
-  ' check error'#000+
+  '04036_W_Mixing signed expressi','ons and cardinals here may cause a ran'+
+  'ge check error'#000+
   '04037_E_Typecast has different size ($1 -> $2) in assignment'#000+
-  '04038_E_enums',' with assignments can'#039't be used as array index'#000+
+  '04038_E_enums with assignments can'#039't be used as array index'#000+
   '04039_E_Class or Object types "$1" and "$2" are not related'#000+
-  '04040_W_Class types "$1" and "$2" are not related'#000+
+  '04040_','W_Class types "$1" and "$2" are not related'#000+
   '04041_E_Class or interface type expected, but got "$1"'#000+
-  '04042_E_Type "$1" is not com','pletely defined'#000+
+  '04042_E_Type "$1" is not completely defined'#000+
   '04043_W_String literal has more characters than short string length'#000+
-  '04044_W_Comparison is always false due to range of values'#000+
+  '04044_W_Comparison is always ','false due to range of values'#000+
   '04045_W_Comparison is always true due to range of values'#000+
-  '04046_W_Constructing a class "$1" with ab','stract methods'#000+
+  '04046_W_Constructing a class "$1" with abstract methods'#000+
   '04047_H_The left operand of the IN operator should be byte sized'#000+
-  '04048_W_Type size mismatch, possible loss of data / range check error'#000+
+  '04048_W_Type size mismatch, possi','ble loss of data / range check erro'+
+  'r'#000+
   '04049_H_Type size mismatch, possible loss of data / range check error'#000+
-  '04050_E_The address ','of an abstract method can'#039't be taken'#000+
+  '04050_E_The address of an abstract method can'#039't be taken'#000+
   '04051_E_The operator is not applicable for the operand type'#000+
-  '04052_E_Constant Expression expected'#000+
+  '04052_E_Constant',' Expression expected'#000+
   '04053_E_Operation "$1" not supported for types "$2" and "$3"'#000+
-  '04054_E_Illegal type conversion: "$1" to "$2"',#000+
+  '04054_E_Illegal type conversion: "$1" to "$2"'#000+
   '04055_H_Conversion between ordinals and pointers is not portable'#000+
-  '04056_W_Conversion between ordinals and pointers is not portable'#000+
+  '04056_W_Conversion between ordinals and pointer','s is not portable'#000+
   '04057_E_Can'#039't determine which overloaded function to call'#000+
   '04058_E_Illegal counter variable'#000+
-  '05000_E_Identifier',' not found "$1"'#000+
+  '05000_E_Identifier not found "$1"'#000+
   '05001_F_Internal Error in SymTableStack()'#000+
   '05002_E_Duplicate identifier "$1"'#000+
-  '05003_H_Identifier already defined in $1 at line $2'#000+
+  '05003_H_Identifier al','ready defined in $1 at line $2'#000+
   '05004_E_Unknown identifier "$1"'#000+
   '05005_E_Forward declaration not solved "$1"'#000+
-  '05007_E_Error in typ','e definition'#000+
+  '05007_E_Error in type definition'#000+
   '05009_E_Forward type not resolved "$1"'#000+
-  '05010_E_Only static variables can be used in static methods or outside'+
-  ' methods'#000+
+  '05010_E_Only static variables can be used in static methods o','r outsi'+
+  'de methods'#000+
   '05012_F_record or class type expected'#000+
   '05013_E_Instances of classes or objects with an abstract method are no'+
-  't',' allowed'#000+
+  't allowed'#000+
   '05014_W_Label not defined "$1"'#000+
   '05015_E_Label used but not defined "$1"'#000+
-  '05016_E_Illegal label declaration'#000+
+  '05016_E_Illegal label declaration',#000+
   '05017_E_GOTO and LABEL are not supported (use switch -Sg)'#000+
   '05018_E_Label not found'#000+
   '05019_E_identifier isn'#039't a label'#000+
-  '05020_E_lab','el already defined'#000+
+  '05020_E_label already defined'#000+
   '05021_E_illegal type declaration of set elements'#000+
-  '05022_E_Forward class definition not resolved "$1"'#000+
+  '05022_E_Forward class definition not resolved',' "$1"'#000+
   '05023_H_Unit "$1" not used in $2'#000+
   '05024_H_Parameter "$1" not used'#000+
   '05025_N_Local variable "$1" not used'#000+
-  '05026_H_Value param','eter "$1" is assigned but never used'#000+
+  '05026_H_Value parameter "$1" is assigned but never used'#000+
   '05027_N_Local variable "$1" is assigned but never used'#000+
-  '05028_H_Local $1 "$2" is not used'#000+
+  '05028_H_Local $1 "$2"',' is not used'#000+
   '05029_N_Private field "$1.$2" is never used'#000+
   '05030_N_Private field "$1.$2" is assigned but never used'#000+
-  '05031_N_Priva','te method "$1.$2" never used'#000+
+  '05031_N_Private method "$1.$2" never used'#000+
   '05032_E_Set type expected'#000+
   '05033_W_Function result does not seem to be set'#000+
-  '05034_W_Type "$1" is not aligned correctly in current record for C'#000+
+  '05034_W_Ty','pe "$1" is not aligned correctly in current record for C'#000+
   '05035_E_Unknown record field identifier "$1"'#000+
-  '05036_W_Local variable "$','1" does not seem to be initialized'#000+
+  '05036_W_Local variable "$1" does not seem to be initialized'#000+
   '05037_W_Variable "$1" does not seem to be initialized'#000+
-  '05038_E_identifier idents no member "$1"'#000+
+  '05038_E_identifier ident','s no member "$1"'#000+
   '05039_H_Found declaration: $1'#000+
   '05040_E_Data element too large'#000+
-  '05042_E_No matching implementation for interface ','method "$1" found'#000+
+  '05042_E_No matching implementation for interface method "$1" found'#000+
   '05043_W_Symbol "$1" is deprecated'#000+
   '05044_W_Symbol "$1" is not portable'#000+
-  '05055_W_Symbol "$1" is not implemented'#000+
+  '05055_W_Symbol "$1" is no','t implemented'#000+
   '05056_E_Can'#039't create unique type from this type'#000+
   '05057_H_Local variable "$1" does not seem to be initialized'#000+
-  '05058','_H_Variable "$1" does not seem to be initialized'#000+
+  '05058_H_Variable "$1" does not seem to be initialized'#000+
   '06009_E_Parameter list size exceeds 65535 bytes'#000+
-  '06012_E_File types must be var parameters'#000+
+  '06012_E_File typ','es must be var parameters'#000+
   '06013_E_The use of a far pointer isn'#039't allowed there'#000+
-  '06015_E_EXPORT declared functions can'#039't be calle','d'#000+
+  '06015_E_EXPORT declared functions can'#039't be called'#000+
   '06016_W_Possible illegal call of constructor or destructor'#000+
   '06017_N_Inefficient code'#000+
   '06018_W_unreachable code'#000+
-  '06020_E_Abstract methods can'#039't be called directly'#000+
+  '06','020_E_Abstract methods can'#039't be called directly'#000+
   '06027_DL_Register $1 weight $2 $3'#000+
   '06029_DL_Stack frame is omitted'#000+
-  '06031_E_Objec','t or class methods can'#039't be inline.'#000+
+  '06031_E_Object or class methods can'#039't be inline.'#000+
   '06032_E_Procvar calls cannot be inline.'#000+
-  '06033_E_No code for inline procedure stored'#000+
+  '06033_E_No code for inline procedure ','stored'#000+
   '06035_E_Element zero of an ansi/wide- or longstring can'#039't be acces'+
   'sed, use (set)length instead'#000+
-  '06037_E_Constructors or d','estructors can not be called inside a '#039'w'+
-  'ith'#039' clause'#000+
+  '06037_E_Constructors or destructors can not be called inside a '#039'wi'+
+  'th'#039' clause'#000+
   '06038_E_Cannot call message handler methods directly'#000+
-  '06039_E_Jump in or outside of an exception block'#000+
+  '06039_E_','Jump in or outside of an exception block'#000+
   '06040_E_Control flow statements aren'#039't allowed in a finally block'#000+
-  '06041_W_Parameters s','ize exceeds limit for certain cpu'#039's'#000+
+  '06041_W_Parameters size exceeds limit for certain cpu'#039's'#000+
   '06042_W_Local variable size exceed limit for certain cpu'#039's'#000+
-  '06043_E_Local variables size exceeds supported limit'#000+
+  '06043_E_Local vari','ables size exceeds supported limit'#000+
   '06044_E_BREAK not allowed'#000+
   '06045_E_CONTINUE not allowed'#000+
-  '07000_DL_Starting $1 styled assembler',' parsing'#000+
+  '07000_DL_Starting $1 styled assembler parsing'#000+
   '07001_DL_Finished $1 styled assembler parsing'#000+
   '07002_E_Non-label pattern contains @'#000+
-  '07004_E_Error building record offset'#000+
+  '07004_E_Error buildin','g record offset'#000+
   '07005_E_OFFSET used without identifier'#000+
   '07006_E_TYPE used without identifier'#000+
-  '07007_E_Cannot use local variable o','r parameters here'#000+
+  '07007_E_Cannot use local variable or parameters here'#000+
   '07008_E_need to use OFFSET here'#000+
   '07009_E_need to use $ here'#000+
-  '07010_E_Cannot use multiple relocatable symbols'#000+
+  '07010_E_Cannot use multiple relocata','ble symbols'#000+
   '07011_E_Relocatable symbol can only be added'#000+
   '07012_E_Invalid constant expression'#000+
-  '07013_E_Relocatable symbol is not ','allowed'#000+
+  '07013_E_Relocatable symbol is not allowed'#000+
   '07014_E_Invalid reference syntax'#000+
   '07015_E_You can not reach $1 from that code'#000+
-  '07016_E_Local symbols/labels aren'#039't allowed as references'#000+
+  '07016_E_Local symbols/labels',' aren'#039't allowed as references'#000+
   '07017_E_Invalid base and index register usage'#000+
   '07018_W_Possible error in object field handling'#000+
-  '070','19_E_Wrong scale factor specified'#000+
+  '07019_E_Wrong scale factor specified'#000+
   '07020_E_Multiple index register usage'#000+
   '07021_E_Invalid operand type'#000+
-  '07022_E_Invalid string as opcode operand: $1'#000+
+  '07022_E_Inva','lid string as opcode operand: $1'#000+
   '07023_W_@CODE and @DATA not supported'#000+
   '07024_E_Null label references are not allowed'#000+
-  '07025_E_Di','vide by zero in asm evaluator'#000+
+  '07025_E_Divide by zero in asm evaluator'#000+
   '07026_E_Illegal expression'#000+
   '07027_E_escape sequence ignored: $1'#000+
-  '07028_E_Invalid symbol reference'#000+
+  '07028_E_Invalid symb','ol reference'#000+
   '07029_W_Fwait can cause emulation problems with emu387'#000+
   '07030_W_$1 without operand translated into $1P'#000+
-  '07031_W_ENTE','R instruction is not supported by Linux kernel'#000+
+  '07031_W_ENTER instruction is not supported by Linux kernel'#000+
   '07032_W_Calling an overload function in assembler'#000+
-  '07033_E_Unsupported symbol type for operand'#000+
+  '07033_E_Unsuppor','ted symbol type for operand'#000+
   '07034_E_Constant value out of bounds'#000+
   '07035_E_Error converting decimal $1'#000+
-  '07036_E_Error converting o','ctal $1'#000+
+  '07036_E_Error converting octal $1'#000+
   '07037_E_Error converting binary $1'#000+
   '07038_E_Error converting hexadecimal $1'#000+
   '07039_H_$1 translated to $2'#000+
-  '07040_W_$1 is associated to an overloaded function'#000+
+  '07','040_W_$1 is associated to an overloaded function'#000+
   '07041_E_Cannot use SELF outside a method'#000+
-  '07042_E_Cannot use OLDEBP outside a n','ested procedure'#000+
+  '07042_E_Cannot use OLDEBP outside a nested procedure'#000+
   '07043_W_Procedures can'#039't return any value in asm code'#000+
   '07044_E_SEG not supported'#000+
-  '07045_E_Size suffix and destination or source size do not match'#000+
+  '07045_E_Size suff','ix and destination or source size do not match'#000+
   '07046_W_Size suffix and destination or source size do not match'#000+
-  '07047_E_Assemble','r syntax error'#000+
+  '07047_E_Assembler syntax error'#000+
   '07048_E_Invalid combination of opcode and operands'#000+
   '07049_E_Assembler syntax error in operand'#000+
-  '07050_E_Assembler syntax error in constant'#000+
+  '07050','_E_Assembler syntax error in constant'#000+
   '07051_E_Invalid String expression'#000+
-  '07052_W_constant with symbol $1 for address which is no','t on a pointe'+
-  'r'#000+
+  '07052_W_constant with symbol $1 for address which is not on a pointer'#000+
   '07053_E_Unrecognized opcode $1'#000+
   '07054_E_Invalid or missing opcode'#000+
-  '07055_E_Invalid combination of prefix and opcode: $1'#000+
+  '07055_E_Invalid combination of pr','efix and opcode: $1'#000+
   '07056_E_Invalid combination of override and opcode: $1'#000+
   '07057_E_Too many operands on line'#000+
-  '07058_W_NEAR ignor','ed'#000+
+  '07058_W_NEAR ignored'#000+
   '07059_W_FAR ignored'#000+
   '07060_E_Duplicate local symbol $1'#000+
   '07061_E_Undefined local symbol $1'#000+
-  '07062_E_Unknown label identifier $1'#000+
+  '07062_E_Unknown label ','identifier $1'#000+
   '07063_E_Invalid register name'#000+
   '07064_E_Invalid floating point register name'#000+
   '07066_W_Modulo not supported'#000+
-  '07067_E_I','nvalid floating point constant $1'#000+
+  '07067_E_Invalid floating point constant $1'#000+
   '07068_E_Invalid floating point expression'#000+
   '07069_E_Wrong symbol type'#000+
-  '07070_E_Cannot index a local var or parameter with a register'#000+
+  '07070_E_Can','not index a local var or parameter with a register'#000+
   '07071_E_Invalid segment override expression'#000+
-  '07072_W_Identifier $1 supposed e','xternal'#000+
+  '07072_W_Identifier $1 supposed external'#000+
   '07073_E_Strings not allowed as constants'#000+
   '07074_No type of variable specified'#000+
-  '07075_E_assembler code not returned to text section'#000+
+  '07075_E_assembler code not r','eturned to text section'#000+
   '07076_E_Not a directive or local symbol $1'#000+
   '07077_E_Using a defined name as a local label'#000+
-  '07078_E_Dollar',' token is used without an identifier'#000+
+  '07078_E_Dollar token is used without an identifier'#000+
   '07079_W_32bit constant created for address'#000+
-  '07080_N_.align is target specific, use .balign or .p2align'#000+
+  '07080_N_.align is target specific',', use .balign or .p2align'#000+
   '07081_E_Can'#039't access fields directly for parameters'#000+
-  '07082_E_Can'#039't access fields of objects/classes di','rectly'#000+
+  '07082_E_Can'#039't access fields of objects/classes directly'#000+
   '07083_E_No size specified and unable to determine the size of the oper'+
   'ands'#000+
-  '07084_E_Cannot use RESULT in this function'#000+
+  '07084_E_Cannot use RESULT in th','is function'#000+
   '07086_W_"$1" without operand translated into "$1 %st,%st(1)"'#000+
   '07087_W_"$1 %st(n)" translated into "$1 %st,%st(n)"'#000+
-  '07','088_W_"$1 %st(n)" translated into "$1 %st(n),%st"'#000+
+  '07088_W_"$1 %st(n)" translated into "$1 %st(n),%st"'#000+
   '07089_E_Char < not allowed here'#000+
-  '07090_E_Char > not allowed here'#000+
+  '07090_E_Char > not allowed here',#000+
   '07093_W_ALIGN not supported'#000+
   '07094_E_Inc and Dec cannot be together'#000+
   '07095_E_Invalid reglist for movem'#000+
-  '07096_E_Reglist invalid f','or opcode'#000+
+  '07096_E_Reglist invalid for opcode'#000+
   '07097_E_Higher cpu mode required ($1)'#000+
-  '07098_W_No size specified and unable to determine the size of the oper'+
-  'ands, using DWORD as default'#000+
+  '07098_W_No size specified and unable to determine the size of the',' op'+
+  'erands, using DWORD as default'#000+
   '07099_E_Syntax error while trying to parse a shifter operand'#000+
-  '08000_F_Too many assembler files',#000+
+  '08000_F_Too many assembler files'#000+
   '08001_F_Selected assembler output not supported'#000+
   '08002_F_Comp not supported'#000+
-  '08003_F_Direct not support for binary writers'#000+
+  '08003_F_Direct not support for binary',' writers'#000+
   '08004_E_Allocating of data is only allowed in bss section'#000+
   '08005_F_No binary writer selected'#000+
-  '08006_E_Asm: Opcode $1 not',' in table'#000+
+  '08006_E_Asm: Opcode $1 not in table'#000+
   '08007_E_Asm: $1 invalid combination of opcode and operands'#000+
-  '08008_E_Asm: 16 Bit references not supported'#000+
+  '08008_E_Asm: 16 Bit references not supported',#000+
   '08009_E_Asm: Invalid effective address'#000+
   '08010_E_Asm: Immediate or reference expected'#000+
   '08011_E_Asm: $1 value exceeds bounds $2'#000+
-  '08','012_E_Asm: Short jump is out of range $1'#000+
+  '08012_E_Asm: Short jump is out of range $1'#000+
   '08013_E_Asm: Undefined label $1'#000+
-  '08014_E_Asm: Comp type not supported for this target'#000+
+  '08014_E_Asm: Comp type not supported for',' this target'#000+
   '08015_E_Asm: Extended type not supported for this target'#000+
   '08016_E_Asm: Duplicate label $1'#000+
-  '08017_E_Asm: Redefined la','bel $1'#000+
+  '08017_E_Asm: Redefined label $1'#000+
   '08018_E_Asm: First defined here'#000+
   '08019_E_Asm: Invalid register $1'#000+
-  '09000_W_Source operating system redefined'#000+
+  '09000_W_Source operating system redefined',#000+
   '09001_I_Assembling (pipe) $1'#000+
   '09002_E_Can'#039't create assember file: $1'#000+
   '09003_E_Can'#039't create object file: $1'#000+
-  '09004_E_Can'#039't create ','archive file: $1'#000+
+  '09004_E_Can'#039't create archive file: $1'#000+
   '09005_E_Assembler $1 not found, switching to external assembling'#000+
   '09006_T_Using assembler: $1'#000+
-  '09007_E_Error while assembling exitcode $1'#000+
+  '090','07_E_Error while assembling exitcode $1'#000+
   '09008_E_Can'#039't call the assembler, error $1 switching to external a'+
   'ssembling'#000+
-  '09009_I_Ass','embling $1'#000+
+  '09009_I_Assembling $1'#000+
   '09010_I_Assembling with smartlinking $1'#000+
   '09011_W_Object $1 not found, Linking may fail !'#000+
-  '09012_W_Library $1 not found, Linking may fail !'#000+
+  '09012_W_Librar','y $1 not found, Linking may fail !'#000+
   '09013_E_Error while linking'#000+
   '09014_E_Can'#039't call the linker, switching to external linking'#000+
-  '090','15_I_Linking $1'#000+
+  '09015_I_Linking $1'#000+
   '09016_E_Util $1 not found, switching to external linking'#000+
   '09017_T_Using util $1'#000+
-  '09018_E_Creation of Executables not supported'#000+
+  '09018_E_Creation o','f Executables not supported'#000+
   '09019_E_Creation of Dynamic/Shared Libraries not supported'#000+
   '09020_I_Closing script $1'#000+
-  '09021_E_resour','ce compiler not found, switching to external mode'#000+
+  '09021_E_resource compiler not found, switching to external mode'#000+
   '09022_I_Compiling resource $1'#000+
-  '09023_T_unit $1 can'#039't be statically linked, switching to smart lin'+
-  'king'#000+
+  '09023_T_unit $1 can'#039't be statical','ly linked, switching to smart l'+
+  'inking'#000+
   '09024_T_unit $1 can'#039't be smart linked, switching to static linking'+
   #000+
-  '09025_T_unit $1 can'#039't ','be shared linked, switching to static link'+
-  'ing'#000+
+  '09025_T_unit $1 can'#039't be shared linked, switching to static linkin'+
+  'g'#000+
   '09026_E_unit $1 can'#039't be smart or static linked'#000+
-  '09027_E_unit $1 can'#039't be shared or static linked'#000+
+  '09027_E_unit $1 can',#039't be shared or static linked'#000+
   '09028_F_Can'#039't post process executable $1'#000+
   '09029_F_Can'#039't open executable $1'#000+
-  '09030_X_Size of Code: $','1 bytes'#000+
+  '09030_X_Size of Code: $1 bytes'#000+
   '09031_X_Size of initialized data: $1 bytes'#000+
   '09032_X_Size of uninitialized data: $1 bytes'#000+
-  '09033_X_Stack space reserved: $1 bytes'#000+
+  '09033_X_Stack spa','ce reserved: $1 bytes'#000+
   '09034_X_Stack space commited: $1 bytes'#000+
   '10000_T_Unitsearch: $1'#000+
   '10001_T_PPU Loading $1'#000+
-  '10002_U_PPU Name: $1',#000+
+  '10002_U_PPU Name: $1'#000+
   '10003_U_PPU Flags: $1'#000+
   '10004_U_PPU Crc: $1'#000+
   '10005_U_PPU Time: $1'#000+
   '10006_U_PPU File too short'#000+
-  '10007_U_PPU Invalid Header (no PPU at the begin)'#000+
+  '10007_U_PPU Invalid He','ader (no PPU at the begin)'#000+
   '10008_U_PPU Invalid Version $1'#000+
   '10009_U_PPU is compiled for another processor'#000+
-  '10010_U_PPU is compiled',' for an other target'#000+
+  '10010_U_PPU is compiled for an other target'#000+
   '10011_U_PPU Source: $1'#000+
   '10012_U_Writing $1'#000+
   '10013_F_Can'#039't Write PPU-File'#000+
-  '10014_F_Error reading PPU-File'#000+
+  '10014_F_Error reading',' PPU-File'#000+
   '10015_F_unexpected end of PPU-File'#000+
   '10016_F_Invalid PPU-File entry: $1'#000+
   '10017_F_PPU Dbx count problem'#000+
-  '10018_E_Illegal u','nit name: $1'#000+
+  '10018_E_Illegal unit name: $1'#000+
   '10019_F_Too much units'#000+
   '10020_F_Circular unit reference between $1 and $2'#000+
-  '10021_F_Can'#039't compile unit $1, no sources available'#000+
+  '10021_F_Can'#039't compile unit ','$1, no sources available'#000+
   '10022_F_Can'#039't find unit $1'#000+
   '10023_W_Unit $1 was not found but $2 exists'#000+
-  '10024_F_Unit $1 searched but $2',' found'#000+
+  '10024_F_Unit $1 searched but $2 found'#000+
   '10025_W_Compiling the system unit requires the -Us switch'#000+
-  '10026_F_There were $1 errors compiling module, stopping'#000+
+  '10026_F_There were $1 errors compiling module, s','topping'#000+
   '10027_U_Load from $1 ($2) unit $3'#000+
   '10028_U_Recompiling $1, checksum changed for $2'#000+
-  '10029_U_Recompiling $1, source found ','only'#000+
+  '10029_U_Recompiling $1, source found only'#000+
   '10030_U_Recompiling unit, static lib is older than ppufile'#000+
-  '10031_U_Recompiling unit, shared lib is older than ppufile'#000+
+  '10031_U_Recompiling unit, shared lib is older tha','n ppufile'#000+
   '10032_U_Recompiling unit, obj and asm are older than ppufile'#000+
   '10033_U_Recompiling unit, obj is older than asm'#000+
-  '10034_U_','Parsing interface of $1'#000+
+  '10034_U_Parsing interface of $1'#000+
   '10035_U_Parsing implementation of $1'#000+
   '10036_U_Second load for unit $1'#000+
-  '10037_U_PPU Check file $1 time $2'#000+
+  '10037_U_PPU Check fi','le $1 time $2'#000+
   '10040_W_Can'#039't recompile unit $1, but found modifed include files'#000+
-  '10041_H_File $1 is newer than Release PPU file $','2'#000+
+  '10041_H_File $1 is newer than Release PPU file $2'#000+
   '10042_U_Using a unit which was not compiled with correct FPU mode'#000+
   '10043_U_Loading interface units from $1'#000+
-  '10044_U_Loading implementation units from $1'#000+
+  '10044','_U_Loading implementation units from $1'#000+
   '10045_U_Interface CRC changed for unit $1'#000+
-  '10046_U_Implementation CRC changed for unit $','1'#000+
+  '10046_U_Implementation CRC changed for unit $1'#000+
   '10047_U_Finished compiling unit $1'#000+
   '10048_U_Add dependency of $1 to $2'#000+
   '10049_U_No reload, is caller: $1'#000+
-  '10050_U_No reload, already in second compile: $1'#000+
+  '10050_U_','No reload, already in second compile: $1'#000+
   '10051_U_Flag for reload: $1'#000+
   '10052_U_Forced reloading'#000+
-  '10053_U_Previous state of $1: $2'#000,
+  '10053_U_Previous state of $1: $2'#000+
   '10054_U_Already compiling $1, setting second compile'#000+
   '10055_U_Loading unit $1'#000+
   '10056_U_Finished loading unit $1'#000+
-  '10057_U_Registering new unit $1'#000+
+  '100','57_U_Registering new unit $1'#000+
   '10058_U_Re-resolving unit $1'#000+
   '10059_U_Skipping re-resolving unit $1, still loading used units'#000+
-  '11000','_$1 [options] <inputfile> [options]'#000+
+  '11000_$1 [options] <inputfile> [options]'#000+
   '11001_W_Only one source file supported'#000+
-  '11002_W_DEF file can be created only for OS/2'#000+
+  '11002_W_DEF file can be created only f','or OS/2'#000+
   '11003_E_nested response files are not supported'#000+
   '11004_F_No source file name in command line'#000+
-  '11005_N_No option inside $1',' config file'#000+
+  '11005_N_No option inside $1 config file'#000+
   '11006_E_Illegal parameter: $1'#000+
   '11007_H_-? writes help pages'#000+
   '11008_F_Too many config files nested'#000+
-  '11009_F_Unable to open file $1'#000+
+  '1100','9_F_Unable to open file $1'#000+
   '11010_D_Reading further options from $1'#000+
   '11011_W_Target is already set to: $1'#000+
-  '11012_W_Shared libs not',' supported on DOS platform, reverting to stat'+
-  'ic'#000+
+  '11012_W_Shared libs not supported on DOS platform, reverting to static'+
+  #000+
   '11013_F_too many IF(N)DEFs'#000+
   '11014_F_too many ENDIFs'#000+
-  '11015_F_open conditional at the end of the file'#000+
+  '11015_F_open c','onditional at the end of the file'#000+
   '11016_W_Debug information generation is not supported by this executab'+
   'le'#000+
-  '11017_H_Try recompil','ing with -dGDB'#000+
+  '11017_H_Try recompiling with -dGDB'#000+
   '11018_E_You are using the obsolete switch $1'#000+
-  '11019_E_You are using the obsolete switch $1, please use $2'#000+
+  '11019_E_You are using the obsolete switch $1, please ','use $2'#000+
   '11020_N_Switching assembler to default source writing assembler'#000+
-  '11021_W_Assembler output selected "$1" is not compatible',' with "$2"'#000+
+  '11021_W_Assembler output selected "$1" is not compatible with "$2"'#000+
   '11022_W_"$1" assembler use forced'#000+
   '11026_T_Reading options from file $1'#000+
-  '11027_T_Reading options from environment $1'#000+
+  '11027_T_Reading options from en','vironment $1'#000+
   '11028_D_Handling option "$1"'#000+
   '11029__*** press enter ***'#000+
   '11030_H_Start of reading config file $1'#000+
-  '11031_H_End of rea','ding config file $1'#000+
+  '11031_H_End of reading config file $1'#000+
   '11032_D_interpreting option "$1"'#000+
   '11036_D_interpreting firstpass option "$1"'#000+
-  '11033_D_interpreting file option "$1"'#000+
+  '11033_D_interpret','ing file option "$1"'#000+
   '11034_D_Reading config file "$1"'#000+
   '11035_D_found source file name "$1"'#000+
   '11039_E_Unknown code page'#000+
-  '11023_Free ','Pascal Compiler version $FPCVERSION [$FPCDATE] for $FPCCP'+
-  'U'#010+
+  '11023_Free Pascal Compiler version $FPCVERSION [$FPCDATE] for $FPCCPU'#010+
   'Copyright (c) 1993-2005 by Florian Klaempfl'#000+
-  '11024_Free Pascal Compiler version $FPCVERSION'#010+
+  '11024_Free',' Pascal Compiler version $FPCVERSION'#010+
   #010+
   'Compiler Date      : $FPCDATE'#010+
   'Compiler CPU Target: $FPCCPU'#010+
   #010+
   'Supported targets:'#010+
-  '  $OSTARGE','TS'#010+
+  '  $OSTARGETS'#010+
   #010+
   'Supported CPU instruction sets:'#010+
   '  $INSTRUCTIONSETS'#010+
@@ -717,222 +720,223 @@ const msgtxt : array[0..000160,1..240] of char=(
   'Supported FPU instruction sets:'#010+
   '  $FPUINSTRUCTIONSETS'#010+
   #010+
-  'This program comes under the GNU General Public Licence'#010+
+  'Th','is program comes under the GNU General Public Licence'#010+
   'For more information read COPYING.FPC'#010+
   #010+
   'Report bugs,suggestions etc to:'#010+
-  '  ','               [email protected]'#000+
+  '                 [email protected]'#000+
   '11025_**0*_put + after a boolean switch option to enable it, - to disa'+
-  'ble it'#010+
+  'ble it',#010+
   '**1a_the compiler doesn'#039't delete the generated assembler file'#010+
   '**2al_list sourcecode lines in assembler file'#010+
-  '**2an_list node in','fo in assembler file'#010+
+  '**2an_list node info in assembler file'#010+
   '*L2ap_use pipes instead of creating temporary assembler files'#010+
-  '**2ar_list register allocation/release info in assembler file'#010+
+  '**2ar_list register allocation','/release info in assembler file'#010+
   '**2at_list temp allocation/release info in assembler file'#010+
   '**1A<x>_output format:'#010+
-  '**2Adefault_us','e default assembler'#010+
+  '**2Adefault_use default assembler'#010+
   '3*2Aas_assemble using GNU AS'#010+
   '3*2Anasmcoff_coff (Go32v2) file using Nasm'#010+
-  '3*2Anasmelf_elf32 (Linux) file using Nasm'#010+
+  '3*2Anasmelf_elf32 (Li','nux) file using Nasm'#010+
   '3*2Anasmwin32_Win32 object file using Nasm'#010+
   '3*2Anasmwdosx_Win32/WDOSX object file using Nasm'#010+
-  '3*2Awasm_obj f','ile using Wasm (Watcom)'#010+
+  '3*2Awasm_obj file using Wasm (Watcom)'#010+
   '3*2Anasmobj_obj file using Nasm'#010+
   '3*2Amasm_obj file using Masm (Microsoft)'#010+
-  '3*2Atasm_obj file using Tasm (Borland)'#010+
+  '3*2Atasm_obj fil','e using Tasm (Borland)'#010+
   '3*2Aelf_elf32 (Linux) using internal writer'#010+
   '3*2Acoff_coff (Go32v2) using internal writer'#010+
-  '3*2Apecoff_peco','ff (Win32) using internal writer'#010+
+  '3*2Apecoff_pecoff (Win32) using internal writer'#010+
   '4*2Aas_assemble using GNU AS'#010+
   '6*2Aas_Unix o-file using GNU AS'#010+
-  '6*2Agas_GNU Motorola assembler'#010+
+  '6*2Agas_GNU Motorol','a assembler'#010+
   '6*2Amit_MIT Syntax (old GAS)'#010+
   '6*2Amot_Standard Motorola assembler'#010+
   'A*2Aas_assemble using GNU AS'#010+
-  'P*2Aas_assemble using',' GNU AS'#010+
+  'P*2Aas_assemble using GNU AS'#010+
   'S*2Aas_assemble using GNU AS'#010+
   '**1b_generate browser info'#010+
   '**2bl_generate local symbol info'#010+
-  '**1B_build all modules'#010+
+  '**1B_build all m','odules'#010+
   '**1C<x>_code generation options:'#010+
   '**2Cc<x>_set default calling convention to <x>'#010+
-  '**2CD_create also dynamic library (not s','upported)'#010+
+  '**2CD_create also dynamic library (not supported)'#010+
   '**2Ce_Compilation with emulated floating point opcodes'#010+
-  '**2Cf<x>_Select fpu instruction set to use, see fpc -i for possible va'+
-  'lues'#010+
+  '**2Cf<x>_Select fpu instruction set to use, see ','fpc -i for possible '+
+  'values'#010+
   '**2Cg_Generate PIC code'#010+
   '**2Ch<n>_<n> bytes heap (between 1023 and 67107840)'#010+
   '**2Ci_IO-checking'#010+
-  '**2Cn_','omit linking stage'#010+
+  '**2Cn_omit linking stage'#010+
   '**2Co_check overflow of integer operations'#010+
-  '**2Cp<x>_select instruction set, see fpc -i for possible values'#010+
+  '**2Cp<x>_select instruction set, see fpc -i for pos','sible values'#010+
   '**2Cr_range checking'#010+
   '**2CR_verify object method call validity'#010+
   '**2Cs<n>_set stack size to <n>'#010+
-  '**2Ct_stack checking'#010,
+  '**2Ct_stack checking'#010+
   '**2CX_create also smartlinked library'#010+
   '**1d<x>_defines the symbol <x>'#010+
   '**1D_generate a DEF file'#010+
-  '**2Dd<x>_set description to <x>'#010+
+  '**2Dd<x>_set descri','ption to <x>'#010+
   '**2Dv<x>_set DLL version to <x>'#010+
   '*O2Dw_PM application'#010+
   '**1e<x>_set path to executable'#010+
   '**1E_same as -Cn'#010+
-  '**1F<x>_set f','ile names and paths:'#010+
+  '**1F<x>_set file names and paths:'#010+
   '**2Fa<x>[,y]_for a program load first units <x> and [y] before uses is'+
   ' parsed'#010+
-  '**2Fc<x>_sets input codepage to <x>'#010+
+  '**2Fc<x>_sets ','input codepage to <x>'#010+
   '**2FD<x>_sets the directory where to search for compiler utilities'#010+
-  '**2Fe<x>_redirect error output to <x>'#010,
+  '**2Fe<x>_redirect error output to <x>'#010+
   '**2FE<x>_set exe/unit output path to <x>'#010+
   '**2Fi<x>_adds <x> to include path'#010+
   '**2Fl<x>_adds <x> to library path'#010+
-  '**2FL<x>_uses <x> as dynamic linker'#010+
+  '**2F','L<x>_uses <x> as dynamic linker'#010+
   '**2Fo<x>_adds <x> to object path'#010+
   '**2Fr<x>_load error message file <x>'#010+
-  '**2Fu<x>_adds <x> to unit',' path'#010+
+  '**2Fu<x>_adds <x> to unit path'#010+
   '**2FU<x>_set unit output path to <x>, overrides -FE'#010+
   '*g1g_generate debugger information:'#010+
-  '*g2gc_generate checks for pointers'#010+
+  '*g2gc_generate chec','ks for pointers'#010+
   '*g2gd_use dbx'#010+
   '*g2gg_use gsym'#010+
   '*g2gh_use heap trace unit (for memory leak debugging)'#010+
-  '*g2gl_use line info unit to ','show more info for backtraces'#010+
+  '*g2gl_use line info unit to show more info for backtraces'#010+
   '*g2gv_generates programs tracable with valgrind'#010+
-  '*g2gw_generate dwarf debugging info'#010+
+  '*g2gw_generate dwarf debugging info',#010+
   '**1i_information'#010+
   '**2iD_return compiler date'#010+
   '**2iV_return compiler version'#010+
   '**2iSO_return compiler OS'#010+
-  '**2iSP_return compiler pro','cessor'#010+
+  '**2iSP_return compiler processor'#010+
   '**2iTO_return target OS'#010+
   '**2iTP_return target processor'#010+
   '**1I<x>_adds <x> to include path'#010+
-  '**1k<x>_Pass <x> to the linker'#010+
+  '**1k<x>_Pass <x> t','o the linker'#010+
   '**1l_write logo'#010+
   '**1M<x>_set language mode to <x>'#010+
   '**2Mfpc_free pascal dialect (default)'#010+
-  '**2Mobjfpc_switch some Delp','hi 2 extensions on'#010+
+  '**2Mobjfpc_switch some Delphi 2 extensions on'#010+
   '**2Mdelphi_tries to be Delphi compatible'#010+
   '**2Mtp_tries to be TP/BP 7.0 compatible'#010+
-  '**2Mgpc_tries to be gpc compatible'#010+
+  '**2Mgpc_tries',' to be gpc compatible'#010+
   '**2Mmacpas_tries to be compatible to the macintosh pascal dialects'#010+
-  '**1n_don'#039't read the default config fil','e'#010+
+  '**1n_don'#039't read the default config file'#010+
   '**1o<x>_change the name of the executable produced to <x>'#010+
   '**1O<x>_optimizations:'#010+
   '3*2Og_generate smaller code'#010+
-  '3*2OG_generate faster code (default)'#010+
+  '3*','2OG_generate faster code (default)'#010+
   '**2Or_keep certain variables in registers'#010+
   '3*2Ou_enable uncertain optimizations (see docs)'#010+
-  '3*','2O1_level 1 optimizations (quick optimizations)'#010+
+  '3*2O1_level 1 optimizations (quick optimizations)'#010+
   '3*2O2_level 2 optimizations (-O1 + slower optimizations)'#010+
-  '3*2O3_level 3 optimizations (-O2 repeatedly, max 5 times)'#010+
+  '3*2O3_le','vel 3 optimizations (-O2 repeatedly, max 5 times)'#010+
   '3*2Op<x>_target processor:'#010+
   '3*3Op1_set target processor to 386/486'#010+
-  '3*3Op2_set ','target processor to Pentium/PentiumMMX (tm)'#010+
+  '3*3Op2_set target processor to Pentium/PentiumMMX (tm)'#010+
   '3*3Op3_set target processor to PPro/PII/c6x86/K6 (tm)'#010+
-  '6*2Og_generate smaller code'#010+
+  '6*2Og_generate ','smaller code'#010+
   '6*2OG_generate faster code (default)'#010+
   '6*2Ox_optimize maximum (still BUGGY!!!)'#010+
-  '6*2O0_set target processor to a MC680','00'#010+
+  '6*2O0_set target processor to a MC68000'#010+
   '6*2O2_set target processor to a MC68020+ (default)'#010+
-  '**1pg_generate profile code for gprof (defines FPC_PROFILE)'#010+
+  '**1pg_generate profile code for gprof (defines FPC_PROFILE)',#010+
   '**1R<x>_assembler reading style:'#010+
   '**2Rdefault_use default assembler'#010+
   '3*2Ratt_read AT&T style assembler'#010+
-  '3*2Rintel_read Intel styl','e assembler'#010+
+  '3*2Rintel_read Intel style assembler'#010+
   '6*2RMOT_read motorola style assembler'#010+
   '**1S<x>_syntax options:'#010+
   '**2S2_same as -Mobjfpc'#010+
-  '**2Sc_supports operators like C (*=,+=,/= and -=)'#010+
+  '**2Sc_supports o','perators like C (*=,+=,/= and -=)'#010+
   '**2Sa_include assertion code.'#010+
   '**2Sd_same as -Mdelphi'#010+
-  '**2Se<x>_error options. <x> is a combina','tion of the following:'#010+
+  '**2Se<x>_error options. <x> is a combination of the following:'#010+
   '**3*_<n> : compiler stops after the <n> errors (default is 1)'#010+
-  '**3*_w : compiler stops also after warnings'#010+
+  '**3*_w : compiler stops also',' after warnings'#010+
   '**3*_n : compiler stops also after notes'#010+
   '**3*_h : compiler stops also after hints'#010+
   '**2Sg_allow LABEL and GOTO'#010+
-  '**','2Sh_Use ansistrings'#010+
+  '**2Sh_Use ansistrings'#010+
   '**2Si_support C++ styled INLINE'#010+
   '**2SI<x>_set interface style to <x>'#010+
-  '**3SIcom_COM compatible interface (default)'#010+
+  '**3SIcom_COM compatible i','nterface (default)'#010+
   '**3SIcorba_CORBA compatible interface'#010+
   '**2Sm_support macros like C (global)'#010+
   '**2So_same as -Mtp'#010+
-  '**2Sp_same as ','-Mgpc'#010+
+  '**2Sp_same as -Mgpc'#010+
   '**2Ss_constructor name must be init (destructor must be done)'#010+
   '**2St_allow static keyword in objects'#010+
-  '**1s_don'#039't call assembler and linker'#010+
+  '**1s_do','n'#039't call assembler and linker'#010+
   '**2sh_Generate script to link on host'#010+
   '**2st_Generate script to link on target'#010+
-  '**2sr_Skip register',' allocation phase (use with -alr)'#010+
+  '**2sr_Skip register allocation phase (use with -alr)'#010+
   '**1T<x>_Target operating system:'#010+
-  '3*2Temx_OS/2 via EMX (including EMX/RSX extender)'#010+
+  '3*2Temx_OS/2 via EMX (including EMX/RSX extend','er)'#010+
   '3*2Tfreebsd_FreeBSD'#010+
   '3*2Tgo32v2_Version 2 of DJ Delorie DOS extender'#010+
   '3*2Tlinux_Linux'#010+
   '3*2Tnetbsd_NetBSD'#010+
-  '3*2Tnetware_Novell Ne','tware Module (clib)'#010+
+  '3*2Tnetware_Novell Netware Module (clib)'#010+
   '3*2Tnetwlibc_Novell Netware Module (libc)'#010+
   '3*2Topenbsd_OpenBSD'#010+
   '3*2Tos2_OS/2 / eComStation'#010+
-  '3*2Tsunos_SunOS/Solaris'#010+
+  '3*2T','sunos_SunOS/Solaris'#010+
   '3*2Twatcom_Watcom compatible DOS extender'#010+
   '3*2Twdosx_WDOSX DOS extender'#010+
   '3*2Twin32_Windows 32 Bit'#010+
-  '4*2Tlinux_L','inux'#010+
+  '4*2Tlinux_Linux'#010+
   '6*2Tamiga_Commodore Amiga'#010+
   '6*2Tatari_Atari ST/STe/TT'#010+
   '6*2Tlinux_Linux-68k'#010+
-  '6*2Tmacos_Macintosh m68k (not supported)'#010+
+  '6*2Tmacos_Macintosh m68k (not suppor','ted)'#010+
   '6*2Tpalmos_PalmOS'#010+
   'A*2Tlinux_Linux'#010+
   'P*2Tdarwin_Darwin and MacOS X on PowerPC'#010+
   'P*2Tlinux_Linux on PowerPC'#010+
-  'P*2Tmacos_MacOS (cla','ssic) on PowerPC'#010+
+  'P*2Tmacos_MacOS (classic) on PowerPC'#010+
   'P*2Tmorphos_MorphOS'#010+
   'S*2Tlinux_Linux'#010+
   '**1u<x>_undefines the symbol <x>'#010+
   '**1U_unit options:'#010+
-  '**2Un_don'#039't check the unit name'#010+
+  '**2Un_do','n'#039't check the unit name'#010+
   '**2Ur_generate release unit files'#010+
   '**2Us_compile a system unit'#010+
-  '**1v<x>_Be verbose. <x> is a combination ','of the following letters:'#010+
+  '**1v<x>_Be verbose. <x> is a combination of the following letters:'#010+
   '**2*_e : Show errors (default)       0 : Show nothing (except errors)'#010+
-  '**2*_w : Show warnings               u : Show unit info'#010+
+  '**2*_w : Show war','nings               u : Show unit info'#010+
   '**2*_n : Show notes                  t : Show tried/used files'#010+
-  '**2*_h : Show hints      ','            c : Show conditionals'#010+
+  '**2*_h : Show hints                  c : Show conditionals'#010+
   '**2*_i : Show general info           d : Show debug info'#010+
-  '**2*_l : Show linenumbers            r : Rhide/GCC compatibility mode'#010+
+  '**2*_l : Show linenumb','ers            r : Rhide/GCC compatibility mod'+
+  'e'#010+
   '**2*_a : Show everything             x : Executable info (Win32 only)'#010+
-  '**2*_v : ','write fpcdebug.txt with     p : Write tree.log with parse t'+
-  'ree'#010+
+  '**2*_v : write fpcdebug.txt with     p : Write tree.log with parse tre'+
+  'e'#010+
   '**2*_    lots of debugging info'#010+
-  '3*1W<x>_Win32-like target options'#010+
+  '3*1W<x>_Win32-like',' target options'#010+
   '3*2WB<x>_Set Image base to Hexadecimal <x> value'#010+
   '3*2WC_Specify console type application'#010+
-  '3*2WD_Use DEFFILE to ex','port functions of DLL or EXE'#010+
+  '3*2WD_Use DEFFILE to export functions of DLL or EXE'#010+
   '3*2WF_Specify full-screen type application (OS/2 only)'#010+
-  '3*2WG_Specify graphic type application'#010+
+  '3*2WG_Specify graphic type ap','plication'#010+
   '3*2WN_Do not generate relocation code (necessary for debugging)'#010+
   '3*2WR_Generate relocation code'#010+
-  'P*2WC_Specify console ','type application (MacOS only)'#010+
+  'P*2WC_Specify console type application (MacOS only)'#010+
   'P*2WG_Specify graphic type application (MacOS only)'#010+
-  'P*2WT_Specify tool type application (MPW tool, MacOS only)'#010+
+  'P*2WT_Specify tool type applica','tion (MPW tool, MacOS only)'#010+
   '**1X_executable options:'#010+
   '**2Xc_pass --shared to the linker (Unix only)'#010+
-  '**2Xd_don'#039't use standard lib','rary search path (needed for cross c'+
-  'ompile)'#010+
+  '**2Xd_don'#039't use standard library search path (needed for cross com'+
+  'pile)'#010+
   '**2XD_try to link units dynamic          (defines FPC_LINK_DYNAMIC)'#010+
-  '**2XP<x>_prepend the binutils names with the prefix <x>'#010+
+  '*','*2XP<x>_prepend the binutils names with the prefix <x>'#010+
   '**2Xr<x>_set library search path to <x> (needed for cross compile)'#010+
-  '**2Xs','_strip all symbols from executable'#010+
+  '**2Xs_strip all symbols from executable'#010+
   '**2XS_try to link units static (default) (defines FPC_LINK_STATIC)'#010+
-  '**2Xt_link with static libraries (-static is passed to linker)'#010+
+  '**2Xt_link ','with static libraries (-static is passed to linker)'#010+
   '**2XX_try to link units smart            (defines FPC_LINK_SMART)'#010+
   '**1*_'#010+
-  '**1','?_shows this help'#010+
+  '**1?_shows this help'#010+
   '**1h_shows this help without waiting'#000
 );

+ 3 - 1
compiler/options.pas

@@ -682,7 +682,9 @@ begin
                    autoloadunits:=more;
                  'c' :
                    begin
-                     if not(cpavailable(more)) then
+                     if (upper(more)='UTF8') or (upper(more)='UTF-8') then
+                        initsourcecodepage:='utf8'
+                     else if not(cpavailable(more)) then
                        Message1(option_code_page_not_available,more)
                      else
                        initsourcecodepage:=more;

+ 3 - 1
compiler/scandir.pas

@@ -1060,7 +1060,9 @@ implementation
           begin
              current_scanner.skipspace;
              s:=current_scanner.readcomment;
-             if not(cpavailable(s)) then
+             if (upper(s)='UTF8') or (upper(s)='UTF-8') then
+               aktsourcecodepage:='utf8'
+             else if not(cpavailable(s)) then
                Message1(option_code_page_not_available,s)
              else
                aktsourcecodepage:=s;

+ 56 - 1
compiler/scanner.pas

@@ -1434,6 +1434,17 @@ implementation
               { first line? }
                 if line_no=0 then
                  begin
+                   c:=inputpointer^;
+                   { eat utf-8 signature? }
+                   if (ord(inputpointer^)=$ef) and
+                     (ord((inputpointer+1)^)=$bb) and
+                     (ord((inputpointer+2)^)=$bf) then
+                     begin
+                       inc(inputpointer,3);
+                       message(scan_c_switching_to_utf8);
+                       aktsourcecodepage:='utf8';
+                     end;
+
                    line_no:=1;
                    if cs_asm_source in aktglobalswitches then
                      inputfile.setline(line_no,bufstart);
@@ -2412,6 +2423,7 @@ implementation
         code    : integer;
         len,
         low,high,mid : longint;
+        w : word;
         m       : longint;
         mac     : tmacro;
         asciinr : string[6];
@@ -2928,7 +2940,50 @@ implementation
                                   break;
                                end;
                            end;
-                           if iswidestring then
+                           { interpret as utf-8 string? }
+                           if (ord(c)>=$80) and (aktsourcecodepage='utf8') then
+                             begin
+                               { convert existing string to an utf-8 string }
+                               if not iswidestring then
+                                 begin
+                                   ascii2unicode(@pattern[1],len,patternw);
+                                   iswidestring:=true;
+                                   len:=0;
+                                 end;
+                               { four or more chars aren't handled }
+                               if (ord(c) and $f0)=$f0 then
+                                 message(scan_e_utf8_bigger_than_65535)
+                               { three chars }
+                               else if (ord(c) and $e0)=$e0 then
+                                 begin
+                                   w:=ord(c) and $f;
+                                   readchar;
+                                   if (ord(c) and $c0)<>$80 then
+                                     message(scan_e_utf8_malformed);
+                                   w:=(w shl 6) or (ord(c) and $3f);
+                                   readchar;
+                                   if (ord(c) and $c0)<>$80 then
+                                     message(scan_e_utf8_malformed);
+                                   w:=(w shl 6) or (ord(c) and $3f);
+                                   concatwidestringchar(patternw,w);
+                                 end
+                               { two chars }
+                               else if (ord(c) and $c0)<>0 then
+                                 begin
+                                   w:=ord(c) and $1f;
+                                   readchar;
+                                   if (ord(c) and $c0)<>$80 then
+                                     message(scan_e_utf8_malformed);
+                                   w:=(w shl 6) or (ord(c) and $3f);
+                                   concatwidestringchar(patternw,w);
+                                 end
+                               { illegal }
+                               else if (ord(c) and $80)<>0 then
+                                 message(scan_e_utf8_malformed)
+                               else
+                                 concatwidestringchar(patternw,tcompilerwidechar(c))
+                             end
+                           else if iswidestring then
                              concatwidestringchar(patternw,asciichar2unicode(c))
                            else
                              begin

+ 6 - 0
tests/test/tutf81.pp

@@ -0,0 +1,6 @@
+var
+  w : widestring;
+begin
+  w:='äüö';
+  writeln(w);
+end.

+ 10 - 0
tests/test/tutf82.pp

@@ -0,0 +1,10 @@
+var
+  w : widestring;
+begin
+  w:='äüö';
+  if (ord(w[1])<>$e4) or
+    (ord(w[2])<>$fc) or
+    (ord(w[3])<>$f6) then
+    halt(1);
+  writeln('ok');
+end.