Forráskód Böngészése

* new message files layout with msg numbers (but still no code to
show the number on the screen)

peter 25 éve
szülő
commit
957d4cdc89

+ 6 - 2
compiler/compiler.pas

@@ -242,7 +242,7 @@ function Compile(const cmd:string):longint;
 {$maxfpuregisters 0}
 {$endif fpc}
 
-  procedure writepathlist(w:tmsgconst;l:TSearchPathList);
+  procedure writepathlist(w:longint;l:TSearchPathList);
   var
     hp : pstringqueueitem;
   begin
@@ -355,7 +355,11 @@ end;
 end.
 {
   $Log$
-  Revision 1.50  2000-05-29 10:04:40  pierre
+  Revision 1.51  2000-06-30 20:23:33  peter
+    * new message files layout with msg numbers (but still no code to
+      show the number on the screen)
+
+  Revision 1.50  2000/05/29 10:04:40  pierre
     * New bunch of Gabor changes
 
   Revision 1.49  2000/05/03 16:31:22  pierre

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 234 - 234
compiler/errord.msg


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 232 - 232
compiler/errore.msg


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 323 - 204
compiler/errores.msg


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 242 - 236
compiler/errorf.msg


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 224 - 415
compiler/errorn.msg


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 587 - 231
compiler/errorr.msg


+ 21 - 17
compiler/hcodegen.pas

@@ -141,14 +141,14 @@ implementation
        make_const_global : boolean;
 
     { message calls with codegenerror support }
-    procedure cgmessage(t : tmsgconst);
-    procedure cgmessage1(t : tmsgconst;const s : string);
-    procedure cgmessage2(t : tmsgconst;const s1,s2 : string);
-    procedure cgmessage3(t : tmsgconst;const s1,s2,s3 : string);
-    procedure CGMessagePos(const pos:tfileposinfo;t:tmsgconst);
-    procedure CGMessagePos1(const pos:tfileposinfo;t:tmsgconst;const s1:string);
-    procedure CGMessagePos2(const pos:tfileposinfo;t:tmsgconst;const s1,s2:string);
-    procedure CGMessagePos3(const pos:tfileposinfo;t:tmsgconst;const s1,s2,s3:string);
+    procedure cgmessage(t : longint);
+    procedure cgmessage1(t : longint;const s : string);
+    procedure cgmessage2(t : longint;const s1,s2 : string);
+    procedure cgmessage3(t : longint;const s1,s2,s3 : string);
+    procedure CGMessagePos(const pos:tfileposinfo;t:longint);
+    procedure CGMessagePos1(const pos:tfileposinfo;t:longint;const s1:string);
+    procedure CGMessagePos2(const pos:tfileposinfo;t:longint;const s1,s2:string);
+    procedure CGMessagePos3(const pos:tfileposinfo;t:longint;const s1,s2,s3:string);
 
     { initialize respectively terminates the code generator }
     { for a new module or procedure                      }
@@ -176,7 +176,7 @@ implementation
             override the message calls to set codegenerror
 *****************************************************************************}
 
-    procedure cgmessage(t : tmsgconst);
+    procedure cgmessage(t : longint);
       var
          olderrorcount : longint;
       begin
@@ -188,7 +188,7 @@ implementation
            end;
       end;
 
-    procedure cgmessage1(t : tmsgconst;const s : string);
+    procedure cgmessage1(t : longint;const s : string);
       var
          olderrorcount : longint;
       begin
@@ -200,7 +200,7 @@ implementation
            end;
       end;
 
-    procedure cgmessage2(t : tmsgconst;const s1,s2 : string);
+    procedure cgmessage2(t : longint;const s1,s2 : string);
       var
          olderrorcount : longint;
       begin
@@ -212,7 +212,7 @@ implementation
            end;
       end;
 
-    procedure cgmessage3(t : tmsgconst;const s1,s2,s3 : string);
+    procedure cgmessage3(t : longint;const s1,s2,s3 : string);
       var
          olderrorcount : longint;
       begin
@@ -225,7 +225,7 @@ implementation
       end;
 
 
-    procedure cgmessagepos(const pos:tfileposinfo;t : tmsgconst);
+    procedure cgmessagepos(const pos:tfileposinfo;t : longint);
       var
          olderrorcount : longint;
       begin
@@ -237,7 +237,7 @@ implementation
            end;
       end;
 
-    procedure cgmessagepos1(const pos:tfileposinfo;t : tmsgconst;const s1 : string);
+    procedure cgmessagepos1(const pos:tfileposinfo;t : longint;const s1 : string);
       var
          olderrorcount : longint;
       begin
@@ -249,7 +249,7 @@ implementation
            end;
       end;
 
-    procedure cgmessagepos2(const pos:tfileposinfo;t : tmsgconst;const s1,s2 : string);
+    procedure cgmessagepos2(const pos:tfileposinfo;t : longint;const s1,s2 : string);
       var
          olderrorcount : longint;
       begin
@@ -261,7 +261,7 @@ implementation
            end;
       end;
 
-    procedure cgmessagepos3(const pos:tfileposinfo;t : tmsgconst;const s1,s2,s3 : string);
+    procedure cgmessagepos3(const pos:tfileposinfo;t : longint;const s1,s2,s3 : string);
       var
          olderrorcount : longint;
       begin
@@ -450,7 +450,11 @@ end.
 
 {
   $Log$
-  Revision 1.59  2000-06-01 19:09:57  peter
+  Revision 1.60  2000-06-30 20:23:36  peter
+    * new message files layout with msg numbers (but still no code to
+      show the number on the screen)
+
+  Revision 1.59  2000/06/01 19:09:57  peter
     * made resourcestrings OOP so it's easier to handle it per module
 
   Revision 1.58  2000/04/02 18:30:12  florian

+ 228 - 101
compiler/messages.pas

@@ -23,51 +23,97 @@
 unit Messages;
 interface
 
+const
+  maxmsgidxparts = 20;
+
 type
   ppchar=^pchar;
 
+  TArrayOfPChar = array[0..1000] of pchar;
+  PArrayOfPChar = ^TArrayOfPChar;
+
   PMessage=^TMessage;
   TMessage=object
     msgfilename : string;
     msgallocsize,
     msgsize,
-    msgcrc,
+    msgparts,
     msgs        : longint;
     msgtxt      : pchar;
-    msgidx      : ppchar;
-    constructor Init(p:pointer;n:longint);
-    constructor InitExtern(const fn:string;n:longint);
-    destructor Done;
+    msgidx      : array[1..maxmsgidxparts] of PArrayOfPChar;
+    msgidxmax   : array[1..maxmsgidxparts] of longint;
+    constructor Init(n:longint;const idxmax:array of longint);
+    destructor  Done;
+    function  LoadIntern(p:pointer;n:longint):boolean;
+    function  LoadExtern(const fn:string):boolean;
     procedure CreateIdx;
-    function Get(nr:longint):string;
-    function Get3(nr:longint;const s1,s2,s3:string):string;
-    function Get2(nr:longint;const s1,s2:string):string;
-    function Get1(nr:longint;const s1:string):string;
+    function  GetPChar(nr:longint):pchar;
+    function  Get(nr:longint):string;
+    function  Get3(nr:longint;const s1,s2,s3:string):string;
+    function  Get2(nr:longint;const s1,s2:string):string;
+    function  Get1(nr:longint;const s1:string):string;
   end;
 
+{ this will read a line until #10 or #0 and also increase p }
+function GetMsgLine(var p:pchar):string;
+
+
 implementation
 
 uses
   globals,crc,
-  verbose,
 {$ifdef DELPHI}
   sysutils;
 {$else DELPHI}
   strings;
 {$endif DELPHI}
 
-constructor TMessage.Init(p:pointer;n:longint);
+constructor TMessage.Init(n:longint;const idxmax:array of longint);
+var
+  i : longint;
+begin
+  msgtxt:=nil;
+  msgsize:=0;
+  msgparts:=n;
+  if n<>high(idxmax)+1 then
+   fail;
+  for i:=1to n do
+   begin
+     msgidxmax[i]:=idxmax[i-1];
+     getmem(msgidx[i],msgidxmax[i]*4);
+     fillchar(msgidx[i]^,msgidxmax[i]*4,0);
+   end;
+end;
+
+
+destructor TMessage.Done;
+var
+  i : longint;
+begin
+  for i:=1to msgparts do
+   freemem(msgidx[i],msgidxmax[i]*4);
+  if msgallocsize>0 then
+   begin
+     freemem(msgtxt,msgsize);
+     msgallocsize:=0;
+   end;
+  msgtxt:=nil;
+  msgsize:=0;
+  msgparts:=0;
+end;
+
+
+function TMessage.LoadIntern(p:pointer;n:longint):boolean;
 begin
   msgtxt:=pchar(p);
+  msgsize:=n;
   msgallocsize:=0;
-  msgsize:=0;
-  msgcrc:=MsgCrcValue;
-  msgs:=n;
   CreateIdx;
+  LoadIntern:=true;
 end;
 
 
-constructor TMessage.InitExtern(const fn:string;n:longint);
+function TMessage.LoadExtern(const fn:string):boolean;
 
 {$ifndef FPC}
   procedure readln(var t:text;var s:string);
@@ -96,61 +142,99 @@ const
   bufsize=8192;
 var
   f       : text;
-{$ifdef DEBUGCRC}
-  f2 : text;
-{$endif DEBUGCRC}
-  msgsread,
-  line,i,crc  : longint;
+  error,multiline : boolean;
+  code : word;
+  numpart,numidx,
+  line,i,j,num : longint;
   ptxt    : pchar;
+  number,
   s,s1    : string;
   buf     : pointer;
+
+  procedure err(const msgstr:string);
+  begin
+    writeln('error in line ',line,': ',msgstr);
+    error:=true;
+  end;
+
 begin
-  crc:=longint($ffffffff);
+  LoadExtern:=false;
   getmem(buf,bufsize);
 {Read the message file}
   assign(f,fn);
-{$ifdef DEBUGCRC}
-  assign(f2,'crcmsg.tst');
-  rewrite(f2);
-  Writeln(f2,crc);
-{$endif DEBUGCRC}
   {$I-}
    reset(f);
   {$I+}
   if ioresult<>0 then
    begin
      WriteLn('*** message file '+fn+' not found ***');
-     fail;
+     exit;
    end;
   settextbuf(f,buf^,bufsize);
 { First parse the file and count bytes needed }
+  error:=false;
   line:=0;
-  msgs:=n;
+  multiline:=false;
   msgsize:=0;
-  msgsread:=0;
   while not eof(f) do
    begin
      readln(f,s);
      inc(line);
-     if (s<>'') and not(s[1] in ['#',';','%']) then
+     if multiline then
       begin
-        i:=pos('=',s);
-        if i>0 then
-         begin
-           inc(msgsize,length(s)-i+1);
-           inc(msgsread);
-         end
+        if s=']' then
+         multiline:=false
         else
-         writeln('error in line: ',line,' skipping');
+         inc(msgsize,length(s)+1); { +1 for linebreak }
+      end
+     else
+      begin
+        if (s<>'') and not(s[1] in ['#',';','%']) then
+         begin
+           i:=pos('=',s);
+           if i>0 then
+            begin
+              j:=i+1;
+              if not(s[j] in ['0'..'9']) then
+               err('no number found')
+              else
+               begin
+                 while (s[j] in ['0'..'9']) do
+                  inc(j);
+               end;
+              if j-i-1<>5 then
+               err('number length is not 5');
+              number:=Copy(s,i+1,j-i-1);
+              { update the max index }
+              val(number,num,code);
+              numpart:=num div 1000;
+              numidx:=num mod 1000;
+              { check range }
+              if numpart > msgparts then
+               err('number is to large')
+              else
+               if numidx >= msgidxmax[numpart] then
+                err('index is to large');
+              if s[j+1]='[' then
+               begin
+                 inc(msgsize,j-i);
+                 multiline:=true
+               end
+              else
+               inc(msgsize,length(s)-i+1);
+            end
+           else
+            err('no = found');
+         end;
       end;
    end;
-{ check amount of messages }
-  if msgsread<>msgs then
+  if multiline then
+   err('still in multiline mode');
+  if error then
    begin
-     WriteLn('*** message file '+fn+' is corrupt: read ',msgsread,' of ',msgs,' msgs ***');
-     close(f);
      freemem(buf,bufsize);
-     fail;
+     close(f);
+     exit;
    end;
 { now read the buffer in mem }
   msgallocsize:=msgsize;
@@ -160,84 +244,126 @@ begin
   while not eof(f) do
    begin
      readln(f,s);
-     if (s<>'') and not(s[1] in ['#',';','%']) then
+     if multiline then
       begin
-        i:=pos('=',s);
-        if i>0 then
+        if s=']' then
          begin
-           {txt}
-           s1:=Copy(s,i+1,255);
-           { support <lf> for empty lines }
-           if s1='<lf>' then
-            begin
-              s1:='';
-              { update the msgsize also! }
-              dec(msgsize,4);
-            end;
-           {txt}
-           move(s1[1],ptxt^,length(s1));
-           inc(ptxt,length(s1));
+           multiline:=false;
+           { overwrite last eol }
+           dec(ptxt);
            ptxt^:=#0;
            inc(ptxt);
-           s1:=upper(copy(s,1,i-1));
-           crc:=UpdateCRC32(crc,s1[1],length(s1));
-{$ifdef DEBUGCRC}
-           Writeln(f2,s1);
-           Writeln(f2,crc);
-{$endif DEBUGCRC}
+         end
+        else
+         begin
+           move(s[1],ptxt^,length(s));
+           inc(ptxt,length(s));
+           ptxt^:=#10;
+           inc(ptxt);
+         end;
+      end
+     else
+      begin
+        if (s<>'') and not(s[1] in ['#',';','%']) then
+         begin
+           i:=pos('=',s);
+           if i>0 then
+            begin
+              j:=i+1;
+              while (s[j] in ['0'..'9']) do
+               inc(j);
+              { multiline start then no txt }
+              if s[j+1]='[' then
+               begin
+                 s1:=Copy(s,i+1,j-i);
+                 move(s1[1],ptxt^,length(s1));
+                 inc(ptxt,length(s1));
+                 multiline:=true;
+               end
+              else
+               begin
+                 { txt including number }
+                 s1:=Copy(s,i+1,255);
+                 move(s1[1],ptxt^,length(s1));
+                 inc(ptxt,length(s1));
+                 ptxt^:=#0;
+                 inc(ptxt);
+               end;
+            end;
          end;
       end;
    end;
   close(f);
-{$ifdef DEBUGCRC}
-  close(f2);
-{$endif DEBUGCRC}
   freemem(buf,bufsize);
-{ check amount of messages }
-  if (MsgCrcValue<>0) and (crc<>MsgCrcValue) then
-   begin
-     WriteLn('*** message file '+fn+' is incompatible : wrong CRC value ***');
-     fail;
-   end;
 { now we can create the index }
   CreateIdx;
+  LoadExtern:=true;
 end;
 
 
-
-destructor TMessage.Done;
+procedure TMessage.CreateIdx;
+var
+  hp1,
+  hp,hpend : pchar;
+  code : word;
+  num  : longint;
+  number : string[5];
+  i   : longint;
+  numpart,numidx : longint;
 begin
-  if assigned(msgidx) then
-   begin
-     freemem(msgidx,msgs shl 2);
-     msgidx:=nil;
-   end;
-  if msgallocsize>0 then
+  { clear }
+  for i:=1to msgparts do
+   fillchar(msgidx[i]^,msgidxmax[i]*4,0);
+  { process msgtxt buffer }
+  number:='00000';
+  hp:=msgtxt;
+  hpend:=@msgtxt[msgsize];
+  while (hp<hpend) do
    begin
-     freemem(msgtxt,msgallocsize);
-     msgtxt:=nil;
-     msgallocsize:=0;
+     hp1:=hp;
+     for i:=1to 5 do
+      begin
+        number[i]:=hp1^;
+        inc(hp1);
+      end;
+     val(number,num,code);
+     numpart:=num div 1000;
+     numidx:=num mod 1000;
+     { skip _ }
+     inc(hp1);
+     { put the address in the idx, the numbers are already checked }
+     msgidx[numpart]^[numidx]:=hp1;
+     { next string }
+     hp:=pchar(@hp[strlen(hp)+1]);
    end;
 end;
 
 
-procedure TMessage.CreateIdx;
+function GetMsgLine(var p:pchar):string;
 var
-  hp  : pchar;
-  hpl : ppchar;
-  n   : longint;
+  i  : longint;
 begin
-  getmem(msgidx,msgs shl 2);
-  hpl:=msgidx;
-  hp:=msgtxt;
-  n:=0;
-  while (n<msgs) do
+  i:=0;
+  while not(p^ in [#0,#10]) and (i<255) do
    begin
-     hpl^:=hp;
-     hpl:=pointer(longint(hpl)+4);
-     inc(n);
-     hp:=pchar(@hp[strlen(hp)+1]);
+     inc(i);
+     GetMsgLine[i]:=p^;
+     inc(p);
    end;
+  { skip #10 }
+  if p^=#10 then
+   inc(p);
+  { if #0 then set p to nil }
+  if p^=#0 then
+   p:=nil;
+  { return string }
+  GetMsgLine[0]:=chr(i);
+end;
+
+
+function TMessage.GetPChar(nr:longint):pchar;
+begin
+  GetPChar:=msgidx[nr div 1000]^[nr mod 1000];
 end;
 
 
@@ -246,10 +372,7 @@ var
   s : string[16];
   hp : pchar;
 begin
-  if msgidx=nil then
-   hp:=nil
-  else
-   hp:=pchar(pointer(longint(msgidx)+nr shl 2)^);
+  hp:=msgidx[nr div 1000]^[nr mod 1000];
   if hp=nil then
    begin
      Str(nr,s);
@@ -306,7 +429,11 @@ end;
 end.
 {
   $Log$
-  Revision 1.15  2000-06-18 18:14:21  peter
+  Revision 1.16  2000-06-30 20:23:36  peter
+    * new message files layout with msg numbers (but still no code to
+      show the number on the screen)
+
+  Revision 1.15  2000/06/18 18:14:21  peter
     * only replace the $1,$2,$3 once, so it doesn't loop when the
       value to replace with contains $1,$2 or $3
 

+ 544 - 702
compiler/msgidx.inc

@@ -1,703 +1,545 @@
-type tmsgconst=(
-  general_t_compilername,
-  general_d_sourceos,
-  general_i_targetos,
-  general_t_exepath,
-  general_t_unitpath,
-  general_t_includepath,
-  general_t_librarypath,
-  general_t_objectpath,
-  general_i_abslines_compiled,
-  general_f_no_memory_left,
-  general_i_writingresourcefile,
-  general_e_errorwritingresourcefile,
-  scan_f_end_of_file,
-  scan_f_string_exceeds_line,
-  scan_f_illegal_char,
-  scan_f_syn_expected,
-  scan_t_start_include_file,
-  scan_w_comment_level,
-  scan_n_far_directive_ignored,
-  scan_n_stack_check_global_under_linux,
-  scan_n_ignored_switch,
-  scan_w_illegal_switch,
-  scan_w_switch_is_global,
-  scan_e_illegal_char_const,
-  scan_f_cannot_open_input,
-  scan_f_cannot_open_includefile,
-  scan_e_too_much_endifs,
-  scan_w_only_pack_records,
-  scan_w_only_pack_enum,
-  scan_e_endif_expected,
-  scan_e_preproc_syntax_error,
-  scan_e_error_in_preproc_expr,
-  scan_w_macro_cut_after_255_chars,
-  scan_e_endif_without_if,
-  scan_f_user_defined,
-  scan_e_user_defined,
-  scan_w_user_defined,
-  scan_n_user_defined,
-  scan_h_user_defined,
-  scan_i_user_defined,
-  scan_e_keyword_cant_be_a_macro,
-  scan_f_macro_buffer_overflow,
-  scan_w_macro_deep_ten,
-  scan_e_wrong_styled_switch,
-  scan_d_handling_switch,
-  scan_c_endif_found,
-  scan_c_ifdef_found,
-  scan_c_ifopt_found,
-  scan_c_if_found,
-  scan_c_ifndef_found,
-  scan_c_else_found,
-  scan_c_skipping_until,
-  scan_i_press_enter,
-  scan_w_unsupported_switch,
-  scan_w_illegal_directive,
-  scan_t_back_in,
-  scan_w_unsupported_app_type,
-  scan_w_app_type_not_support,
-  scan_w_decription_not_support,
-  scan_n_version_not_support,
-  scan_n_only_exe_version,
-  scan_w_wrong_version_ignored,
-  scan_w_unsupported_asmmode_specifier,
-  scan_w_no_asm_reader_switch_inside_asm,
-  scan_e_wrong_switch_toggle,
-  scan_e_resourcefiles_not_supported,
-  scan_w_include_env_not_found,
-  scan_e_invalid_maxfpureg_value,
-  scan_w_only_one_resourcefile_supported,
-  parser_e_syntax_error,
-  parser_w_proc_far_ignored,
-  parser_w_proc_near_ignored,
-  parser_w_proc_interrupt_ignored,
-  parser_e_dont_nest_interrupt,
-  parser_w_proc_directive_ignored,
-  parser_e_no_overload_for_all_procs,
-  parser_e_no_dll_file_specified,
-  parser_e_export_name_double,
-  parser_e_export_ordinal_double,
-  parser_e_export_invalid_index,
-  parser_w_parser_reloc_no_debug,
-  parser_w_parser_win32_debug_needs_WN,
-  parser_e_constructorname_must_be_init,
-  parser_e_destructorname_must_be_done,
-  parser_e_illegal_open_parameter,
-  parser_e_proc_inline_not_supported,
-  parser_w_priv_meth_not_virtual,
-  parser_w_constructor_should_be_public,
-  parser_w_destructor_should_be_public,
-  parser_n_only_one_destructor,
-  parser_e_no_local_objects,
-  parser_f_no_anonym_objects,
-  parser_object_has_no_vmt,
-  parser_e_illegal_parameter_list,
-  parser_e_wrong_parameter_type,
-  parser_e_wrong_parameter_size,
-  parser_e_overloaded_no_procedure,
-  parser_e_overloaded_have_same_parameters,
-  parser_e_header_dont_match_forward,
-  parser_e_header_different_var_names,
-  parser_n_duplicate_enum,
-  parser_n_interface_name_diff_implementation_name,
-  parser_e_no_with_for_variable_in_other_segments,
-  parser_e_too_much_lexlevel,
-  parser_e_range_check_error,
-  parser_w_range_check_error,
-  parser_e_double_caselabel,
-  parser_e_case_lower_less_than_upper_bound,
-  parser_e_type_const_not_possible,
-  parser_e_no_overloaded_procvars,
-  parser_e_invalid_string_size,
-  parser_w_use_extended_syntax_for_objects,
-  parser_w_no_new_dispose_on_void_pointers,
-  parser_e_no_new_dispose_on_void_pointers,
-  parser_e_class_id_expected,
-  parser_e_no_type_not_allowed_here,
-  parser_e_methode_id_expected,
-  parser_e_header_dont_match_any_member,
-  parser_p_procedure_start,
-  parser_e_error_in_real,
-  parser_e_fail_only_in_constructor,
-  parser_e_no_paras_for_destructor,
-  parser_e_only_class_methods_via_class_ref,
-  parser_e_only_class_methods,
-  parser_e_case_mismatch,
-  parser_e_illegal_symbol_exported,
-  parser_w_should_use_override,
-  parser_e_nothing_to_be_overridden,
-  parser_e_no_procedure_to_access_property,
-  parser_w_stored_not_implemented,
-  parser_e_ill_property_access_sym,
-  parser_e_cant_access_protected_member,
-  parser_e_cant_access_private_member,
-  parser_w_overloaded_are_not_both_virtual,
-  parser_w_overloaded_are_not_both_non_virtual,
-  parser_e_overloaded_methodes_not_same_ret,
-  parser_e_dont_nest_export,
-  parser_e_methods_dont_be_export,
-  parser_e_call_by_ref_without_typeconv,
-  parser_e_no_super_class,
-  parser_e_self_not_in_method,
-  parser_e_generic_methods_only_in_methods,
-  parser_e_illegal_colon_qualifier,
-  parser_e_illegal_set_expr,
-  parser_e_pointer_to_class_expected,
-  parser_e_expr_have_to_be_constructor_call,
-  parser_e_expr_have_to_be_destructor_call,
-  parser_e_invalid_record_const,
-  parser_e_false_with_expr,
-  parser_e_void_function,
-  parser_e_constructors_always_objects,
-  parser_e_operator_not_overloaded,
-  parser_e_no_such_assignment,
-  parser_e_overload_impossible,
-  parser_e_no_reraise_possible,
-  parser_e_no_new_or_dispose_for_classes,
-  parser_e_asm_incomp_with_function_return,
-  parser_e_procedure_overloading_is_off,
-  parser_e_overload_operator_failed,
-  parser_e_comparative_operator_return_boolean,
-  parser_e_only_virtual_methods_abstract,
-  parser_f_unsupported_feature,
-  parser_e_mix_of_classes_and_objects,
-  parser_w_unknown_proc_directive_ignored,
-  parser_e_absolute_only_one_var,
-  parser_e_absolute_only_to_var_or_const,
-  parser_e_initialized_only_one_var,
-  parser_e_abstract_no_definition,
-  parser_e_overloaded_must_be_all_global,
-  parser_w_virtual_without_constructor,
-  parser_m_macro_defined,
-  parser_m_macro_undefined,
-  parser_m_macro_set_to,
-  parser_i_compiling,
-  parser_u_parsing_interface,
-  parser_u_parsing_implementation,
-  parser_d_compiling_second_time,
-  parser_e_no_paras_allowed,
-  parser_e_no_property_found_to_override,
-  parser_e_only_one_default_property,
-  parser_e_property_need_paras,
-  parser_e_constructor_cannot_be_not_virtual,
-  parser_e_no_default_property_available,
-  parser_e_cant_have_published,
-  parser_e_forward_declaration_must_be_resolved,
-  parser_e_no_local_operator,
-  parser_e_proc_dir_not_allowed_in_interface,
-  parser_e_proc_dir_not_allowed_in_implementation,
-  parser_e_proc_dir_not_allowed_in_procvar,
-  parser_e_function_already_declared_public_forward,
-  parser_e_not_external_and_export,
-  parser_e_name_keyword_expected,
-  parser_w_not_supported_for_inline,
-  parser_w_inlining_disabled,
-  parser_i_writing_browser_log,
-  parser_h_maybe_deref_caret_missing,
-  parser_f_assembler_reader_not_supported,
-  parser_e_proc_dir_conflict,
-  parser_e_call_convention_dont_match_forward,
-  parser_e_register_calling_not_supported,
-  parser_e_property_cant_have_a_default_value,
-  parser_e_property_default_value_must_const,
-  parser_e_cant_publish_that,
-  parser_e_cant_publish_that_property,
-  parser_w_empty_import_name,
-  parser_e_empty_import_name,
-  parser_e_used_proc_name_changed,
-  parser_e_division_by_zero,
-  parser_e_invalid_float_operation,
-  parser_e_array_lower_less_than_upper_bound,
-  parser_w_string_too_long,
-  parser_e_string_larger_array,
-  parser_e_ill_msg_expr,
-  parser_e_ill_msg_param,
-  parser_e_duplicate_message_label,
-  parser_e_self_in_non_message_handler,
-  parser_e_threadvars_only_sg,
-  parser_f_direct_assembler_not_allowed,
-  parser_w_no_objpas_use_mode,
-  parser_e_no_object_override,
-  parser_e_cant_use_inittable_here,
-  parser_e_resourcestring_only_sg,
-  parser_e_exit_with_argument_not__possible,
-  parser_e_stored_property_must_be_boolean,
-  parser_e_ill_property_storage_sym,
-  parser_e_only_publishable_classes_can__be_published,
-  parser_e_proc_directive_expected,
-  parser_e_invalid_property_index_value,
-  parser_e_procname_to_short_for_export,
-  parser_e_dlltool_unit_var_problem,
-  parser_e_dlltool_unit_var_problem2,
-  type_e_mismatch,
-  type_e_incompatible_types,
-  type_e_not_equal_types,
-  type_e_type_id_expected,
-  type_e_variable_id_expected,
-  type_e_integer_expr_expected,
-  type_e_boolean_expr_expected,
-  type_e_ordinal_expr_expected,
-  type_e_pointer_type_expected,
-  type_e_class_type_expected,
-  type_e_varid_or_typeid_expected,
-  type_e_cant_eval_constant_expr,
-  type_e_set_element_are_not_comp,
-  type_e_set_operation_unknown,
-  type_w_convert_real_2_comp,
-  type_h_use_div_for_int,
-  type_e_strict_var_string_violation,
-  type_e_succ_and_pred_enums_with_assign_not_possible,
-  type_e_cant_read_write_type,
-  type_e_no_readln_writeln_for_typed_file,
-  type_e_no_read_write_for_untyped_file,
-  type_e_typeconflict_in_set,
-  type_w_maybe_wrong_hi_lo,
-  type_e_integer_or_real_expr_expected,
-  type_e_wrong_type_in_array_constructor,
-  type_e_wrong_parameter_type,
-  type_e_no_method_and_procedure_not_compatible,
-  type_e_wrong_math_argument,
-  type_e_no_addr_of_constant,
-  type_e_argument_cant_be_assigned,
-  type_e_cannot_local_proc_to_procvar,
-  type_e_no_assign_to_addr,
-  type_e_no_assign_to_const,
-  sym_e_id_not_found,
-  sym_f_internal_error_in_symtablestack,
-  sym_e_duplicate_id,
-  sym_h_duplicate_id_where,
-  sym_e_unknown_id,
-  sym_e_forward_not_resolved,
-  sym_f_id_already_typed,
-  sym_e_error_in_type_def,
-  sym_e_type_id_not_defined,
-  sym_e_forward_type_not_resolved,
-  sym_e_only_static_in_static,
-  sym_e_invalid_call_tvarsymmangledname,
-  sym_f_type_must_be_rec_or_class,
-  sym_e_no_instance_of_abstract_object,
-  sym_w_label_not_defined,
-  sym_e_label_used_and_not_defined,
-  sym_e_ill_label_decl,
-  sym_e_goto_and_label_not_supported,
-  sym_e_label_not_found,
-  sym_e_id_is_no_label_id,
-  sym_e_label_already_defined,
-  sym_e_ill_type_decl_set,
-  sym_e_class_forward_not_resolved,
-  sym_n_unit_not_used,
-  sym_h_para_identifier_not_used,
-  sym_n_local_identifier_not_used,
-  sym_h_para_identifier_only_set,
-  sym_n_local_identifier_only_set,
-  sym_h_local_symbol_not_used,
-  sym_n_private_identifier_not_used,
-  sym_n_private_identifier_only_set,
-  sym_n_private_method_not_used,
-  sym_e_set_expected,
-  sym_w_function_result_not_set,
-  sym_w_wrong_C_pack,
-  sym_e_illegal_field,
-  sym_n_uninitialized_local_variable,
-  sym_n_uninitialized_variable,
-  sym_e_id_no_member,
-  sym_b_param_list,
-  sym_e_segment_too_large,
-  cg_e_break_not_allowed,
-  cg_e_continue_not_allowed,
-  cg_e_too_complex_expr,
-  cg_e_illegal_expression,
-  cg_e_invalid_integer,
-  cg_e_invalid_qualifier,
-  cg_e_upper_lower_than_lower,
-  cg_e_illegal_count_var,
-  cg_e_cant_choose_overload_function,
-  cg_e_parasize_too_big,
-  cg_e_illegal_type_conversion,
-  cg_d_pointer_to_longint_conv_not_portable,
-  cg_e_file_must_call_by_reference,
-  cg_e_cant_use_far_pointer_there,
-  cg_e_var_must_be_reference,
-  cg_e_dont_call_exported_direct,
-  cg_w_member_cd_call_from_method,
-  cg_n_inefficient_code,
-  cg_w_unreachable_code,
-  cg_e_stackframe_with_esp,
-  cg_e_cant_call_abstract_method,
-  cg_f_internal_error_in_getfloatreg,
-  cg_f_unknown_float_type,
-  cg_f_secondvecn_base_defined_twice,
-  cg_f_extended_cg68k_not_supported,
-  cg_f_32bit_not_supported_in_68000,
-  cg_f_internal_error_in_secondinline,
-  cg_d_register_weight,
-  cg_e_stacklimit_in_local_routine,
-  cg_d_stackframe_omited,
-  cg_w_64bit_range_check_not_supported,
-  cg_e_unable_inline_object_methods,
-  cg_e_unable_inline_procvar,
-  cg_e_no_code_for_inline_stored,
-  cg_e_no_call_to_interrupt,
-  cg_e_can_access_element_zero,
-  cg_e_include_not_implemented,
-  cg_e_cannot_call_cons_dest_inside_with,
-  cg_e_cannot_call_message_direct,
-  cg_e_goto_inout_of_exception_block,
-  cg_e_control_flow_outside_finally,
-  asmr_d_start_reading,
-  asmr_d_finish_reading,
-  asmr_e_none_label_contain_at,
-  asmr_w_override_op_not_supported,
-  asmr_e_building_record_offset,
-  asmr_e_offset_without_identifier,
-  asmr_e_type_without_identifier,
-  asmr_e_no_local_or_para_allowed,
-  asmr_e_need_offset,
-  asmr_e_need_dollar,
-  asmr_e_cant_have_multiple_relocatable_symbols,
-  asmr_e_only_add_relocatable_symbol,
-  asmr_e_invalid_constant_expression,
-  asmr_e_relocatable_symbol_not_allowed,
-  asmr_e_invalid_reference_syntax,
-  asmr_e_local_para_unreachable,
-  asmr_e_local_label_not_allowed_as_ref,
-  asmr_e_wrong_base_index,
-  asmr_w_possible_object_field_bug,
-  asmr_e_wrong_scale_factor,
-  asmr_e_multiple_index,
-  asmr_e_invalid_operand_type,
-  asmr_e_invalid_string_as_opcode_operand,
-  asmr_w_CODE_and_DATA_not_supported,
-  asmr_e_null_label_ref_not_allowed,
-  asmr_e_expr_zero_divide,
-  asmr_e_expr_illegal,
-  asmr_e_escape_seq_ignored,
-  asmr_e_invalid_symbol_ref,
-  asmr_w_fwait_emu_prob,
-  asmr_w_fadd_to_faddp,
-  asmr_w_enter_not_supported_by_linux,
-  asmr_w_calling_overload_func,
-  asmr_e_unsupported_symbol_type,
-  asmr_e_constant_out_of_bounds,
-  asmr_e_error_converting_decimal,
-  asmr_e_error_converting_octal,
-  asmr_e_error_converting_binary,
-  asmr_e_error_converting_hexadecimal,
-  asmr_h_direct_global_to_mangled,
-  asmr_w_direct_global_is_overloaded_func,
-  asmr_e_cannot_use_SELF_outside_a_method,
-  asmr_e_cannot_use_OLDEBP_outside_nested_procedure,
-  asmr_e_void_function,
-  asmr_e_SEG_not_supported,
-  asmr_e_size_suffix_and_dest_dont_match,
-  asmr_w_size_suffix_and_dest_dont_match,
-  asmr_e_syntax_error,
-  asmr_e_invalid_opcode_and_operand,
-  asmr_e_syn_operand,
-  asmr_e_syn_constant,
-  asmr_e_invalid_string_expression,
-  asmr_w_const32bit_for_address,
-  asmr_e_unknown_opcode,
-  asmr_e_invalid_or_missing_opcode,
-  asmr_e_invalid_prefix_and_opcode,
-  asmr_e_invalid_override_and_opcode,
-  asmr_e_too_many_operands,
-  asmr_w_near_ignored,
-  asmr_w_far_ignored,
-  asmr_e_dup_local_sym,
-  asmr_e_unknown_local_sym,
-  asmr_e_unknown_label_identifier,
-  asmr_e_invalid_register,
-  asmr_e_invalid_fpu_register,
-  asmr_e_nor_not_supported,
-  asmr_w_modulo_not_supported,
-  asmr_e_invalid_float_const,
-  asmr_e_invalid_float_expr,
-  asmr_e_wrong_sym_type,
-  asmr_e_cannot_index_relative_var,
-  asmr_e_invalid_seg_override,
-  asmr_w_id_supposed_external,
-  asmr_e_string_not_allowed_as_const,
-  asmr_e_no_var_type_specified,
-  asmr_w_assembler_code_not_returned_to_text,
-  asmr_e_not_directive_or_local_symbol,
-  asmr_w_using_defined_as_local,
-  asmr_e_dollar_without_identifier,
-  asmr_w_32bit_const_for_address,
-  asmr_n_align_is_target_specific,
-  asmr_e_cannot_access_field_directly_for_parameters,
-  asmr_e_cannot_access_object_field_directly,
-  asmw_f_too_many_asm_files,
-  asmw_f_assembler_output_not_supported,
-  asmw_f_comp_not_supported,
-  asmw_f_direct_not_supported,
-  asmw_e_alloc_data_only_in_bss,
-  asmw_f_no_binary_writer_selected,
-  asmw_e_opcode_not_in_table,
-  asmw_e_invalid_opcode_and_operands,
-  asmw_e_16bit_not_supported,
-  asmw_e_invalid_effective_address,
-  asmw_e_immediate_or_reference_expected,
-  asmw_e_value_exceeds_bounds,
-  asmw_e_short_jmp_out_of_range,
-  asmw_e_undefined_label,
-  exec_w_source_os_redefined,
-  exec_i_assembling_pipe,
-  exec_d_cant_create_asmfile,
-  exec_e_cant_create_objectfile,
-  exec_e_cant_create_archivefile,
-  exec_w_assembler_not_found,
-  exec_t_using_assembler,
-  exec_w_error_while_assembling,
-  exec_w_cant_call_assembler,
-  exec_i_assembling,
-  exec_i_assembling_smart,
-  exec_w_objfile_not_found,
-  exec_w_libfile_not_found,
-  exec_w_error_while_linking,
-  exec_w_cant_call_linker,
-  exec_i_linking,
-  exec_w_util_not_found,
-  exec_t_using_util,
-  exec_e_exe_not_supported,
-  exec_e_dll_not_supported,
-  exec_i_closing_script,
-  exec_w_res_not_found,
-  exec_i_compilingresource,
-  execinfo_f_cant_process_executable,
-  execinfo_f_cant_open_executable,
-  execinfo_x_codesize,
-  execinfo_x_initdatasize,
-  execinfo_x_uninitdatasize,
-  execinfo_x_stackreserve,
-  execinfo_x_stackcommit,
-  unit_t_unitsearch,
-  unit_t_ppu_loading,
-  unit_u_ppu_name,
-  unit_u_ppu_flags,
-  unit_u_ppu_crc,
-  unit_u_ppu_time,
-  unit_u_ppu_file_too_short,
-  unit_u_ppu_invalid_header,
-  unit_u_ppu_invalid_version,
-  unit_u_ppu_invalid_processor,
-  unit_u_ppu_invalid_target,
-  unit_u_ppu_source,
-  unit_u_ppu_write,
-  unit_f_ppu_cannot_write,
-  unit_f_ppu_read_error,
-  unit_f_ppu_read_unexpected_end,
-  unit_f_ppu_invalid_entry,
-  unit_f_ppu_dbx_count_problem,
-  unit_e_illegal_unit_name,
-  unit_f_too_much_units,
-  unit_f_circular_unit_reference,
-  unit_f_cant_compile_unit,
-  unit_f_cant_find_ppu,
-  unit_w_unit_name_error,
-  unit_f_unit_name_error,
-  unit_w_switch_us_missed,
-  unit_f_errors_in_unit,
-  unit_u_load_unit,
-  unit_u_recompile_crc_change,
-  unit_u_recompile_source_found_alone,
-  unit_u_recompile_staticlib_is_older,
-  unit_u_recompile_sharedlib_is_older,
-  unit_u_recompile_obj_and_asm_older,
-  unit_u_recompile_obj_older_than_asm,
-  unit_u_start_parse_interface,
-  unit_u_start_parse_implementation,
-  unit_u_second_load_unit,
-  unit_u_check_time,
-  option_usage,
-  option_only_one_source_support,
-  option_def_only_for_os2,
-  option_no_nested_response_file,
-  option_no_source_found,
-  option_no_option_found,
-  option_illegal_para,
-  option_help_pages_para,
-  option_too_many_cfg_files,
-  option_unable_open_file,
-  option_reading_further_from,
-  option_target_is_already_set,
-  option_no_shared_lib_under_dos,
-  option_too_many_ifdef,
-  option_too_many_endif,
-  option_too_less_endif,
-  option_no_debug_support,
-  option_no_debug_support_recompile_fpc,
-  option_obsolete_switch,
-  option_obsolete_switch_use_new,
-  option_switch_bin_to_src_assembler,
-  option_incompatible_asm,
-  option_asm_forced,
-  option_logo_start,
-  option_logo_end,
-  option_info_start,
-  option_info1,
-  option_info2,
-  option_info3,
-  option_info4,
-  option_info5,
-  option_info6,
-  option_info7,
-  option_info8,
-  option_info_end,
-  ol_begin,
-  ol001,
-  ol002,
-  ol003,
-  ol004,
-  ol005,
-  ol006,
-  ol007,
-  ol008,
-  ol009,
-  ol010,
-  ol011,
-  ol012,
-  ol013,
-  ol014,
-  ol015,
-  ol016,
-  ol017,
-  ol018,
-  ol019,
-  ol020,
-  ol021,
-  ol022,
-  ol023,
-  ol024,
-  ol025,
-  ol026,
-  ol027,
-  ol028,
-  ol029,
-  ol030,
-  ol031,
-  ol032,
-  ol033,
-  ol034,
-  ol035,
-  ol036,
-  ol037,
-  ol038,
-  ol039,
-  ol040,
-  ol041,
-  ol042,
-  ol043,
-  ol044,
-  ol045,
-  ol046,
-  ol047,
-  ol048,
-  ol049,
-  ol050,
-  ol051,
-  ol052,
-  ol053,
-  ol054,
-  ol055,
-  ol056,
-  ol057,
-  ol058,
-  ol059,
-  ol060,
-  ol061,
-  ol062,
-  ol063,
-  ol064,
-  ol065,
-  ol066,
-  ol067,
-  ol068,
-  ol069,
-  ol070,
-  ol071,
-  ol072,
-  ol073,
-  ol074,
-  ol075,
-  ol076,
-  ol077,
-  ol078,
-  ol079,
-  ol080,
-  ol081,
-  ol082,
-  ol083,
-  ol084,
-  ol085,
-  ol086,
-  ol087,
-  ol088,
-  ol089,
-  ol090,
-  ol091,
-  ol092,
-  ol093,
-  ol094,
-  ol095,
-  ol096,
-  ol097,
-  ol098,
-  ol099,
-  ol100,
-  ol101,
-  ol102,
-  ol103,
-  ol104,
-  ol105,
-  ol106,
-  ol107,
-  ol108,
-  ol109,
-  ol110,
-  ol111,
-  ol112,
-  ol113,
-  ol114,
-  ol115,
-  ol116,
-  ol117,
-  ol118,
-  ol119,
-  ol120,
-  ol121,
-  ol122,
-  ol123,
-  ol124,
-  ol125,
-  ol126,
-  ol127,
-  ol128,
-  ol129,
-  ol130,
-  ol131,
-  ol132,
-  ol133,
-  ol134,
-  ol135,
-  ol136,
-  ol137,
-  ol138,
-  ol139,
-  ol140,
-  ol141,
-  ol142,
-  ol143,
-  ol144,
-  ol145,
-  ol146,
-  ol147,
-  ol148,
-  ol149,
-  ol150,
-  ol_end,
-endmsgconst
-);
 const
-  MsgCRCValue : longint = 1376339778;
+  general_t_compilername=01000;
+  general_d_sourceos=01001;
+  general_i_targetos=01002;
+  general_t_exepath=01003;
+  general_t_unitpath=01004;
+  general_t_includepath=01005;
+  general_t_librarypath=01006;
+  general_t_objectpath=01007;
+  general_i_abslines_compiled=01008;
+  general_f_no_memory_left=01009;
+  general_i_writingresourcefile=01010;
+  general_e_errorwritingresourcefile=01011;
+  scan_f_end_of_file=02000;
+  scan_f_string_exceeds_line=02001;
+  scan_f_illegal_char=02002;
+  scan_f_syn_expected=02003;
+  scan_t_start_include_file=02004;
+  scan_w_comment_level=02005;
+  scan_n_far_directive_ignored=02006;
+  scan_n_stack_check_global_under_linux=02007;
+  scan_n_ignored_switch=02008;
+  scan_w_illegal_switch=02009;
+  scan_w_switch_is_global=02010;
+  scan_e_illegal_char_const=02011;
+  scan_f_cannot_open_input=02012;
+  scan_f_cannot_open_includefile=02013;
+  scan_e_too_much_endifs=02014;
+  scan_w_only_pack_records=02015;
+  scan_w_only_pack_enum=02016;
+  scan_e_endif_expected=02017;
+  scan_e_preproc_syntax_error=02018;
+  scan_e_error_in_preproc_expr=02019;
+  scan_w_macro_cut_after_255_chars=02020;
+  scan_e_endif_without_if=02021;
+  scan_f_user_defined=02022;
+  scan_e_user_defined=02023;
+  scan_w_user_defined=02024;
+  scan_n_user_defined=02025;
+  scan_h_user_defined=02026;
+  scan_i_user_defined=02027;
+  scan_e_keyword_cant_be_a_macro=02028;
+  scan_f_macro_buffer_overflow=02029;
+  scan_w_macro_deep_ten=02030;
+  scan_e_wrong_styled_switch=02031;
+  scan_d_handling_switch=02032;
+  scan_c_endif_found=02033;
+  scan_c_ifdef_found=02034;
+  scan_c_ifopt_found=02035;
+  scan_c_if_found=02036;
+  scan_c_ifndef_found=02037;
+  scan_c_else_found=02038;
+  scan_c_skipping_until=02039;
+  scan_i_press_enter=02040;
+  scan_w_unsupported_switch=02041;
+  scan_w_illegal_directive=02042;
+  scan_t_back_in=02043;
+  scan_w_unsupported_app_type=02044;
+  scan_w_app_type_not_support=02045;
+  scan_w_decription_not_support=02046;
+  scan_n_version_not_support=02047;
+  scan_n_only_exe_version=02048;
+  scan_w_wrong_version_ignored=02049;
+  scan_w_unsupported_asmmode_specifier=02050;
+  scan_w_no_asm_reader_switch_inside_asm=02051;
+  scan_e_wrong_switch_toggle=02052;
+  scan_e_resourcefiles_not_supported=02053;
+  scan_w_include_env_not_found=02054;
+  scan_e_invalid_maxfpureg_value=02055;
+  scan_w_only_one_resourcefile_supported=02056;
+  parser_e_syntax_error=03000;
+  parser_w_proc_far_ignored=03001;
+  parser_w_proc_near_ignored=03002;
+  parser_w_proc_interrupt_ignored=03003;
+  parser_e_dont_nest_interrupt=03004;
+  parser_w_proc_directive_ignored=03005;
+  parser_e_no_overload_for_all_procs=03006;
+  parser_e_no_dll_file_specified=03007;
+  parser_e_export_name_double=03008;
+  parser_e_export_ordinal_double=03009;
+  parser_e_export_invalid_index=03010;
+  parser_w_parser_reloc_no_debug=03011;
+  parser_w_parser_win32_debug_needs_WN=03012;
+  parser_e_constructorname_must_be_init=03013;
+  parser_e_destructorname_must_be_done=03014;
+  parser_e_illegal_open_parameter=03015;
+  parser_e_proc_inline_not_supported=03016;
+  parser_w_priv_meth_not_virtual=03017;
+  parser_w_constructor_should_be_public=03018;
+  parser_w_destructor_should_be_public=03019;
+  parser_n_only_one_destructor=03020;
+  parser_e_no_local_objects=03021;
+  parser_f_no_anonym_objects=03022;
+  parser_object_has_no_vmt=03023;
+  parser_e_illegal_parameter_list=03024;
+  parser_e_wrong_parameter_type=03025;
+  parser_e_wrong_parameter_size=03026;
+  parser_e_overloaded_no_procedure=03027;
+  parser_e_overloaded_have_same_parameters=03028;
+  parser_e_header_dont_match_forward=03029;
+  parser_e_header_different_var_names=03030;
+  parser_n_duplicate_enum=03031;
+  parser_n_interface_name_diff_implementation_name=03032;
+  parser_e_no_with_for_variable_in_other_segments=03033;
+  parser_e_too_much_lexlevel=03034;
+  parser_e_range_check_error=03035;
+  parser_w_range_check_error=03036;
+  parser_e_double_caselabel=03037;
+  parser_e_case_lower_less_than_upper_bound=03038;
+  parser_e_type_const_not_possible=03039;
+  parser_e_no_overloaded_procvars=03040;
+  parser_e_invalid_string_size=03041;
+  parser_w_use_extended_syntax_for_objects=03042;
+  parser_w_no_new_dispose_on_void_pointers=03043;
+  parser_e_no_new_dispose_on_void_pointers=03044;
+  parser_e_class_id_expected=03045;
+  parser_e_no_type_not_allowed_here=03046;
+  parser_e_methode_id_expected=03047;
+  parser_e_header_dont_match_any_member=03048;
+  parser_p_procedure_start=03049;
+  parser_e_error_in_real=03050;
+  parser_e_fail_only_in_constructor=03051;
+  parser_e_no_paras_for_destructor=03052;
+  parser_e_only_class_methods_via_class_ref=03053;
+  parser_e_only_class_methods=03054;
+  parser_e_case_mismatch=03055;
+  parser_e_illegal_symbol_exported=03056;
+  parser_w_should_use_override=03057;
+  parser_e_nothing_to_be_overridden=03058;
+  parser_e_no_procedure_to_access_property=03059;
+  parser_w_stored_not_implemented=03060;
+  parser_e_ill_property_access_sym=03061;
+  parser_e_cant_access_protected_member=03062;
+  parser_e_cant_access_private_member=03063;
+  parser_w_overloaded_are_not_both_virtual=03064;
+  parser_w_overloaded_are_not_both_non_virtual=03065;
+  parser_e_overloaded_methodes_not_same_ret=03066;
+  parser_e_dont_nest_export=03067;
+  parser_e_methods_dont_be_export=03068;
+  parser_e_call_by_ref_without_typeconv=03069;
+  parser_e_no_super_class=03070;
+  parser_e_self_not_in_method=03071;
+  parser_e_generic_methods_only_in_methods=03072;
+  parser_e_illegal_colon_qualifier=03073;
+  parser_e_illegal_set_expr=03074;
+  parser_e_pointer_to_class_expected=03075;
+  parser_e_expr_have_to_be_constructor_call=03076;
+  parser_e_expr_have_to_be_destructor_call=03077;
+  parser_e_invalid_record_const=03078;
+  parser_e_false_with_expr=03079;
+  parser_e_void_function=03080;
+  parser_e_constructors_always_objects=03081;
+  parser_e_operator_not_overloaded=03082;
+  parser_e_no_such_assignment=03083;
+  parser_e_overload_impossible=03084;
+  parser_e_no_reraise_possible=03085;
+  parser_e_no_new_or_dispose_for_classes=03086;
+  parser_e_asm_incomp_with_function_return=03087;
+  parser_e_procedure_overloading_is_off=03088;
+  parser_e_overload_operator_failed=03089;
+  parser_e_comparative_operator_return_boolean=03090;
+  parser_e_only_virtual_methods_abstract=03091;
+  parser_f_unsupported_feature=03092;
+  parser_e_mix_of_classes_and_objects=03093;
+  parser_w_unknown_proc_directive_ignored=03094;
+  parser_e_absolute_only_one_var=03095;
+  parser_e_absolute_only_to_var_or_const=03096;
+  parser_e_initialized_only_one_var=03097;
+  parser_e_abstract_no_definition=03098;
+  parser_e_overloaded_must_be_all_global=03099;
+  parser_w_virtual_without_constructor=03100;
+  parser_m_macro_defined=03101;
+  parser_m_macro_undefined=03102;
+  parser_m_macro_set_to=03103;
+  parser_i_compiling=03104;
+  parser_u_parsing_interface=03105;
+  parser_u_parsing_implementation=03106;
+  parser_d_compiling_second_time=03107;
+  parser_e_no_paras_allowed=03108;
+  parser_e_no_property_found_to_override=03109;
+  parser_e_only_one_default_property=03110;
+  parser_e_property_need_paras=03111;
+  parser_e_constructor_cannot_be_not_virtual=03112;
+  parser_e_no_default_property_available=03113;
+  parser_e_cant_have_published=03114;
+  parser_e_forward_declaration_must_be_resolved=03115;
+  parser_e_no_local_operator=03116;
+  parser_e_proc_dir_not_allowed_in_interface=03117;
+  parser_e_proc_dir_not_allowed_in_implementation=03118;
+  parser_e_proc_dir_not_allowed_in_procvar=03119;
+  parser_e_function_already_declared_public_forward=03120;
+  parser_e_not_external_and_export=03121;
+  parser_e_name_keyword_expected=03122;
+  parser_w_not_supported_for_inline=03123;
+  parser_w_inlining_disabled=03124;
+  parser_i_writing_browser_log=03125;
+  parser_h_maybe_deref_caret_missing=03126;
+  parser_f_assembler_reader_not_supported=03127;
+  parser_e_proc_dir_conflict=03128;
+  parser_e_call_convention_dont_match_forward=03129;
+  parser_e_register_calling_not_supported=03130;
+  parser_e_property_cant_have_a_default_value=03131;
+  parser_e_property_default_value_must_const=03132;
+  parser_e_cant_publish_that=03133;
+  parser_e_cant_publish_that_property=03134;
+  parser_w_empty_import_name=03135;
+  parser_e_empty_import_name=03136;
+  parser_e_used_proc_name_changed=03137;
+  parser_e_division_by_zero=03138;
+  parser_e_invalid_float_operation=03139;
+  parser_e_array_lower_less_than_upper_bound=03140;
+  parser_w_string_too_long=03141;
+  parser_e_string_larger_array=03142;
+  parser_e_ill_msg_expr=03143;
+  parser_e_ill_msg_param=03144;
+  parser_e_duplicate_message_label=03145;
+  parser_e_self_in_non_message_handler=03146;
+  parser_e_threadvars_only_sg=03147;
+  parser_f_direct_assembler_not_allowed=03148;
+  parser_w_no_objpas_use_mode=03149;
+  parser_e_no_object_override=03150;
+  parser_e_cant_use_inittable_here=03151;
+  parser_e_resourcestring_only_sg=03152;
+  parser_e_exit_with_argument_not__possible=03153;
+  parser_e_stored_property_must_be_boolean=03154;
+  parser_e_ill_property_storage_sym=03155;
+  parser_e_only_publishable_classes_can__be_published=03156;
+  parser_e_proc_directive_expected=03157;
+  parser_e_invalid_property_index_value=03158;
+  parser_e_procname_to_short_for_export=03159;
+  parser_e_dlltool_unit_var_problem=03160;
+  parser_e_dlltool_unit_var_problem2=03161;
+  type_e_mismatch=04000;
+  type_e_incompatible_types=04001;
+  type_e_not_equal_types=04002;
+  type_e_type_id_expected=04003;
+  type_e_variable_id_expected=04004;
+  type_e_integer_expr_expected=04005;
+  type_e_boolean_expr_expected=04006;
+  type_e_ordinal_expr_expected=04007;
+  type_e_pointer_type_expected=04008;
+  type_e_class_type_expected=04009;
+  type_e_varid_or_typeid_expected=04010;
+  type_e_cant_eval_constant_expr=04011;
+  type_e_set_element_are_not_comp=04012;
+  type_e_set_operation_unknown=04013;
+  type_w_convert_real_2_comp=04014;
+  type_h_use_div_for_int=04015;
+  type_e_strict_var_string_violation=04016;
+  type_e_succ_and_pred_enums_with_assign_not_possible=04017;
+  type_e_cant_read_write_type=04018;
+  type_e_no_readln_writeln_for_typed_file=04019;
+  type_e_no_read_write_for_untyped_file=04020;
+  type_e_typeconflict_in_set=04021;
+  type_w_maybe_wrong_hi_lo=04022;
+  type_e_integer_or_real_expr_expected=04023;
+  type_e_wrong_type_in_array_constructor=04024;
+  type_e_wrong_parameter_type=04025;
+  type_e_no_method_and_procedure_not_compatible=04026;
+  type_e_wrong_math_argument=04027;
+  type_e_no_addr_of_constant=04028;
+  type_e_argument_cant_be_assigned=04029;
+  type_e_cannot_local_proc_to_procvar=04030;
+  type_e_no_assign_to_addr=04031;
+  type_e_no_assign_to_const=04032;
+  sym_e_id_not_found=05000;
+  sym_f_internal_error_in_symtablestack=05001;
+  sym_e_duplicate_id=05002;
+  sym_h_duplicate_id_where=05003;
+  sym_e_unknown_id=05004;
+  sym_e_forward_not_resolved=05005;
+  sym_f_id_already_typed=05006;
+  sym_e_error_in_type_def=05007;
+  sym_e_type_id_not_defined=05008;
+  sym_e_forward_type_not_resolved=05009;
+  sym_e_only_static_in_static=05010;
+  sym_e_invalid_call_tvarsymmangledname=05011;
+  sym_f_type_must_be_rec_or_class=05012;
+  sym_e_no_instance_of_abstract_object=05013;
+  sym_w_label_not_defined=05014;
+  sym_e_label_used_and_not_defined=05015;
+  sym_e_ill_label_decl=05016;
+  sym_e_goto_and_label_not_supported=05017;
+  sym_e_label_not_found=05018;
+  sym_e_id_is_no_label_id=05019;
+  sym_e_label_already_defined=05020;
+  sym_e_ill_type_decl_set=05021;
+  sym_e_class_forward_not_resolved=05022;
+  sym_n_unit_not_used=05023;
+  sym_h_para_identifier_not_used=05024;
+  sym_n_local_identifier_not_used=05025;
+  sym_h_para_identifier_only_set=05026;
+  sym_n_local_identifier_only_set=05027;
+  sym_h_local_symbol_not_used=05028;
+  sym_n_private_identifier_not_used=05029;
+  sym_n_private_identifier_only_set=05030;
+  sym_n_private_method_not_used=05031;
+  sym_e_set_expected=05032;
+  sym_w_function_result_not_set=05033;
+  sym_w_wrong_C_pack=05034;
+  sym_e_illegal_field=05035;
+  sym_n_uninitialized_local_variable=05036;
+  sym_n_uninitialized_variable=05037;
+  sym_e_id_no_member=05038;
+  sym_b_param_list=05039;
+  sym_e_segment_too_large=05040;
+  cg_e_break_not_allowed=06000;
+  cg_e_continue_not_allowed=06001;
+  cg_e_too_complex_expr=06002;
+  cg_e_illegal_expression=06003;
+  cg_e_invalid_integer=06004;
+  cg_e_invalid_qualifier=06005;
+  cg_e_upper_lower_than_lower=06006;
+  cg_e_illegal_count_var=06007;
+  cg_e_cant_choose_overload_function=06008;
+  cg_e_parasize_too_big=06009;
+  cg_e_illegal_type_conversion=06010;
+  cg_d_pointer_to_longint_conv_not_portable=06011;
+  cg_e_file_must_call_by_reference=06012;
+  cg_e_cant_use_far_pointer_there=06013;
+  cg_e_var_must_be_reference=06014;
+  cg_e_dont_call_exported_direct=06015;
+  cg_w_member_cd_call_from_method=06016;
+  cg_n_inefficient_code=06017;
+  cg_w_unreachable_code=06018;
+  cg_e_stackframe_with_esp=06019;
+  cg_e_cant_call_abstract_method=06020;
+  cg_f_internal_error_in_getfloatreg=06021;
+  cg_f_unknown_float_type=06022;
+  cg_f_secondvecn_base_defined_twice=06023;
+  cg_f_extended_cg68k_not_supported=06024;
+  cg_f_32bit_not_supported_in_68000=06025;
+  cg_f_internal_error_in_secondinline=06026;
+  cg_d_register_weight=06027;
+  cg_e_stacklimit_in_local_routine=06028;
+  cg_d_stackframe_omited=06029;
+  cg_w_64bit_range_check_not_supported=06030;
+  cg_e_unable_inline_object_methods=06031;
+  cg_e_unable_inline_procvar=06032;
+  cg_e_no_code_for_inline_stored=06033;
+  cg_e_no_call_to_interrupt=06034;
+  cg_e_can_access_element_zero=06035;
+  cg_e_include_not_implemented=06036;
+  cg_e_cannot_call_cons_dest_inside_with=06037;
+  cg_e_cannot_call_message_direct=06038;
+  cg_e_goto_inout_of_exception_block=06039;
+  cg_e_control_flow_outside_finally=06040;
+  asmr_d_start_reading=07000;
+  asmr_d_finish_reading=07001;
+  asmr_e_none_label_contain_at=07002;
+  asmr_w_override_op_not_supported=07003;
+  asmr_e_building_record_offset=07004;
+  asmr_e_offset_without_identifier=07005;
+  asmr_e_type_without_identifier=07006;
+  asmr_e_no_local_or_para_allowed=07007;
+  asmr_e_need_offset=07008;
+  asmr_e_need_dollar=07009;
+  asmr_e_cant_have_multiple_relocatable_symbols=07010;
+  asmr_e_only_add_relocatable_symbol=07011;
+  asmr_e_invalid_constant_expression=07012;
+  asmr_e_relocatable_symbol_not_allowed=07013;
+  asmr_e_invalid_reference_syntax=07014;
+  asmr_e_local_para_unreachable=07015;
+  asmr_e_local_label_not_allowed_as_ref=07016;
+  asmr_e_wrong_base_index=07017;
+  asmr_w_possible_object_field_bug=07018;
+  asmr_e_wrong_scale_factor=07019;
+  asmr_e_multiple_index=07020;
+  asmr_e_invalid_operand_type=07021;
+  asmr_e_invalid_string_as_opcode_operand=07022;
+  asmr_w_CODE_and_DATA_not_supported=07023;
+  asmr_e_null_label_ref_not_allowed=07024;
+  asmr_e_expr_zero_divide=07025;
+  asmr_e_expr_illegal=07026;
+  asmr_e_escape_seq_ignored=07027;
+  asmr_e_invalid_symbol_ref=07028;
+  asmr_w_fwait_emu_prob=07029;
+  asmr_w_fadd_to_faddp=07030;
+  asmr_w_enter_not_supported_by_linux=07031;
+  asmr_w_calling_overload_func=07032;
+  asmr_e_unsupported_symbol_type=07033;
+  asmr_e_constant_out_of_bounds=07034;
+  asmr_e_error_converting_decimal=07035;
+  asmr_e_error_converting_octal=07036;
+  asmr_e_error_converting_binary=07037;
+  asmr_e_error_converting_hexadecimal=07038;
+  asmr_h_direct_global_to_mangled=07039;
+  asmr_w_direct_global_is_overloaded_func=07040;
+  asmr_e_cannot_use_SELF_outside_a_method=07041;
+  asmr_e_cannot_use_OLDEBP_outside_nested_procedure=07042;
+  asmr_e_void_function=07043;
+  asmr_e_SEG_not_supported=07044;
+  asmr_e_size_suffix_and_dest_dont_match=07045;
+  asmr_w_size_suffix_and_dest_dont_match=07046;
+  asmr_e_syntax_error=07047;
+  asmr_e_invalid_opcode_and_operand=07048;
+  asmr_e_syn_operand=07049;
+  asmr_e_syn_constant=07050;
+  asmr_e_invalid_string_expression=07051;
+  asmr_w_const32bit_for_address=07052;
+  asmr_e_unknown_opcode=07053;
+  asmr_e_invalid_or_missing_opcode=07054;
+  asmr_e_invalid_prefix_and_opcode=07055;
+  asmr_e_invalid_override_and_opcode=07056;
+  asmr_e_too_many_operands=07057;
+  asmr_w_near_ignored=07058;
+  asmr_w_far_ignored=07059;
+  asmr_e_dup_local_sym=07060;
+  asmr_e_unknown_local_sym=07061;
+  asmr_e_unknown_label_identifier=07062;
+  asmr_e_invalid_register=07063;
+  asmr_e_invalid_fpu_register=07064;
+  asmr_e_nor_not_supported=07065;
+  asmr_w_modulo_not_supported=07066;
+  asmr_e_invalid_float_const=07067;
+  asmr_e_invalid_float_expr=07068;
+  asmr_e_wrong_sym_type=07069;
+  asmr_e_cannot_index_relative_var=07070;
+  asmr_e_invalid_seg_override=07071;
+  asmr_w_id_supposed_external=07072;
+  asmr_e_string_not_allowed_as_const=07073;
+  asmr_e_no_var_type_specified=07074;
+  asmr_w_assembler_code_not_returned_to_text=07075;
+  asmr_e_not_directive_or_local_symbol=07076;
+  asmr_w_using_defined_as_local=07077;
+  asmr_e_dollar_without_identifier=07078;
+  asmr_w_32bit_const_for_address=07079;
+  asmr_n_align_is_target_specific=07080;
+  asmr_e_cannot_access_field_directly_for_parameters=07081;
+  asmr_e_cannot_access_object_field_directly=07082;
+  asmw_f_too_many_asm_files=08000;
+  asmw_f_assembler_output_not_supported=08001;
+  asmw_f_comp_not_supported=08002;
+  asmw_f_direct_not_supported=08003;
+  asmw_e_alloc_data_only_in_bss=08004;
+  asmw_f_no_binary_writer_selected=08005;
+  asmw_e_opcode_not_in_table=08006;
+  asmw_e_invalid_opcode_and_operands=08007;
+  asmw_e_16bit_not_supported=08008;
+  asmw_e_invalid_effective_address=08009;
+  asmw_e_immediate_or_reference_expected=08010;
+  asmw_e_value_exceeds_bounds=08011;
+  asmw_e_short_jmp_out_of_range=08012;
+  asmw_e_undefined_label=08013;
+  exec_w_source_os_redefined=09000;
+  exec_i_assembling_pipe=09001;
+  exec_d_cant_create_asmfile=09002;
+  exec_e_cant_create_objectfile=09003;
+  exec_e_cant_create_archivefile=09004;
+  exec_w_assembler_not_found=09005;
+  exec_t_using_assembler=09006;
+  exec_w_error_while_assembling=09007;
+  exec_w_cant_call_assembler=09008;
+  exec_i_assembling=09009;
+  exec_i_assembling_smart=09010;
+  exec_w_objfile_not_found=09011;
+  exec_w_libfile_not_found=09012;
+  exec_w_error_while_linking=09013;
+  exec_w_cant_call_linker=09014;
+  exec_i_linking=09015;
+  exec_w_util_not_found=09016;
+  exec_t_using_util=09017;
+  exec_e_exe_not_supported=09018;
+  exec_e_dll_not_supported=09019;
+  exec_i_closing_script=09020;
+  exec_w_res_not_found=09021;
+  exec_i_compilingresource=09022;
+  execinfo_f_cant_process_executable=09023;
+  execinfo_f_cant_open_executable=09024;
+  execinfo_x_codesize=09025;
+  execinfo_x_initdatasize=09026;
+  execinfo_x_uninitdatasize=09027;
+  execinfo_x_stackreserve=09028;
+  execinfo_x_stackcommit=09029;
+  unit_t_unitsearch=10000;
+  unit_t_ppu_loading=10001;
+  unit_u_ppu_name=10002;
+  unit_u_ppu_flags=10003;
+  unit_u_ppu_crc=10004;
+  unit_u_ppu_time=10005;
+  unit_u_ppu_file_too_short=10006;
+  unit_u_ppu_invalid_header=10007;
+  unit_u_ppu_invalid_version=10008;
+  unit_u_ppu_invalid_processor=10009;
+  unit_u_ppu_invalid_target=10010;
+  unit_u_ppu_source=10011;
+  unit_u_ppu_write=10012;
+  unit_f_ppu_cannot_write=10013;
+  unit_f_ppu_read_error=10014;
+  unit_f_ppu_read_unexpected_end=10015;
+  unit_f_ppu_invalid_entry=10016;
+  unit_f_ppu_dbx_count_problem=10017;
+  unit_e_illegal_unit_name=10018;
+  unit_f_too_much_units=10019;
+  unit_f_circular_unit_reference=10020;
+  unit_f_cant_compile_unit=10021;
+  unit_f_cant_find_ppu=10022;
+  unit_w_unit_name_error=10023;
+  unit_f_unit_name_error=10024;
+  unit_w_switch_us_missed=10025;
+  unit_f_errors_in_unit=10026;
+  unit_u_load_unit=10027;
+  unit_u_recompile_crc_change=10028;
+  unit_u_recompile_source_found_alone=10029;
+  unit_u_recompile_staticlib_is_older=10030;
+  unit_u_recompile_sharedlib_is_older=10031;
+  unit_u_recompile_obj_and_asm_older=10032;
+  unit_u_recompile_obj_older_than_asm=10033;
+  unit_u_start_parse_interface=10034;
+  unit_u_start_parse_implementation=10035;
+  unit_u_second_load_unit=10036;
+  unit_u_check_time=10037;
+  option_usage=11000;
+  option_only_one_source_support=11001;
+  option_def_only_for_os2=11002;
+  option_no_nested_response_file=11003;
+  option_no_source_found=11004;
+  option_no_option_found=11005;
+  option_illegal_para=11006;
+  option_help_pages_para=11007;
+  option_too_many_cfg_files=11008;
+  option_unable_open_file=11009;
+  option_reading_further_from=11010;
+  option_target_is_already_set=11011;
+  option_no_shared_lib_under_dos=11012;
+  option_too_many_ifdef=11013;
+  option_too_many_endif=11014;
+  option_too_less_endif=11015;
+  option_no_debug_support=11016;
+  option_no_debug_support_recompile_fpc=11017;
+  option_obsolete_switch=11018;
+  option_obsolete_switch_use_new=11019;
+  option_switch_bin_to_src_assembler=11020;
+  option_incompatible_asm=11021;
+  option_asm_forced=11022;
+  option_logo=11023;
+  option_info=11024;
+  option_help_pages=11025;
+
+  MsgTxtSize = 30122;
+
+  MsgIdxMax : array[1..20] of longint=(
+    12,57,162,33,41,41,83,14,30,38,
+    26,1,1,1,1,1,1,1,1,1
+  );

+ 732 - 717
compiler/msgtxt.inc

@@ -1,725 +1,740 @@
 {$ifdef Delphi}
-const msgtxt : array[0..000112] of string[240]=(
+const msgtxt : array[0..000125] of string[240]=(
 {$else Delphi}
-const msgtxt : array[0..000112,1..240] of char=(
+const msgtxt : array[0..000125,1..240] of char=(
 {$endif Delphi}
-  'T_Compiler: $1'#000+
-  'D_Compiler OS: $1'#000+
-  'I_Target OS: $1'#000+
-  'T_Using executable path: $1'#000+
-  'T_Using unit path: $1'#000+
-  'T_Using include path: $1'#000+
-  'T_Using library path: $1'#000+
-  'T_Using object path: $1'#000+
-  'I_$1 Lines compiled, $2 sec'#000+
-  'F_No memory left'#000+
-  'I_Writing Resource Str','ing Table file: $1'#000+
-  'E_Writing Resource String Table file: $1'#000+
-  'F_Unexpected end of file'#000+
-  'F_String exceeds line'#000+
-  'F_illegal character $1 ($2)'#000+
-  'F_Syntax error, $1 expected but $2 found'#000+
-  'T_Start reading includefile $1'#000+
-  'W_Comment level $1 found'#000+
-  'N_$F dir','ective (FAR) ignored'#000+
-  'N_Stack check is global under Linux'#000+
-  'N_Ignored compiler switch $1'#000+
-  'W_Illegal compiler switch $1'#000+
-  'W_This compiler switch has a global effect'#000+
-  'E_Illegal char constant'#000+
-  'F_Can'#039't open file $1'#000+
-  'F_Can'#039't open include file $1'#000+
-  'E_Too ma','ny $ENDIFs or $ELSEs'#000+
-  'W_Records fields can be aligned to 1,2,4,8,16 or 32 bytes only'#000+
-  'W_Enumerated can be saved in 1,2 or 4 bytes only'#000+
-  'E_$ENDIF expected for $1 $2 defined in line $3'#000+
-  'E_Syntax error while parsing a conditional compiling express','ion'#000+
-  'E_Evaluating a conditional compiling expression'#000+
-  'W_Macro contents is cut after char 255 to evalute expression'#000+
-  'E_ENDIF without IF(N)DEF'#000+
-  'F_User defined: $1'#000+
-  'E_User defined: $1'#000+
-  'W_User defined: $1'#000+
-  'N_User defined: $1'#000+
-  'H_User defined: $1'#000+
-  'I_User ','defined: $1'#000+
-  'E_Keyword redefined as macro has no effect'#000+
-  'F_Macro buffer overflow while reading or expanding a macro'#000+
-  'W_Extension of macros exceeds a deep of 16.'#000+
-  'E_compiler switches aren'#039't allowed in (* ... *) styled comments'#000+
-  'D_Handling switch ','"$1"'#000+
-  'C_ENDIF $1 found'#000+
-  'C_IFDEF $1 found, $2'#000+
-  'C_IFOPT $1 found, $2'#000+
-  'C_IF $1 found, $2'#000+
-  'C_IFNDEF $1 found, $2'#000+
-  'C_ELSE $1 found, $2'#000+
-  'C_Skipping until...'#000+
-  'I_Press <return> to continue'#000+
-  'W_Unsupported switch $1'#000+
-  'W_Illegal compiler directive $1'#000+
-  'T_Back in $','1'#000+
-  'W_Unsupported application type: $1'#000+
-  'W_APPTYPE isn'#039't support by the target OS'#000+
-  'W_DESCRIPTION is only supported for OS2 and Win32'#000+
-  'N_VERSION is not supported by target OS.'#000+
-  'N_VERSION only for exes or DLLs'#000+
-  'W_Wrong format for VERSION directive $1',#000+
-  'W_Unsupported assembler style specified $1'#000+
-  'W_ASM reader switch is not possible inside asm statement, $1 will be e'+
-  'ffective only for next'#000+
-  'E_Wrong switch toggle, use ON/OFF or +/-'#000+
-  'E_Resource files are not supported for this target'#000+
-  'W_Include e','nvironment $1 not found in environment'#000+
-  'E_Illegal value for FPU register limit'#000+
-  'W_Only one resource file is supported for this target'#000+
-  'E_Parser - Syntax Error'#000+
-  'W_Procedure type FAR ignored'#000+
-  'W_Procedure type NEAR ignored'#000+
-  'W_Procedure type INTERRUP','T ignored for not i386'#000+
-  'E_INTERRUPT procedure can'#039't be nested'#000+
-  'W_Procedure type $1 ignored'#000+
-  'E_Not all declarations of $1 are declared with OVERLOAD'#000+
-  'E_No DLL File specified'#000+
-  'E_Duplicate exported function name $1'#000+
-  'E_Duplicate exported function ind','ex $1'#000+
-  'E_Invalid index for exported function'#000+
-  'W_Relocatable DLL or executable $1 debug info does not work, disabled.'+
+  '01000_T_Compiler: $1'#000+
+  '01001_D_Compiler OS: $1'#000+
+  '01002_I_Target OS: $1'#000+
+  '01003_T_Using executable path: $1'#000+
+  '01004_T_Using unit path: $1'#000+
+  '01005_T_Using include path: $1'#000+
+  '01006_T_Using library path: $1'#000+
+  '01007_T_Using object path: $1'#000+
+  '01008_I_$1 Lines co','mpiled, $2 sec'#000+
+  '01009_F_No memory left'#000+
+  '01010_I_Writing Resource String Table file: $1'#000+
+  '01011_E_Writing Resource String Table file: $1'#000+
+  '02000_F_Unexpected end of file'#000+
+  '02001_F_String exceeds line'#000+
+  '02002_F_illegal character $1 ($2)'#000+
+  '02003_F_Syntax ','error, $1 expected but $2 found'#000+
+  '02004_T_Start reading includefile $1'#000+
+  '02005_W_Comment level $1 found'#000+
+  '02006_N_$F directive (FAR) ignored'#000+
+  '02007_N_Stack check is global under Linux'#000+
+  '02008_N_Ignored compiler switch $1'#000+
+  '02009_W_Illegal compiler swi','tch $1'#000+
+  '02010_W_This compiler switch has a global effect'#000+
+  '02011_E_Illegal char constant'#000+
+  '02012_F_Can'#039't open file $1'#000+
+  '02013_F_Can'#039't open include file $1'#000+
+  '02014_E_Too many $ENDIFs or $ELSEs'#000+
+  '02015_W_Records fields can be aligned to 1,2,4,8,16 or 32',' bytes only'+
   #000+
-  'W_To allow debugging for win32 code you need to disable relocation wit'+
-  'h -WN option'#000+
-  'E_Constructor name must be INIT'#000+
-  'E_Destruct','or name must be DONE'#000+
-  'E_Illegal open parameter'#000+
-  'E_Procedure type INLINE not supported'#000+
-  'W_Private methods shouldn'#039't be VIRTUAL'#000+
-  'W_Constructor should be public'#000+
-  'W_Destructor should be public'#000+
-  'N_Class should have one destructor only'#000+
-  'E_Local class de','finitions are not allowed'#000+
-  'F_Anonym class definitions are not allowed'#000+
-  'E_The object $1 has no VMT'#000+
-  'E_Illegal parameter list'#000+
-  'E_Wrong parameter type specified for arg no. $1'#000+
-  'E_Wrong amount of parameters specified'#000+
-  'E_overloaded identifier $1 isn'#039't',' a function'#000+
-  'E_overloaded functions have the same parameter list'#000+
-  'E_function header doesn'#039't match the forward declaration $1'#000+
-  'E_function header $1 doesn'#039't match forward : var name changes $2 ='+
-  '> $3'#000+
-  'N_Values in enumeration types have to be ascen','ding'#000+
-  'N_Interface and implementation names are different $1 => $2'#000+
-  'E_With can not be used for variables in a different segment'#000+
-  'E_function nesting > 31'#000+
-  'E_range check error while evaluating constants'#000+
-  'W_range check error while evaluating constan','ts'#000+
-  'E_duplicate case label'#000+
-  'E_Upper bound of case range is less than lower bound'#000+
-  'E_typed constants of classes are not allowed'#000+
-  'E_functions variables of overloaded functions are not allowed'#000+
-  'E_string length must be a value from 1 to 255'#000+
-  'W_use ex','tended syntax of NEW and DISPOSE for instances of objects'#000+
-  'W_use of NEW or DISPOSE for untyped pointers is meaningless'#000+
-  'E_use of NEW or DISPOSE is not possible for untyped pointers'#000+
-  'E_class identifier expected'#000+
-  'E_type identifier not allowed her','e'#000+
-  'E_method identifier expected'#000+
-  'E_function header doesn'#039't match any method of this class'#000+
-  'P_procedure/function $1'#000+
-  'E_Illegal floating point constant'#000+
-  'E_FAIL can be used in constructors only'#000+
-  'E_Destructors can'#039't have parameters'#000+
-  'E_Only class metho','ds can be referred with class references'#000+
-  'E_Only class methods can be accessed in class methods'#000+
-  'E_Constant and CASE types do not match'#000+
-  'E_The symbol can'#039't be exported from a library'#000+
-  'W_An inherited method is hidden by $1'#000+
-  'E_There is no method i','n an ancestor class to be overridden: $1'#000+
-  'E_No member is provided to access property'#000+
-  'W_Stored prorperty directive is not yet implemented'#000+
-  'E_Illegal symbol for property access'#000+
-  'E_Cannot access a protected field of an object here'#000+
-  'E_Cannot access',' a private field of an object here'#000+
-  'W_overloaded method of virtual method should be virtual: $1'#000+
-  'W_overloaded method of non-virtual method should be non-virtual: $1'#000+
-  'E_overloaded methods which are virtual must have the same return type:'+
-  ' $1'#000+
-  'E_E','XPORT declared functions can'#039't be nested'#000+
-  'E_methods can'#039't be EXPORTed'#000+
-  'E_call by var parameters have to match exactly: Got $1 expected $2'#000+
-  'E_Class isn'#039't a parent class of the current class'#000+
-  'E_SELF is only allowed in methods'#000+
-  'E_methods can be onl','y in other methods called direct with type ident'+
-  'ifier of the class'#000+
-  'E_Illegal use of '#039':'#039#000+
-  'E_range check error in set constructor or duplicate set element'#000+
-  'E_Pointer to object expected'#000+
-  'E_Expression must be constructor call'#000+
-  'E_Expression must be ','destructor call'#000+
-  'E_Illegal order of record elements'#000+
-  'E_Expression type must be class or record type'#000+
-  'E_Procedures can'#039't return a value'#000+
-  'E_constructors and destructors must be methods'#000+
-  'E_Operator is not overloaded'#000+
-  'E_Impossible to overload assignm','ent for equal types'#000+
-  'E_Impossible operator overload'#000+
-  'E_Re-raise isn'#039't possible there'#000+
-  'E_The extended syntax of new or dispose isn'#039't allowed for a class'#000+
-  'E_Assembler incompatible with function return type'#000+
-  'E_Procedure overloading is switched off'#000,
-  'E_It is not possible to overload this operator (overload = instead)'#000+
-  'E_Comparative operator must return a boolean value'#000+
-  'E_Only virtual methods can be abstract'#000+
-  'F_Use of unsupported feature!'#000+
-  'E_The mix of CLASSES and OBJECTS isn'#039't allowed'#000+
-  'W_Unk','nown procedure directive had to be ignored: $1'#000+
-  'E_absolute can only be associated to ONE variable'#000+
-  'E_absolute can only be associated a var or const'#000+
-  'E_Only ONE variable can be initialized'#000+
-  'E_Abstract methods shouldn'#039't have any definition (with ','function '+
-  'body)'#000+
-  'E_This overloaded function can'#039't be local (must be exported)'#000+
-  'W_Virtual methods are used without a constructor in $1'#000+
-  'M_Macro defined: $1'#000+
-  'M_Macro undefined: $1'#000+
-  'M_Macro $1 set to $2'#000+
-  'I_Compiling $1'#000+
-  'U_Parsing interface of unit $1'#000,
-  'U_Parsing implementation of $1'#000+
-  'D_Compiling $1 for the second time'#000+
-  'E_Array properties aren'#039't allowed here'#000+
-  'E_No property found to override'#000+
-  'E_Only one default property is allowed, found inherited default proper'+
-  'ty in class $1'#000+
-  'E_The default prop','erty must be an array property'#000+
-  'E_Virtual constructors are only supported in class object model'#000+
-  'E_No default property available'#000+
-  'E_The class can'#039't have a published section, use the {$M+} switch'#000+
-  'E_Forward declaration of class $1 must be resolv','ed here to use the c'+
-  'lass as ancestor'#000+
-  'E_Local operators not supported'#000+
-  'E_Procedure directive $1 not allowed in interface section'#000+
-  'E_Procedure directive $1 not allowed in implementation section'#000+
-  'E_Procedure directive $1 not allowed in procvar de','claration'#000+
-  'E_Function is already declared Public/Forward $1'#000+
-  'E_Can'#039't use both EXPORT and EXTERNAL'#000+
-  'E_NAME keyword expected'#000+
-  'W_$1 not yet supported inside inline procedure/function'#000+
-  'W_Inlining disabled'#000+
-  'I_Writing Browser log $1'#000+
-  'H_may be pointer de','reference is missing'#000+
-  'F_Selected assembler reader not supported'#000+
-  'E_Procedure directive $1 has conflicts with other directives'#000+
-  'E_Calling convention doesn'#039't match forward'#000+
-  'E_Register calling (fastcall) not supported'#000+
-  'E_Property can'#039't have a defau','lt value'#000+
-  'E_The default value of a property must be constant'#000+
-  'E_Symbol can'#039't be published, can be only a class'#000+
-  'E_That kind of property can'#039't be published'#000+
-  'W_Empty import name specified'#000+
-  'W_An import name is required'#000+
-  'E_Function internal name chan','ged after use of function'#000+
-  'E_Division by zero'#000+
-  'E_Invalid floating point operation'#000+
-  'E_Upper bound of range is less than lower bound'#000+
-  'W_string "$1" is longer than $2'#000+
-  'E_string length is larger than array of char length'#000+
-  'E_Illegal expression after m','essage directive'#000+
-  'E_Message handlers can take only one call by ref. parameter'#000+
-  'E_Duplicate message label: $1'#000+
-  'E_Self can be only an explicit parameter in message handlers'#000+
-  'E_Threadvars can be only static or global'#000+
-  'F_Direct assembler not support','ed for binary output format'#000+
-  'W_Don'#039't load OBJPAS unit manual, use {$mode objfpc} or {$mode delp'+
-  'hi} instead'#000+
-  'E_OVERRIDE can'#039't be used in objects'#000+
-  'E_Data types which requires initialization/finalization can'#039't be u'+
-  'sed in variant records'#000+
-  'E_Resourc','estrings can be only static or global'#000+
-  'E_Exit with argument can'#039't be used here'#000+
-  'E_The type of the storage symbol must be boolean'#000+
-  'E_This symbol isn'#039't allowed as storage symbol'#000+
-  'E_Only class which are compiled in $M+ mode can be published'#000+
-  'E_Proc','edure directive expected'#000+
-  'E_The value for a property index must be of an ordinal type'#000+
-  'E_Procedure name to short to be exported'#000+
-  'E_No DEFFILE entry can be generated for unit global vars'#000+
-  'E_Compile without -WD option'#000+
-  'E_Type mismatch'#000+
-  'E_Incompatib','le types: got "$1" expected "$2"'#000+
-  'E_Type mismatch between $1 and $2'#000+
-  'E_Type identifier expected'#000+
-  'E_Variable identifier expected'#000+
-  'E_Integer expression expected, but got "$1"'#000+
-  'E_Boolean expression expected, but got "$1"'#000+
-  'E_Ordinal expression expect','ed'#000+
-  'E_pointer type expected, but got "$1"'#000+
-  'E_class type expected, but got "$1"'#000+
-  'E_Variable or type indentifier expected'#000+
-  'E_Can'#039't evaluate constant expression'#000+
-  'E_Set elements are not compatible'#000+
-  'E_Operation not implemented for sets'#000+
-  'W_Automatic typ','e conversion from floating type to COMP which is an i'+
-  'nteger type'#000+
-  'H_use DIV instead to get an integer result'#000+
-  'E_string types doesn'#039't match, because of $V+ mode'#000+
-  'E_succ or pred on enums with assignments not possible'#000+
-  'E_Can'#039't read or write variab','les of this type'#000+
-  'E_Can'#039't use readln or writeln on typed file'#000+
-  'E_Can'#039't use read or write on untyped file.'#000+
-  'E_Type conflict between set elements'#000+
-  'W_lo/hi(dword/qword) returns the upper/lower word/dword'#000+
-  'E_Integer or real expression expected'#000+
-  'E_Wro','ng type $1 in array constructor'#000+
-  'E_Incompatible type for arg no. $1: Got $2, expected $3'#000+
-  'E_Method (variable) and Procedure (variable) are not compatible'#000+
-  'E_Illegal constant passed to internal math function'#000+
-  'E_Can'#039't get the address of constants',#000+
-  'E_Argument can'#039't be assigned to'#000+
-  'E_Can'#039't assign local procedure/function to procedure variable'#000+
-  'E_Can'#039't assign values to an address'#000+
-  'E_Can'#039't assign values to const variable'#000+
-  'E_Identifier not found $1'#000+
-  'F_Internal Error in SymTableStack()'#000+
-  'E_Dupli','cate identifier $1'#000+
-  'H_Identifier already defined in $1 at line $2'#000+
-  'E_Unknown identifier $1'#000+
-  'E_Forward declaration not solved $1'#000+
-  'F_Identifier type already defined as type'#000+
-  'E_Error in type definition'#000+
-  'E_Type identifier not defined'#000+
-  'E_Forward type n','ot resolved $1'#000+
-  'E_Only static variables can be used in static methods or outside metho'+
-  'ds'#000+
-  'E_Invalid call to tvarsym.mangledname()'#000+
-  'F_record or class type expected'#000+
-  'E_Instances of classes or objects with an abstract method are not allo'+
-  'wed'#000+
-  'W_Labe','l not defined $1'#000+
-  'E_Label used but not defined $1'#000+
-  'E_Illegal label declaration'#000+
-  'E_GOTO and LABEL are not supported (use switch -Sg)'#000+
-  'E_Label not found'#000+
-  'E_identifier isn'#039't a label'#000+
-  'E_label already defined'#000+
-  'E_illegal type declaration of set elements',#000+
-  'E_Forward class definition not resolved $1'#000+
-  'H_Unit $1 not used in $2'#000+
-  'H_Parameter $1 not used'#000+
-  'N_Local variable $1 not used'#000+
-  'H_Value parameter $1 is assigned but never used'#000+
-  'N_Local variable $1 is assigned but never used'#000+
-  'H_Local $1 $2 is not us','ed'#000+
-  'N_Private field $1.$2 is never used'#000+
-  'N_Private field $1.$2 is assigned but never used'#000+
-  'N_Private method $1.$2 never used'#000+
-  'E_Set type expected'#000+
-  'W_Function result does not seem to be set'#000+
-  'W_Type $1 is not aligned correctly in current record for',' C'#000+
-  'E_Unknown record field identifier $1'#000+
-  'W_Local variable $1 does not seem to be initialized'#000+
-  'W_Variable $1 does not seem to be initialized'#000+
-  'E_identifier idents no member $1'#000+
-  'B_Found declaration: $1'#000+
-  'E_Data segment too large (max. 2GB)'#000+
-  'E_BREAK n','ot allowed'#000+
-  'E_CONTINUE not allowed'#000+
-  'E_Expression too complicated - FPU stack overflow'#000+
-  'E_Illegal expression'#000+
-  'E_Invalid integer expression'#000+
-  'E_Illegal qualifier'#000+
-  'E_High range limit < low range limit'#000+
-  'E_Illegal counter variable'#000+
-  'E_Can'#039't determine whic','h overloaded function to call'#000+
-  'E_Parameter list size exceeds 65535 bytes'#000+
-  'E_Illegal type conversion'#000+
-  'D_Conversion between ordinals and pointers is not portable across plat'+
-  'forms'#000+
-  'E_File types must be var parameters'#000+
-  'E_The use of a far pointer isn',#039't allowed there'#000+
-  'E_illegal call by reference parameters'#000+
-  'E_EXPORT declared functions can'#039't be called'#000+
-  'W_Possible illegal call of constructor or destructor (doesn'#039't matc'+
-  'h to this context)'#000+
-  'N_Inefficient code'#000+
-  'W_unreachable code'#000+
-  'E_procedure call ','with stackframe ESP/SP'#000+
-  'E_Abstract methods can'#039't be called directly'#000+
-  'F_Internal Error in getfloatreg(), allocation failure'#000+
-  'F_Unknown float type'#000+
-  'F_SecondVecn() base defined twice'#000+
-  'F_Extended cg68k not supported'#000+
-  'F_32-bit unsigned not supported i','n MC68000 mode'#000+
-  'F_Internal Error in secondinline()'#000+
-  'D_Register $1 weight $2 $3'#000+
-  'E_Stack limit excedeed in local routine'#000+
-  'D_Stack frame is omitted'#000+
-  'W_Range check for 64 bit integers is not supported on this target'#000+
-  'E_Object or class methods can'#039't ','be inline.'#000+
-  'E_Procvar calls can'#039't be inline.'#000+
-  'E_No code for inline procedure stored'#000+
-  'E_Direct call of interrupt procedure $1 is not possible'#000+
-  'E_Element zero of an ansi/wide- or longstring can'#039't be accessed, u'+
-  'se (set)length instead'#000+
-  'E_Include and',' exclude not implemented in this case'#000+
-  'E_Constructors or destructors can not be called inside a '#039'with'#039+
-  ' clause'#000+
-  'E_Cannot call message handler method directly'#000+
-  'E_Jump in or outside of an exception block'#000+
-  'E_Control flow statements aren'#039't allowed i','n a finally block'#000+
-  'D_Starting $1 styled assembler parsing'#000+
-  'D_Finished $1 styled assembler parsing'#000+
-  'E_Non-label pattern contains @'#000+
-  'W_Override operator not supported'#000+
-  'E_Error building record offset'#000+
-  'E_OFFSET used without identifier'#000+
-  'E_TYPE used wit','hout identifier'#000+
-  'E_Cannot use local variable or parameters here'#000+
-  'E_need to use OFFSET here'#000+
-  'E_need to use $ here'#000+
-  'E_Cannot use multiple relocatable symbols'#000+
-  'E_Relocatable symbol can only be added'#000+
-  'E_Invalid constant expression'#000+
-  'E_Relocatable symbo','l is not allowed'#000+
-  'E_Invalid reference syntax'#000+
-  'E_You can not reach $1 from that code'#000+
-  'E_Local symbols/labels aren'#039't allowed as references'#000+
-  'E_Invalid base and index register usage'#000+
-  'W_Possible error in object field handling'#000+
-  'E_Wrong scale factor spe','cified'#000+
-  'E_Multiple index register usage'#000+
-  'E_Invalid operand type'#000+
-  'E_Invalid string as opcode operand: $1'#000+
-  'W_@CODE and @DATA not supported'#000+
-  'E_Null label references are not allowed'#000+
-  'E_Divide by zero in asm evaluator'#000+
-  'E_Illegal expression'#000+
-  'E_escape seq','uence ignored: $1'#000+
-  'E_Invalid symbol reference'#000+
-  'W_Fwait can cause emulation problems with emu387'#000+
-  'W_FADD without operand translated into FADDP'#000+
-  'W_ENTER instruction is not supported by Linux kernel'#000+
-  'W_Calling an overload function in assembler'#000+
-  'E_Un','supported symbol type for operand'#000+
-  'E_Constant value out of bounds'#000+
-  'E_Error converting decimal $1'#000+
-  'E_Error converting octal $1'#000+
-  'E_Error converting binary $1'#000+
-  'E_Error converting hexadecimal $1'#000+
-  'H_$1 translated to $2'#000+
-  'W_$1 is associated to an overloa','ded function'#000+
-  'E_Cannot use SELF outside a method'#000+
-  'E_Cannot use OLDEBP outside a nested procedure'#000+
-  'W_Procedures can'#039't return any value in asm code'#000+
-  'E_SEG not supported'#000+
-  'E_Size suffix and destination or source size do not match'#000+
-  'W_Size suffix and d','estination or source size do not match'#000+
-  'E_Assembler syntax error'#000+
-  'E_Invalid combination of opcode and operands'#000+
-  'E_Assemler syntax error in operand'#000+
-  'E_Assemler syntax error in constant'#000+
-  'E_Invalid String expression'#000+
-  '32bit constant created for addre','ss'#000+
-  'E_Unrecognized opcode $1'#000+
-  'E_Invalid or missing opcode'#000+
-  'E_Invalid combination of prefix and opcode: $1'#000+
-  'E_Invalid combination of override and opcode: $1'#000+
-  'E_Too many operands on line'#000+
-  'W_NEAR ignored'#000+
-  'W_FAR ignored'#000+
-  'E_Duplicate local symbol $1'#000+
-  'E_U','ndefined local symbol $1'#000+
-  'E_Unknown label identifier $1'#000+
-  'E_Invalid register name'#000+
-  'E_Invalid floating point register name'#000+
-  'E_NOR not supported'#000+
-  'W_Modulo not supported'#000+
-  'E_Invalid floating point constant $1'#000+
-  'E_Invalid floating point expression'#000+
-  'E_Wron','g symbol type'#000+
-  'E_Cannot index a local var or parameter with a register'#000+
-  'E_Invalid segment override expression'#000+
-  'W_Identifier $1 supposed external'#000+
-  'E_Strings not allowed as constants'#000+
-  'No type of variable specified'#000+
-  'E_assembler code not returned to ','text section'#000+
-  'E_Not a directive or local symbol $1'#000+
-  'E_Using a defined name as a local label'#000+
-  'E_Dollar token is used without an identifier'#000+
-  'W_32bit constant created for address'#000+
-  'N_.align is target specific, use .balign or .p2align'#000+
-  'E_Can'#039't access ','fields directly for parameters'#000+
-  'E_Can'#039't access fields of objects/classes directly'#000+
-  'F_Too many assembler files'#000+
-  'F_Selected assembler output not supported'#000+
-  'F_Comp not supported'#000+
-  'F_Direct not support for binary writers'#000+
-  'E_Allocating of data is only ','allowed in bss section'#000+
-  'F_No binary writer selected'#000+
-  'E_Asm: Opcode $1 not in table'#000+
-  'E_Asm: $1 invalid combination of opcode and operands'#000+
-  'E_Asm: 16 Bit references not supported'#000+
-  'E_Asm: Invalid effective address'#000+
-  'E_Asm: Immediate or reference expe','cted'#000+
-  'E_Asm: $1 value exceeds bounds $2'#000+
-  'E_Asm: Short jump is out of range $1'#000+
-  'E_Asm: Undefined label $1'#000+
-  'W_Source operating system redefined'#000+
-  'I_Assembling (pipe) $1'#000+
-  'E_Can'#039't create assember file: $1'#000+
-  'E_Can'#039't create object file: $1'#000+
-  'E_Can'#039't create ','archive file: $1'#000+
-  'W_Assembler $1 not found, switching to external assembling'#000+
-  'T_Using assembler: $1'#000+
-  'W_Error while assembling exitcode $1'#000+
-  'W_Can'#039't call the assembler, error $1 switching to external assembl'+
-  'ing'#000+
-  'I_Assembling $1'#000+
-  'I_Assembling smartl','ink $1'#000+
-  'W_Object $1 not found, Linking may fail !'#000+
-  'W_Library $1 not found, Linking may fail !'#000+
-  'W_Error while linking'#000+
-  'W_Can'#039't call the linker, switching to external linking'#000+
-  'I_Linking $1'#000+
-  'W_Util $1 not found, switching to external linking'#000+
-  'T_Using',' util $1'#000+
-  'E_Creation of Executables not supported'#000+
-  'E_Creation of Dynamic/Shared Libraries not supported'#000+
-  'I_Closing script $1'#000+
-  'W_resource compiler not found, switching to external mode'#000+
-  'I_Compiling resource $1'#000+
-  'F_Can'#039't post process executable $1'#000+
-  'F','_Can'#039't open executable $1'#000+
-  'X_Size of Code: $1 bytes'#000+
-  'X_Size of initialized data: $1 bytes'#000+
-  'X_Size of uninitialized data: $1 bytes'#000+
-  'X_Stack space reserved: $1 bytes'#000+
-  'X_Stack space commited: $1 bytes'#000+
-  'T_Unitsearch: $1'#000+
-  'T_PPU Loading $1'#000+
-  'U_PPU Name: $','1'#000+
-  'U_PPU Flags: $1'#000+
-  'U_PPU Crc: $1'#000+
-  'U_PPU Time: $1'#000+
-  'U_PPU File too short'#000+
-  'U_PPU Invalid Header (no PPU at the begin)'#000+
-  'U_PPU Invalid Version $1'#000+
-  'U_PPU is compiled for an other processor'#000+
-  'U_PPU is compiled for an other target'#000+
-  'U_PPU Source: $1'#000+
-  'U_Writin','g $1'#000+
-  'F_Can'#039't Write PPU-File'#000+
-  'F_Error reading PPU-File'#000+
-  'F_unexpected end of PPU-File'#000+
-  'F_Invalid PPU-File entry: $1'#000+
-  'F_PPU Dbx count problem'#000+
-  'E_Illegal unit name: $1'#000+
-  'F_Too much units'#000+
-  'F_Circular unit reference between $1 and $2'#000+
-  'F_Can'#039't compile unit',' $1, no sources available'#000+
-  'F_Can'#039't find unit $1'#000+
-  'W_Unit $1 was not found but $2 exists'#000+
-  'F_Unit $1 searched but $2 found'#000+
-  'W_Compiling the system unit requires the -Us switch'#000+
-  'F_There were $1 errors compiling module, stopping'#000+
-  'U_Load from $1 ($2) u','nit $3'#000+
-  'U_Recompiling $1, checksum changed for $2'#000+
-  'U_Recompiling $1, source found only'#000+
-  'U_Recompiling unit, static lib is older than ppufile'#000+
-  'U_Recompiling unit, shared lib is older than ppufile'#000+
-  'U_Recompiling unit, obj and asm are older than pp','ufile'#000+
-  'U_Recompiling unit, obj is older than asm'#000+
-  'U_Parsing interface of $1'#000+
-  'U_Parsing implementation of $1'#000+
-  'U_Second load for unit $1'#000+
-  'U_PPU Check file $1 time $2'#000+
-  '$1 [options] <inputfile> [options]'#000+
-  'W_Only one source file supported'#000+
-  'W_DEF file ca','n be created only for OS/2'#000+
-  'E_nested response files are not supported'#000+
-  'F_No source file name in command line'#000+
-  'N_No option inside $1 config file'#000+
-  'E_Illegal parameter: $1'#000+
-  'H_-? writes help pages'#000+
-  'F_Too many config files nested'#000+
-  'F_Unable to open file',' $1'#000+
-  'N_Reading further options from $1'#000+
-  'W_Target is already set to: $1'#000+
-  'W_Shared libs not supported on DOS platform, reverting to static'#000+
-  'F_too many IF(N)DEFs'#000+
-  'F_too many ENDIFs'#000+
-  'F_open conditional at the end of the file'#000+
-  'W_Debug information gener','ation is not supported by this executable'#000+
-  'H_Try recompiling with -dGDB'#000+
-  'E_You are using the obsolete switch $1'#000+
-  'E_You are using the obsolete switch $1, please use $2'#000+
-  'N_Switching assembler to default source writing assembler'#000+
-  'W_Assembler output',' selected "$1" is not compatible with "$2"'#000+
-  'W_"$1" assembler use forced'#000+
-  'Free Pascal Compiler version $FPCVER [$FPCDATE] for $FPCTARGET'#000+
-  'Copyright (c) 1993-2000 by Florian Klaempfl'#000+
-  'Free Pascal Compiler version $FPCVER'#000+
+  '02016_W_Enumerated can be saved in 1,2 or 4 bytes only'#000+
+  '02017_E_$ENDIF expected for $1 $2 defined in line $3'#000+
+  '02018_E_Syntax error while parsing a conditional compiling expression'#000+
+  '02019_E_Evaluating a conditional compiling express','ion'#000+
+  '02020_W_Macro contents is cut after char 255 to evalute expression'#000+
+  '02021_E_ENDIF without IF(N)DEF'#000+
+  '02022_F_User defined: $1'#000+
+  '02023_E_User defined: $1'#000+
+  '02024_W_User defined: $1'#000+
+  '02025_N_User defined: $1'#000+
+  '02026_H_User defined: $1'#000+
+  '02027_I_User ','defined: $1'#000+
+  '02028_E_Keyword redefined as macro has no effect'#000+
+  '02029_F_Macro buffer overflow while reading or expanding a macro'#000+
+  '02030_W_Extension of macros exceeds a deep of 16.'#000+
+  '02031_E_compiler switches aren'#039't allowed in (* ... *) styled com','m'+
+  'ents'#000+
+  '02032_D_Handling switch "$1"'#000+
+  '02033_C_ENDIF $1 found'#000+
+  '02034_C_IFDEF $1 found, $2'#000+
+  '02035_C_IFOPT $1 found, $2'#000+
+  '02036_C_IF $1 found, $2'#000+
+  '02037_C_IFNDEF $1 found, $2'#000+
+  '02038_C_ELSE $1 found, $2'#000+
+  '02039_C_Skipping until...'#000+
+  '02040_I_Press <return> t','o continue'#000+
+  '02041_W_Unsupported switch $1'#000+
+  '02042_W_Illegal compiler directive $1'#000+
+  '02043_T_Back in $1'#000+
+  '02044_W_Unsupported application type: $1'#000+
+  '02045_W_APPTYPE isn'#039't support by the target OS'#000+
+  '02046_W_DESCRIPTION is only supported for OS2 and Win3','2'#000+
+  '02047_N_VERSION is not supported by target OS.'#000+
+  '02048_N_VERSION only for exes or DLLs'#000+
+  '02049_W_Wrong format for VERSION directive $1'#000+
+  '02050_W_Unsupported assembler style specified $1'#000+
+  '02051_W_ASM reader switch is not possible inside asm state','ment, $1 w'+
+  'ill be effective only for next'#000+
+  '02052_E_Wrong switch toggle, use ON/OFF or +/-'#000+
+  '02053_E_Resource files are not supported for this target'#000+
+  '02054_W_Include environment $1 not found in environment'#000+
+  '02055_E_Illegal value for FPU register ','limit'#000+
+  '02056_W_Only one resource file is supported for this target'#000+
+  '03000_E_Parser - Syntax Error'#000+
+  '03001_W_Procedure type FAR ignored'#000+
+  '03002_W_Procedure type NEAR ignored'#000+
+  '03003_W_Procedure type INTERRUPT ignored for not i386'#000+
+  '03004_E_INTERRUPT p','rocedure 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+
+  '03007_E_No DLL File specified'#000+
+  '03008_E_Duplicate exported function name $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+
+  '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+
+  '03014_E_Destructor name must be DONE'#000+
+  '03015_E_Illegal open parameter'#000+
+  '03016_E_Procedure type INLINE not supported'#000+
+  '03017_W_Private methods shouldn'#039't be VIRTUAL'#000+
+  '03018_W_Constructor should be public'#000+
+  '03019_W_Destructor should be public'#000+
+  '03','020_N_Class should have one destructor only'#000+
+  '03021_E_Local class definitions are not allowed'#000+
+  '03022_F_Anonym class definitions are not allowed'#000+
+  '03023_E_The object $1 has no VMT'#000+
+  '03024_E_Illegal parameter list'#000+
+  '03025_E_Wrong parameter type specif','ied for arg no. $1'#000+
+  '03026_E_Wrong amount of parameters specified'#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+
+  '030','30_E_function header $1 doesn'#039't match forward : var name chan'+
+  'ges $2 => $3'#000+
+  '03031_N_Values in enumeration types have to be ascending'#000+
+  '03032_N_Interface and implementation names are different $1 => $2'#000+
+  '03033_E_With can not be used for variables ','in a different segment'#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+
+  '03038_E_Upper bound of case range is less than lower',' bound'#000+
+  '03039_E_typed constants of classes are not allowed'#000+
+  '03040_E_functions variables of overloaded functions are not allowed'#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 o','f obje'+
+  'cts'#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 identifier expected'#000+
+  '03046_E_type identifier not allowed here'#000+
+  '03047_E_method identif','ier expected'#000+
+  '03048_E_function header doesn'#039't match any method of this class'#000+
+  '03049_P_procedure/function $1'#000+
+  '03050_E_Illegal floating point constant'#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+
+  '03054_E_Only class methods can be accessed in class methods'#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 met','hod is hidden by $1'#000+
+  '03058_E_There 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 prorperty directive is not yet implemented'#000+
+  '03061_E_Illegal symbol for property access'#000+
+  '0','3062_E_Cannot access a protected field of an object here'#000+
+  '03063_E_Cannot access a private field of an object here'#000+
+  '03064_W_overloaded method of virtual method should be virtual: $1'#000+
+  '03065_W_overloaded method of non-virtual method should be non','-virtua'+
+  'l: $1'#000+
+  '03066_E_overloaded methods which are virtual must have the same return'+
+  ' type: $1'#000+
+  '03067_E_EXPORT declared functions can'#039't be nested'#000+
+  '03068_E_methods can'#039't be EXPORTed'#000+
+  '03069_E_call by var parameters have to match exactly: Got $1 ex','pecte'+
+  'd $2'#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+
+  '03073_E_Illegal use of '#039':'#039#000+
+  '03074_E_range ','check error in set constructor or duplicate set elemen'+
+  't'#000+
+  '03075_E_Pointer to object expected'#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 ty','pe 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+
+  '03083_E_Impossible to overload assignment for equal types'#000+
+  '03084_E_Impossible ope','rator overload'#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+
+  '03087_E_Assembler incompatible with function return type'#000+
+  '03088_E_Procedure overloading is switched off'#000+
+  '03089_E_It i','s not possible to overload this operator (overload = ins'+
+  'tead)'#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+
+  '03093_E_The mix of CLASSES and OBJECTS i','sn'#039't allowed'#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 a var or const'#000+
+  '03097_E_Only ONE variable can be initialized'#000+
+  '03098_E_Abstr','act methods shouldn'#039't have any definition (with fun'+
+  'ction body)'#000+
+  '03099_E_This overloaded function can'#039't be local (must be exported)'+
   #000+
-  'Compiler Date  : $FPCDAT','E'#000+
-  'Compiler Target: $FPCTARGET'#000+
+  '03100_W_Virtual methods are used without a constructor in $1'#000+
+  '03101_M_Macro defined: $1'#000+
+  '03102_M_Macro undefined',': $1'#000+
+  '03103_M_Macro $1 set to $2'#000+
+  '03104_I_Compiling $1'#000+
+  '03105_U_Parsing interface of unit $1'#000+
+  '03106_U_Parsing implementation of $1'#000+
+  '03107_D_Compiling $1 for the second time'#000+
+  '03108_E_Array properties aren'#039't allowed here'#000+
+  '03109_E_No property found t','o override'#000+
+  '03110_E_Only one default property is allowed, found inherited default '+
+  'property in class $1'#000+
+  '03111_E_The default property must be an array property'#000+
+  '03112_E_Virtual constructors are only supported in class object model'#000+
+  '03113_E_No de','fault 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 use t'+
+  'he class as ancestor'#000+
+  '03116_E_Local operators not supported'#000+
+  '03117_E_Procedu','re directive $1 not allowed in interface section'#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+
+  '0','3121_E_Can'#039't use both EXPORT and EXTERNAL'#000+
+  '03122_E_NAME keyword expected'#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+
+  '031','27_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+
+  '03130_E_Register calling (fastcall) not supported'#000+
+  '03131_E_Property can'#039't have a',' default value'#000+
+  '03132_E_The default value of a property 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+
+  '03135_W_Empty import name specified'#000+
+  '03136_W_An import name is re','quired'#000+
+  '03137_E_Function internal name changed after use of function'#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+
+  '03141_W_string "$1" is longer than $2'#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+
+  '03145_E_Duplicate message label: $1'#000+
+  '03146_E_Self can be only an explicit parame','ter in message handlers'#000+
+  '03147_E_Threadvars can be only static or global'#000+
+  '03148_F_Direct assembler not supported for binary output format'#000+
+  '03149_W_Don'#039't load OBJPAS unit manual, use {$mode objfpc} or {$mod'+
+  'e delphi} instead'#000+
+  '03150_E_OVERRIDE can',#039't be used in objects'#000+
+  '03151_E_Data types which requires initialization/finalization can'#039't'+
+  ' be used in variant records'#000+
+  '03152_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 ','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+
+  '03157_E_Procedure directive expected'#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+
+  '03161_E_Compile without -WD option'#000+
+  '04000_E_Type mismatch'#000+
+  '04001_E_Incompatible types: got "$1" expected "$2"'#000+
+  '04002_E_T','ype mismatch between $1 and $2'#000+
+  '04003_E_Type identifier expected'#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+
+  '040','08_E_pointer type expected, but got "$1"'#000+
+  '04009_E_class type expected, but got "$1"'#000+
+  '04010_E_Variable or type indentifier expected'#000+
+  '04011_E_Can'#039't evaluate constant expression'#000+
+  '04012_E_Set elements are not compatible'#000+
+  '04013_E_Operation not implem','ented 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 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+
+  '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+
+  '04021_E_Type conflict between set elements'#000+
+  '04022_W_lo/hi(dword/q','word) 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_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_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+
+  '04032_E_Can'#039't assign values to const variable'#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+
+  '05004_E','_Unknown identifier $1'#000+
+  '05005_E_Forward declaration not solved $1'#000+
+  '05006_F_Identifier type already defined as type'#000+
+  '05007_E_Error in type definition'#000+
+  '05008_E_Type identifier not defined'#000+
+  '05009_E_Forward type not resolved $1'#000+
+  '05010_E_Only static v','ariables can be used in static methods or outsi'+
+  'de methods'#000+
+  '05011_E_Invalid call to tvarsym.mangledname()'#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+
+  '05014_W_Label not ','defined $1'#000+
+  '05015_E_Label used but not defined $1'#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_label already defined'#000+
+  '05021_E_ille','gal type declaration of set elements'#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 parameter $1 is assigned but never used'#000+
+  '0502','7_N_Local variable $1 is assigned but never 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_Private method $1.$2 never used'#000+
+  '05032_E_Set type expec','ted'#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+
+  '05035_E_Unknown record field identifier $1'#000+
+  '05036_W_Local variable $1 does not seem to be initialized'#000+
+  '05037_W_Variable $1 do','es not seem to be initialized'#000+
+  '05038_E_identifier idents no member $1'#000+
+  '05039_B_Found declaration: $1'#000+
+  '05040_E_Data segment too large (max. 2GB)'#000+
+  '06000_E_BREAK not allowed'#000+
+  '06001_E_CONTINUE not allowed'#000+
+  '06002_E_Expression too complicated - FPU sta','ck overflow'#000+
+  '06003_E_Illegal expression'#000+
+  '06004_E_Invalid integer expression'#000+
+  '06005_E_Illegal qualifier'#000+
+  '06006_E_High range limit < low range limit'#000+
+  '06007_E_Illegal counter variable'#000+
+  '06008_E_Can'#039't determine which overloaded function to call'#000+
+  '06009_','E_Parameter list size exceeds 65535 bytes'#000+
+  '06010_E_Illegal type conversion'#000+
+  '06011_D_Conversion between ordinals and pointers is not portable acros'+
+  's platforms'#000+
+  '06012_E_File types must be var parameters'#000+
+  '06013_E_The use of a far pointer isn'#039't all','owed there'#000+
+  '06014_E_illegal call by reference parameters'#000+
+  '06015_E_EXPORT declared functions can'#039't be called'#000+
+  '06016_W_Possible illegal call of constructor or destructor (doesn'#039't'+
+  ' match to this context)'#000+
+  '06017_N_Inefficient code'#000+
+  '06018_W_unreachabl','e code'#000+
+  '06019_E_procedure call with stackframe ESP/SP'#000+
+  '06020_E_Abstract methods can'#039't be called directly'#000+
+  '06021_F_Internal Error in getfloatreg(), allocation failure'#000+
+  '06022_F_Unknown float type'#000+
+  '06023_F_SecondVecn() base defined twice'#000+
+  '06024_F_Ex','tended cg68k not supported'#000+
+  '06025_F_32-bit unsigned not supported in MC68000 mode'#000+
+  '06026_F_Internal Error in secondinline()'#000+
+  '06027_D_Register $1 weight $2 $3'#000+
+  '06028_E_Stack limit excedeed in local routine'#000+
+  '06029_D_Stack frame is omitted'#000+
+  '06030_W_','Range check for 64 bit integers is not supported on this tar'+
+  'get'#000+
+  '06031_E_Object or class methods can'#039't be inline.'#000+
+  '06032_E_Procvar calls can'#039't be inline.'#000+
+  '06033_E_No code for inline procedure stored'#000+
+  '06034_E_Direct call of interrupt procedure $','1 is not possible'#000+
+  '06035_E_Element zero of an ansi/wide- or longstring can'#039't be acces'+
+  'sed, use (set)length instead'#000+
+  '06036_E_Include and exclude not implemented in this case'#000+
+  '06037_E_Constructors or destructors can not be called inside a '#039'wi'+
+  'th'#039' ','clause'#000+
+  '06038_E_Cannot call message handler method directly'#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+
+  '07000_D_Starting $1 styled assembler parsing'#000+
+  '07001_D_Finished $1 s','tyled assembler parsing'#000+
+  '07002_E_Non-label pattern contains @'#000+
+  '07003_W_Override operator not supported'#000+
+  '07004_E_Error building record offset'#000+
+  '07005_E_OFFSET used without identifier'#000+
+  '07006_E_TYPE used without identifier'#000+
+  '07007_E_Cannot use local v','ariable 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+
+  '07011_E_Relocatable symbol can only be added'#000+
+  '07012_E_Invalid constant expression'#000+
+  '07013_E_Relocatable symbo','l 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+
+  '07017_E_Invalid base and index register usage'#000+
+  '07018_W_Possible error in object field han','dling'#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+
+  '07023_W_@CODE and @DATA not supported'#000+
+  '07024_E_Null label references are not allowed'#000+
+  '0','7025_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+
+  '07029_W_Fwait can cause emulation problems with emu387'#000+
+  '07030_W_FADD without operand translated into FADDP',#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+
+  '07034_E_Constant value out of bounds'#000+
+  '07035_E_Error converting decimal $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+
+  '07041_E_Cannot use SELF outside a method'#000+
+  '07042_E_Cannot use OLDEB','P 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+
+  '07046_W_Size suffix and destination or source size do not match'#000+
+  '070','47_E_Assembler syntax error'#000+
+  '07048_E_Invalid combination of opcode and operands'#000+
+  '07049_E_Assemler syntax error in operand'#000+
+  '07050_E_Assemler syntax error in constant'#000+
+  '07051_E_Invalid String expression'#000+
+  '07052_bit constant created for address'#000+
+  '07053','_E_Unrecognized opcode $1'#000+
+  '07054_E_Invalid or missing opcode'#000+
+  '07055_E_Invalid combination of prefix 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 ignored'#000+
+  '07059_W_FAR ignor','ed'#000+
+  '07060_E_Duplicate local symbol $1'#000+
+  '07061_E_Undefined local symbol $1'#000+
+  '07062_E_Unknown label identifier $1'#000+
+  '07063_E_Invalid register name'#000+
+  '07064_E_Invalid floating point register name'#000+
+  '07065_E_NOR not supported'#000+
+  '07066_W_Modulo not supported'#000+
+  '070','67_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+
+  '07071_E_Invalid segment override expression'#000+
+  '07072_W_Identifier $1 supp','osed 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+
+  '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+
+  '07079_W_32bit constant created for address'#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/clas','ses directly'#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+
+  '08004_E_Allocating of data is only allowed in bss section'#000+
+  '08005_F_No bina','ry writer selected'#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+
+  '08009_E_Asm: Invalid effective address'#000+
+  '08010_E_Asm: Immediate or reference expect','ed'#000+
+  '08011_E_Asm: $1 value exceeds bounds $2'#000+
+  '08012_E_Asm: Short jump is out of range $1'#000+
+  '08013_E_Asm: Undefined label $1'#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+
+  '09005_W_Assembler $1 not found, switching to external assembling'#000+
+  '09006_T_Using assembler: $1'#000+
+  '09007_W_Error while assembling exitcode $1'#000+
+  '09008_W_Can'#039't call the assembler, error $','1 switching to external'+
+  ' assembling'#000+
+  '09009_I_Assembling $1'#000+
+  '09010_I_Assembling smartlink $1'#000+
+  '09011_W_Object $1 not found, Linking may fail !'#000+
+  '09012_W_Library $1 not found, Linking may fail !'#000+
+  '09013_W_Error while linking'#000+
+  '09014_W_Can'#039't call the lin','ker, switching to external linking'#000+
+  '09015_I_Linking $1'#000+
+  '09016_W_Util $1 not found, switching to external linking'#000+
+  '09017_T_Using util $1'#000+
+  '09018_E_Creation of Executables not supported'#000+
+  '09019_E_Creation of Dynamic/Shared Libraries not supported'#000+
+  '09','020_I_Closing script $1'#000+
+  '09021_W_resource compiler not found, switching to external mode'#000+
+  '09022_I_Compiling resource $1'#000+
+  '09023_F_Can'#039't post process executable $1'#000+
+  '09024_F_Can'#039't open executable $1'#000+
+  '09025_X_Size of Code: $1 bytes'#000+
+  '09026_X_Size of i','nitialized data: $1 bytes'#000+
+  '09027_X_Size of uninitialized data: $1 bytes'#000+
+  '09028_X_Stack space reserved: $1 bytes'#000+
+  '09029_X_Stack space commited: $1 bytes'#000+
+  '10000_T_Unitsearch: $1'#000+
+  '10001_T_PPU Loading $1'#000+
+  '10002_U_PPU Name: $1'#000+
+  '10003_U_PPU Flags: $1'#000+
+  '10','004_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+
+  '10008_U_PPU Invalid Version $1'#000+
+  '10009_U_PPU is compiled for an other processor'#000+
+  '10010_U_PPU is compiled for an other target'#000+
+  '100','11_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+
+  '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 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+
+  '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+
+  '10025_W_Compiling',' the system unit requires the -Us switch'#000+
+  '10026_F_There were $1 errors compiling module, stopping'#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+
+  '10030_U_Recompiling',' unit, static lib is older than ppufile'#000+
+  '10031_U_Recompiling unit, shared lib is older than 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,
+  '10035_U_Parsing implementation of $1'#000+
+  '10036_U_Second load for unit $1'#000+
+  '10037_U_PPU Check file $1 time $2'#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+
+  '11003_E_nes','ted 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+
+  '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+
+  '11010_N_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 static'+
   #000+
-  'This program comes under the GNU General Public Licence'#000+
-  'For more information read COPYING.FPC'#000+
-  #000+
-  'Report bugs,suggestions etc to:'#000+
+  '11013_F_too many IF(N)DEFs'#000+
+  '11014_F_too many ENDIFs'#000+
+  '11015_F_open conditional at the e','nd of the file'#000+
+  '11016_W_Debug information generation is not supported by this executab'+
+  'le'#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+
+  '11020_N_Swit','ching assembler to default source writing assembler'#000+
+  '11021_W_Assembler output selected "$1" is not compatible with "$2"'#000+
+  '11022_W_"$1" assembler use forced'#000+
+  '11023_Free Pascal Compiler version $FPCVER [$FPCDATE] for $FPCTARGET'#010+
+  'Copyright (c) 1993','-2000 by Florian Klaempfl'#000+
+  '11024_Free Pascal Compiler version $FPCVER'#010+
+  #010+
+  'Compiler Date  : $FPCDATE'#010+
+  'Compiler Target: $FPCTARGET'#010+
+  #010+
+  'This program comes under the GNU General Public Licence'#010+
+  'For more information read COPYING.FPC'#010+
+  #010+
+  'Report bugs,suggesti','ons etc to:'#010+
   '                 [email protected]'#000+
-  '**0*_put + after a boolean switch option to',' enable it, - to disable '+
-  'it'#000+
-  '**1a_the compiler doesn'#039't delete the generated assembler file'#000+
-  '**2al_list sourcecode lines in assembler file'#000+
-  '**2ar_list register allocation/release info in assembler file'#000+
-  '**2at_list temp allocation/release info in',' assembler file'#000+
-  '**1b_generate browser info'#000+
-  '**2bl_generate local symbol info'#000+
-  '**1B_build all modules'#000+
-  '**1C<x>_code generation options:'#000+
-  '**2CD_create also dynamic library (not supported)'#000+
-  '**2Ch<n>_<n> bytes heap (between 1023 and 67107840)'#000+
-  '**2Ci_','IO-checking'#000+
-  '**2Cn_omit linking stage'#000+
-  '**2Co_check overflow of integer operations'#000+
-  '**2Cr_range checking'#000+
-  '**2Cs<n>_set stack size to <n>'#000+
-  '**2Ct_stack checking'#000+
-  '**2CX_create also smartlinked library'#000+
-  '**1d<x>_defines the symbol <x>'#000+
-  '*O1D_generate a DE','F file'#000+
-  '*O2Dd<x>_set description to <x>'#000+
-  '*O2Dw_PM application'#000+
-  '**1e<x>_set path to executable'#000+
-  '**1E_same as -Cn'#000+
-  '**1F<x>_set file names and paths:'#000+
-  '**2FD<x>_sets the directory where to search for compiler utilities'#000+
-  '**2Fe<x>_redirect error output ','to <x>'#000+
-  '**2FE<x>_set exe/unit output path to <x>'#000+
-  '**2Fi<x>_adds <x> to include path'#000+
-  '**2Fl<x>_adds <x> to library path'#000+
-  '*L2FL<x>_uses <x> as dynamic linker'#000+
-  '**2Fo<x>_adds <x> to object path'#000+
-  '**2Fr<x>_load error message file <x>'#000+
-  '**2Fu<x>_adds <x> ','to unit path'#000+
-  '**2FU<x>_set unit output path to <x>, overrides -FE'#000+
-  '*g1g_generate debugger information:'#000+
-  '*g2gg_use gsym'#000+
-  '*g2gd_use dbx'#000+
-  '*g2gh_use heap trace unit (for memory leak debugging)'#000+
-  '*g2gl_use line info unit to show more info for backtrace','s'#000+
-  '*g2gc_generate checks for pointers'#000+
-  '**1i_information'#000+
-  '**2iD_return compiler date'#000+
-  '**2iV_return compiler version'#000+
-  '**2iSO_return compiler OS'#000+
-  '**2iSP_return compiler processor'#000+
-  '**2iTO_return target OS'#000+
-  '**2iTP_return target processor'#000+
-  '**1I<x>_adds <x','> to include path'#000+
-  '**1k<x>_Pass <x> to the linker'#000+
-  '**1l_write logo'#000+
-  '**1n_don'#039't read the default config file'#000+
-  '**1o<x>_change the name of the executable produced to <x>'#000+
-  '**1pg_generate profile code for gprof (defines FPC_PROFILE)'#000+
-  '*L1P_use pipes in','stead of creating temporary assembler files'#000+
-  '**1S<x>_syntax options:'#000+
-  '**2S2_switch some Delphi 2 extensions on'#000+
-  '**2Sc_supports operators like C (*=,+=,/= and -=)'#000+
-  '**2sa_include assertion code.'#000+
-  '**2Sd_tries to be Delphi compatible'#000+
-  '**2Se<x>_compil','er stops after the <x> errors (default is 1)'#000+
-  '**2Sg_allow LABEL and GOTO'#000+
-  '**2Sh_Use ansistrings'#000+
-  '**2Si_support C++ styled INLINE'#000+
-  '**2Sm_support macros like C (global)'#000+
-  '**2So_tries to be TP/BP 7.0 compatible'#000+
-  '**2Sp_tries to be gpc compatible'#000+
-  '**2Ss','_constructor name must be init (destructor must be done)'#000+
-  '**2St_allow static keyword in objects'#000+
-  '**1s_don'#039't call assembler and linker (only with -a)'#000+
-  '**1u<x>_undefines the symbol <x>'#000+
-  '**1U_unit options:'#000+
-  '**2Un_don'#039't check the unit name'#000+
-  '**2Us_com','pile a system unit'#000+
-  '**1v<x>_Be verbose. <x> is a combination of the following letters:'#000+
-  '**2*_e : Show errors (default)       d : Show debug info'#000+
-  '**2*_w : Show warnings               u : Show unit info'#000+
-  '**2*_n : Show notes                  t : ','Show tried/used files'#000+
-  '**2*_h : Show hints                  m : Show defined macros'#000+
-  '**2*_i : Show general info           p : Show compiled procedures'#000+
-  '**2*_l : Show linenumbers            c : Show conditionals'#000+
-  '**2*_a : Show everything        ','     0 : Show nothing (except errors'+
-  ')'#000+
-  '**2*_b : Show all procedure          r : Rhide/GCC compatibility mode'#000+
-  '**2*_    declarations if an error    x : Executable info (Win32 only)'#000+
-  '**2*_    occurs'#000+
-  '**1X_executable options:'#000+
-  '*L2Xc_link with the c',' library'#000+
-  '**2Xs_strip all symbols from executable'#000+
-  '**2XD_try to link dynamic          (defines FPC_LINK_DYNAMIC)'#000+
-  '**2XS_try to link static (default) (defines FPC_LINK_STATIC)'#000+
-  '**2XX_try to link smart            (defines FPC_LINK_SMART)'#000+
-  '**0*_Pro','cessor specific options:'#000+
-  '3*1A<x>_output format:'#000+
-  '3*2Aas_assemble using GNU AS'#000+
-  '3*2Aasaout_assemble using GNU AS for aout (Go32v1)'#000+
-  '3*2Anasmcoff_coff (Go32v2) file using Nasm'#000+
-  '3*2Anasmelf_elf32 (Linux) file using Nasm'#000+
-  '3*2Anasmobj_obj file using ','Nasm'#000+
-  '3*2Amasm_obj file using Masm (Microsoft)'#000+
-  '3*2Atasm_obj file using Tasm (Borland)'#000+
-  '3*2Acoff_coff (Go32v2) using internal writer'#000+
-  '3*2Apecoff_pecoff (Win32) using internal writer'#000+
-  '3*1R<x>_assembler reading style:'#000+
-  '3*2Ratt_read AT&T style assem','bler'#000+
-  '3*2Rintel_read Intel style assembler'#000+
-  '3*2Rdirect_copy assembler text directly to assembler file'#000+
-  '3*1O<x>_optimizations:'#000+
-  '3*2Og_generate smaller code'#000+
-  '3*2OG_generate faster code (default)'#000+
-  '3*2Or_keep certain variables in registers'#000+
-  '3*2Ou_enab','le uncertain optimizations (see docs)'#000+
-  '3*2O1_level 1 optimizations (quick optimizations)'#000+
-  '3*2O2_level 2 optimizations (-O1 + slower optimizations)'#000+
-  '3*2O3_level 3 optimizations (same as -O2u)'#000+
-  '3*2Op<x>_target processor:'#000+
-  '3*3Op1_set target process','or to 386/486'#000+
-  '3*3Op2_set target processor to Pentium/PentiumMMX (tm)'#000+
-  '3*3Op3_set target processor to PPro/PII/c6x86/K6 (tm)'#000+
-  '3*1T<x>_Target operating system:'#000+
-  '3*2TGO32V1_version 1 of DJ Delorie DOS extender'#000+
-  '3*2TGO32V2_version 2 of DJ Delorie D','OS extender'#000+
-  '3*2TLINUX_Linux'#000+
-  '3*2TOS2_OS/2 2.x'#000+
-  '3*2TWin32_Windows 32 Bit'#000+
-  '3*1W<x>_Win32 target options'#000+
-  '3*2WB<x>_Set Image base to Hexadecimal <x> value'#000+
-  '3*2WC_Specify console type application'#000+
-  '3*2WD_Use DEFFILE to export functions of DLL or EXE'#000+
-  '3','*2WG_Specify graphic type application'#000+
-  '3*2WN_Do not generate relocation code (necessary for debugging)'#000+
-  '3*2WR_Generate relocation code'#000+
-  '6*1A<x>_output format'#000+
-  '6*2Aas_Unix o-file using GNU AS'#000+
-  '6*2Agas_GNU Motorola assembler'#000+
-  '6*2Amit_MIT Syntax (ol','d GAS)'#000+
-  '6*2Amot_Standard Motorola assembler'#000+
-  '6*1O_optimizations:'#000+
-  '6*2Oa_turn on the optimizer'#000+
-  '6*2Og_generate smaller code'#000+
-  '6*2OG_generate faster code (default)'#000+
-  '6*2Ox_optimize maximum (still BUGGY!!!)'#000+
-  '6*2O2_set target processor to a MC68020+'#000+
-  '6*1','R<x>_assembler reading style:'#000+
-  '6*2RMOT_read motorola style assembler'#000+
-  '6*1T<x>_Target operating system:'#000+
-  '6*2TAMIGA_Commodore Amiga'#000+
-  '6*2TATARI_Atari ST/STe/TT'#000+
-  '6*2TMACOS_Macintosh m68k'#000+
-  '6*2TLINUX_Linux-68k'#000+
-  '**1*_'#000+
-  '**1?_shows this help'#000+
-  '**1h_shows this',' help without waiting'#000
+  '11025_**0*_put + after a boolean switch option to enable it, - to disa'+
+  'ble it'#010+
+  '**1a_the compiler doesn'#039't delete the generated assembler file'#010+
+  '**2al_list sourcecode lines in assembler file'#010+
+  '**2a','r_list register allocation/release info in assembler file'#010+
+  '**2at_list temp allocation/release info in assembler file'#010+
+  '**1b_generate browser info'#010+
+  '**2bl_generate local symbol info'#010+
+  '**1B_build all modules'#010+
+  '**1C<x>_code generation options:'#010+
+  '**2CD_cr','eate also dynamic library (not supported)'#010+
+  '**2Ch<n>_<n> bytes heap (between 1023 and 67107840)'#010+
+  '**2Ci_IO-checking'#010+
+  '**2Cn_omit linking stage'#010+
+  '**2Co_check overflow of integer operations'#010+
+  '**2Cr_range checking'#010+
+  '**2Cs<n>_set stack size to <n>'#010+
+  '**2Ct_st','ack checking'#010+
+  '**2CX_create also smartlinked library'#010+
+  '**1d<x>_defines the symbol <x>'#010+
+  '*O1D_generate a DEF file'#010+
+  '*O2Dd<x>_set description to <x>'#010+
+  '*O2Dw_PM application'#010+
+  '**1e<x>_set path to executable'#010+
+  '**1E_same as -Cn'#010+
+  '**1F<x>_set file names and paths',':'#010+
+  '**2FD<x>_sets the directory where to search for compiler utilities'#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+
+  '*L2FL<x>_uses <x> as dyn','amic 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>_set unit output path to <x>, overrides -FE'#010+
+  '*g1g_generate debugger information:'#010+
+  '*g2gg_use gsym'#010+
+  '*g2gd_use dbx'#010+
+  '*g2gh_use ','heap trace unit (for memory leak debugging)'#010+
+  '*g2gl_use line info unit to show more info for backtraces'#010+
+  '*g2gc_generate checks for pointers'#010+
+  '**1i_information'#010+
+  '**2iD_return compiler date'#010+
+  '**2iV_return compiler version'#010+
+  '**2iSO_return compiler OS'#010+
+  '**2','iSP_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+
+  '**1l_write logo'#010+
+  '**1n_don'#039't read the default config file'#010+
+  '**1o<x>_change the name of the exec','utable produced to <x>'#010+
+  '**1pg_generate profile code for gprof (defines FPC_PROFILE)'#010+
+  '*L1P_use pipes instead of creating temporary assembler files'#010+
+  '**1S<x>_syntax options:'#010+
+  '**2S2_switch some Delphi 2 extensions on'#010+
+  '**2Sc_supports operators like C',' (*=,+=,/= and -=)'#010+
+  '**2sa_include assertion code.'#010+
+  '**2Sd_tries to be Delphi compatible'#010+
+  '**2Se<x>_compiler stops after the <x> errors (default is 1)'#010+
+  '**2Sg_allow LABEL and GOTO'#010+
+  '**2Sh_Use ansistrings'#010+
+  '**2Si_support C++ styled INLINE'#010+
+  '**2Sm_support ','macros like C (global)'#010+
+  '**2So_tries to be TP/BP 7.0 compatible'#010+
+  '**2Sp_tries to be gpc compatible'#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 (only wi','th -a)'#010+
+  '**1u<x>_undefines the symbol <x>'#010+
+  '**1U_unit options:'#010+
+  '**2Un_don'#039't check the unit name'#010+
+  '**2Us_compile a system unit'#010+
+  '**1v<x>_Be verbose. <x> is a combination of the following letters:'#010+
+  '**2*_e : Show errors (default)       d : Show debug in','fo'#010+
+  '**2*_w : Show warnings               u : Show unit info'#010+
+  '**2*_n : Show notes                  t : Show tried/used files'#010+
+  '**2*_h : Show hints                  m : Show defined macros'#010+
+  '**2*_i : Show general info           p : Show compiled pr','ocedures'#010+
+  '**2*_l : Show linenumbers            c : Show conditionals'#010+
+  '**2*_a : Show everything             0 : Show nothing (except errors)'#010+
+  '**2*_b : Show all procedure          r : Rhide/GCC compatibility mode'#010+
+  '**2*_    declarations if an erro','r    x : Executable info (Win32 only'+
+  ')'#010+
+  '**2*_    occurs'#010+
+  '**1X_executable options:'#010+
+  '*L2Xc_link with the c library'#010+
+  '**2Xs_strip all symbols from executable'#010+
+  '**2XD_try to link dynamic          (defines FPC_LINK_DYNAMIC)'#010+
+  '**2XS_try to link static (def','ault) (defines FPC_LINK_STATIC)'#010+
+  '**2XX_try to link smart            (defines FPC_LINK_SMART)'#010+
+  '**0*_Processor specific options:'#010+
+  '3*1A<x>_output format:'#010+
+  '3*2Aas_assemble using GNU AS'#010+
+  '3*2Aasaout_assemble using GNU AS for aout (Go32v1)'#010+
+  '3*2Anasmcoff','_coff (Go32v2) file using Nasm'#010+
+  '3*2Anasmelf_elf32 (Linux) file using Nasm'#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*2Acoff_coff (Go32v2) using internal writer'#010+
+  '3*2Apecoff','_pecoff (Win32) using internal writer'#010+
+  '3*1R<x>_assembler reading style:'#010+
+  '3*2Ratt_read AT&T style assembler'#010+
+  '3*2Rintel_read Intel style assembler'#010+
+  '3*2Rdirect_copy assembler text directly to assembler file'#010+
+  '3*1O<x>_optimizations:'#010+
+  '3*2Og_generate sm','aller code'#010+
+  '3*2OG_generate faster code (default)'#010+
+  '3*2Or_keep certain variables in registers'#010+
+  '3*2Ou_enable uncertain optimizations (see docs)'#010+
+  '3*2O1_level 1 optimizations (quick optimizations)'#010+
+  '3*2O2_level 2 optimizations (-O1 + slower optimizati','ons)'#010+
+  '3*2O3_level 3 optimizations (same as -O2u)'#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*3Op3_set target processor to PPro/PII/c6x86/K6 (tm)'#010+
+  '3*1T<x>_Target op','erating system:'#010+
+  '3*2TGO32V1_version 1 of DJ Delorie DOS extender'#010+
+  '3*2TGO32V2_version 2 of DJ Delorie DOS extender'#010+
+  '3*2TLINUX_Linux'#010+
+  '3*2TOS2_OS/2 2.x'#010+
+  '3*2TWin32_Windows 32 Bit'#010+
+  '3*1W<x>_Win32 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 export functions of DLL or EXE'#010+
+  '3*2WG_Specify graphic type application'#010+
+  '3*2WN_Do not generate relocation code (necessary for debugging)'#010+
+  '3*2WR_Generate relocation code'#010+
+  '6*1A<x>','_output format'#010+
+  '6*2Aas_Unix o-file using GNU AS'#010+
+  '6*2Agas_GNU Motorola assembler'#010+
+  '6*2Amit_MIT Syntax (old GAS)'#010+
+  '6*2Amot_Standard Motorola assembler'#010+
+  '6*1O_optimizations:'#010+
+  '6*2Oa_turn on the optimizer'#010+
+  '6*2Og_generate smaller code'#010+
+  '6*2OG_generate faster',' code (default)'#010+
+  '6*2Ox_optimize maximum (still BUGGY!!!)'#010+
+  '6*2O2_set target processor to a MC68020+'#010+
+  '6*1R<x>_assembler reading style:'#010+
+  '6*2RMOT_read motorola style assembler'#010+
+  '6*1T<x>_Target operating system:'#010+
+  '6*2TAMIGA_Commodore Amiga'#010+
+  '6*2TATARI_Ata','ri ST/STe/TT'#010+
+  '6*2TMACOS_Macintosh m68k'#010+
+  '6*2TLINUX_Linux-68k'#010+
+  '**1*_'#010+
+  '**1?_shows this help'#010+
+  '**1h_shows this help without waiting'#000
 );

+ 17 - 10
compiler/options.pas

@@ -176,21 +176,23 @@ end;
 
 procedure Toption.WriteLogo;
 var
-  i : tmsgconst;
+  p : pchar;
 begin
   MaybeLoadMessageFile;
-  for i:=option_logo_start to option_logo_end do
-   Message1(i,target_cpu_string);
+  p:=MessagePchar(option_logo);
+  while assigned(p) do
+   Comment(V_Normal,GetMsgLine(p));
 end;
 
 
 procedure Toption.WriteInfo;
 var
-  i : tmsgconst;
+  p : pchar;
 begin
   MaybeLoadMessageFile;
-  for i:=option_info_start to option_info_end do
-   Message(i);
+  p:=MessagePchar(option_info);
+  while assigned(p) do
+   Comment(V_Normal,GetMsgLine(p));
   StopOptions;
 end;
 
@@ -205,7 +207,6 @@ procedure Toption.WriteHelpPages;
   end;
 
 var
-  idx,
   lastident,
   j,outline,
   ident,
@@ -214,6 +215,7 @@ var
   opt   : string[32];
   input,
   s     : string;
+  p     : pchar;
 begin
   MaybeLoadMessageFile;
   Message1(option_usage,paramstr(0));
@@ -222,10 +224,11 @@ begin
    lines:=3
   else
    lines:=1;
-  for idx:=ord(ol_begin) to ord(ol_end) do
+  p:=MessagePChar(option_help_pages);
+  while assigned(p) do
    begin
    { get a line and reset }
-     s:=msg^.Get(idx);
+     s:=GetMsgLine(p);
      ident:=0;
      show:=false;
    { parse options }
@@ -1485,7 +1488,11 @@ end;
 end.
 {
   $Log$
-  Revision 1.70  2000-06-19 19:57:19  pierre
+  Revision 1.71  2000-06-30 20:23:38  peter
+    * new message files layout with msg numbers (but still no code to
+      show the number on the screen)
+
+  Revision 1.70  2000/06/19 19:57:19  pierre
    * smart link is default on win32
 
   Revision 1.69  2000/05/23 21:28:22  pierre

+ 6 - 2
compiler/scandir.inc

@@ -531,7 +531,7 @@ const
 
     procedure dir_message(t:tdirectivetoken);
       var
-        w   : tmsgconst;
+        w   : longint;
       begin
         case t of
        _DIR_STOP,
@@ -1419,7 +1419,11 @@ const
 
 {
   $Log$
-  Revision 1.82  2000-06-25 19:08:27  hajny
+  Revision 1.83  2000-06-30 20:23:38  peter
+    * new message files layout with msg numbers (but still no code to
+      show the number on the screen)
+
+  Revision 1.82  2000/06/25 19:08:27  hajny
     + $R support for OS/2 (EMX) added
 
   Revision 1.81  2000/05/23 20:18:25  pierre

+ 7 - 3
compiler/scanner.pas

@@ -108,7 +108,7 @@ unit scanner;
           procedure end_of_file;
           procedure checkpreprocstack;
           procedure poppreprocstack;
-          procedure addpreprocstack(atyp : preproctyp;a:boolean;const s:string;w:tmsgconst);
+          procedure addpreprocstack(atyp : preproctyp;a:boolean;const s:string;w:longint);
           procedure elsepreprocstack;
           procedure linebreak;
           procedure readchar;
@@ -634,7 +634,7 @@ implementation
       end;
 
 
-    procedure tscannerfile.addpreprocstack(atyp : preproctyp;a:boolean;const s:string;w:tmsgconst);
+    procedure tscannerfile.addpreprocstack(atyp : preproctyp;a:boolean;const s:string;w:longint);
       begin
         preprocstack:=new(ppreprocstack,init(atyp,((preprocstack=nil) or preprocstack^.accept) and a,preprocstack));
         preprocstack^.name:=s;
@@ -1835,7 +1835,11 @@ exit_label:
 end.
 {
   $Log$
-  Revision 1.113  2000-06-18 18:05:54  peter
+  Revision 1.114  2000-06-30 20:23:38  peter
+    * new message files layout with msg numbers (but still no code to
+      show the number on the screen)
+
+  Revision 1.113  2000/06/18 18:05:54  peter
     * no binary value reading with % if not fpc mode
     * extended illegal char message with the char itself (Delphi like)
 

+ 159 - 140
compiler/utils/msg2inc.pp

@@ -16,16 +16,17 @@
  **********************************************************************}
 program msg2inc;
 uses
-  crc,
   strings;
 
 const
-  version='0.99.14';
+  version='0.99.15';
 {$ifdef linux}
   eollen=1;
 {$else}
   eollen=2;
 {$endif}
+  msgparts = 20;
+
 type
   TMode=(M_Char,M_Tex,M_Intel,M_String,M_Renumber);
 var
@@ -40,87 +41,27 @@ var
   enumsize,
   msgsize    : longint;
 
-function XlatString(Var S : String):boolean;
-{
-  replaces \xxx in string S with #x, and \\ with \ (escaped)
-  which can reduce size of string.
-  Returns false when an error in the line exists
-}
-  Function GetNumber(Position:longint):longint;
-  var
-    C,Value,i : longint;
-  begin
-    I:=0;
-    Value:=0;
-    while i<3 do
-     begin
-       C:=ord(S[Position+I]);
-       if (C>47) and (C<56) then
-        dec(C,48)
-       else
-        begin
-          GetNumber:=-1;
-          exit;
-        end;
-       if I=0 then
-        C:=C shl 6;
-       if I=1 then
-        C:=C SHL 3;
-       inc(Value,C);
-       inc(I);
-     end;
-    GetNumber:=Value;
-  end;
-
-var
-  S2 : String;
-  A,B,Value : longint;
-begin
-  A:=1;
-  B:=1;
-  while A<=Length(S) do
-   begin
-     if (S[A]='\') and (a<length(s)) then
-      begin
-        if S[A+1]='\' then
-         begin
-           S2[B]:='\';
-           Inc(A,2);
-           Inc(B);
-         end
-        else
-         begin
-           Value:=GetNumber(A+1);
-           if Value=-1 then
-            begin
-              XlatString:=false;
-              exit;
-            end;
-           S2[B]:=Chr(Value);
-           inc(B);
-           inc(A,4);
-         end;
-      end
-     else
-      begin
-        S2[B]:=S[A];
-        inc(A);
-        inc(B);
-      end;
-   end;
-  S2[0]:=Chr(B-1);
-  S:=S2;
-  XlatString:=true;
-end;
-
+  msgidxmax    : array[1..msgparts] of longint;
 
 procedure LoadMsgFile(const fn:string);
 var
   f       : text;
-  line,i  : longint;
+  error,
+  multiline : boolean;
+  code : word;
+  numpart,numidx,
+  line,i,j,num  : longint;
   ptxt,
   penum   : pchar;
+  number,
   s,s1    : string;
+
+  procedure err(const msgstr:string);
+  begin
+    writeln('error in line ',line,': ',msgstr);
+    error:=true;
+  end;
+
 begin
   Writeln('Loading messagefile ',fn);
 {Read the message file}
@@ -130,65 +71,142 @@ begin
   {$I+}
   if ioresult<>0 then
    begin
-     WriteLn('*** message file '+fn+' not found ***');
-     exit;
+     WriteLn('fatal error: '+fn+' not found');
+     halt(1);
    end;
 { First parse the file and count bytes needed }
+  fillchar(msgidxmax,sizeof(msgidxmax),0);
+  error:=false;
   line:=0;
+  multiline:=false;
   msgsize:=0;
   while not eof(f) do
    begin
      readln(f,s);
      inc(line);
-     if not XlatString(S) then
-      S:='';
-     if (s<>'') and not(s[1] in ['#',';','%']) then
+     if multiline then
       begin
-        i:=pos('=',s);
-        if i>0 then
-         begin
-           inc(msgsize,length(s)-i+1);
-           inc(enumsize,i);
-         end
+        if s=']' then
+         multiline:=false
         else
-         writeln('error in line: ',line,' skipping');
+         inc(msgsize,length(s)+1); { +1 for linebreak }
+      end
+     else
+      begin
+        if (s<>'') and not(s[1] in ['#',';','%']) then
+         begin
+           i:=pos('=',s);
+           if i>0 then
+            begin
+              j:=i+1;
+              if not(s[j] in ['0'..'9']) then
+               err('no number found')
+              else
+               begin
+                 while (s[j] in ['0'..'9']) do
+                  inc(j);
+               end;
+              if j-i-1<>5 then
+               err('number length is not 5');
+              number:=Copy(s,i+1,j-i-1);
+              { update the max index }
+              val(number,num,code);
+              numpart:=num div 1000;
+              numidx:=num mod 1000;
+              { check range }
+              if numpart > msgparts then
+               err('number is to large')
+              else
+               if numidx > msgidxmax[numpart] then
+                msgidxmax[numpart]:=numidx;
+              if s[j+1]='[' then
+               begin
+                 inc(msgsize,j-i);
+                 multiline:=true
+               end
+              else
+               inc(msgsize,length(s)-i+1);
+              inc(enumsize,j);
+            end
+           else
+            err('no = found');
+         end;
       end;
    end;
-{ now read the buffer in mem }
+  if multiline then
+   err('still in multiline mode');
+  if error then
+   begin
+     close(f);
+     writeln('aborting');
+     halt(1);
+   end;
+{ alloc memory }
   getmem(msgtxt,msgsize);
   ptxt:=msgtxt;
   getmem(enumtxt,enumsize);
   penum:=enumtxt;
+{ now read the buffer in mem }
   reset(f);
   while not eof(f) do
    begin
      readln(f,s);
-     inc(line);
-     if not XlatString(S) then
-      S[0]:=#0;
-     if (s<>'') and not(s[1] in ['#',';','%']) then
+     if multiline then
       begin
-        i:=pos('=',s);
-        if i>0 then
+        if s=']' then
          begin
-           {txt}
-           s1:=Copy(s,i+1,255);
-           { support <lf> for empty lines }
-           if s1='<lf>' then
-            begin
-              s1:='';
-              { update the msgsize also! }
-              dec(msgsize,4);
-            end;
-           move(s1[1],ptxt^,length(s1));
-           inc(ptxt,length(s1));
+           multiline:=false;
+           { overwrite last eol }
+           dec(ptxt);
            ptxt^:=#0;
            inc(ptxt);
-           {enum}
-           move(s[1],penum^,i-1);
-           inc(penum,i-1);
-           penum^:=#0;
-           inc(penum);
+         end
+        else
+         begin
+           move(s[1],ptxt^,length(s));
+           inc(ptxt,length(s));
+           ptxt^:=#10;
+           inc(ptxt);
+         end;
+      end
+     else
+      begin
+        if (s<>'') and not(s[1] in ['#',';','%']) then
+         begin
+           i:=pos('=',s);
+           if i>0 then
+            begin
+              j:=i+1;
+              while (s[j] in ['0'..'9']) do
+               inc(j);
+              {enum}
+              move(s[1],penum^,i-1);
+              inc(penum,i-1);
+              penum^:='=';
+              inc(penum);
+              number:=Copy(s,i+1,j-i-1);
+              move(number[1],penum^,length(number));
+              inc(penum,length(number));
+              penum^:=#0;
+              inc(penum);
+              { multiline start then no txt }
+              if s[j+1]='[' then
+               begin
+                 s1:=Copy(s,i+1,j-i);
+                 move(s1[1],ptxt^,length(s1));
+                 inc(ptxt,length(s1));
+                 multiline:=true;
+               end
+              else
+               begin
+                 { txt including number }
+                 s1:=Copy(s,i+1,255);
+                 move(s1[1],ptxt^,length(s1));
+                 inc(ptxt,length(s1));
+                 ptxt^:=#0;
+                 inc(ptxt);
+               end;
+            end;
          end;
       end;
    end;
@@ -203,25 +221,15 @@ end;
 procedure WriteEnumFile(const fn,typename:string);
 var
   t : text;
-{$ifdef DEBUGCRC}
-  t2 : text;
-{$endif DEBUGCRC}
-  i,crcvalue : longint;
+  i : longint;
   p : pchar;
-  s : string;
   start : boolean;
 begin
-  crcvalue:=longint($ffffffff);
   writeln('Writing enumfile '+fn);
 {Open textfile}
   assign(t,fn);
   rewrite(t);
-{$ifdef DEBUGCRC}
-  assign(t2,'crc.tst');
-  rewrite(t2);
-  Writeln(t2,crcvalue);
-{$endif DEBUGCRC}
-  writeln(t,'type t',typename,'=(');
+  writeln(t,'const');
 {Parse buffer in msgbuf and create indexs}
   p:=enumtxt;
   start:=true;
@@ -230,17 +238,11 @@ begin
      if start then
       begin
         write(t,'  ');
-        s:=UpCase(strpas(p));
-        crcvalue:=UpdateCRC32(crcvalue,s[1],length(s));
-{$ifdef DEBUGCRC}
-        Writeln(t2,s);
-        Writeln(t2,crcvalue);
-{$endif DEBUGCRC}
         start:=false;
       end;
      if p^=#0 then
       begin
-        writeln(t,',');
+        writeln(t,';');
         start:=true;
       end
      else
@@ -249,14 +251,27 @@ begin
       end;
      inc(p);
    end;
-  writeln(t,'end',typename);
-  writeln(t,');');
-  writeln(t,'const');
-  writeln(t,'  MsgCRCValue : longint = ',crcvalue,';');
+  writeln(t,'');
+  { msgtxt size }
+  writeln(t,'  MsgTxtSize = ',msgsize,';');
+  writeln(t,'');
+  { max msg idx table }
+  writeln(t,'  MsgIdxMax : array[1..20] of longint=(');
+  write(t,'    ');
+  for i:=1to 20 do
+   begin
+     write(t,msgidxmax[i]+1);
+     if i<20 then
+      write(t,',');
+     if i=10 then
+      begin
+        writeln(t,'');
+        write(t,'    ');
+      end;
+   end;
+  writeln(t,'');
+  writeln(t,'  );');
   close(t);
-{$ifdef DEBUGCRC}
-  close(t2);
-{$endif DEBUGCRC}
 end;
 
 
@@ -354,7 +369,7 @@ begin
         write(t,'#'+chr(ord(p^) div 100+48)+chr((ord(p^) mod 100) div 10+48)+chr(ord(p^) mod 10+48));
         inc(len,3);
       end;
-     if p^=#0 then
+     if p^ in [#0,#10] then
       start:=true;
      inc(slen);
      inc(p);
@@ -714,7 +729,7 @@ begin
          'C' : Mode:=M_Char;
          'R' : Mode:=M_Renumber;
          'V' : begin
-                 Writeln('Msg2Inc ',version,' for Free Pascal (C) 1998 Peter Vreman');
+                 Writeln('Msg2Inc ',version,' for Free Pascal (C) 1998-2000 Peter Vreman');
                  Writeln;
                  Halt;
                end;
@@ -772,7 +787,11 @@ begin
 end.
 {
   $Log$
-  Revision 1.7  2000-05-26 18:20:38  peter
+  Revision 1.8  2000-06-30 20:23:38  peter
+    * new message files layout with msg numbers (but still no code to
+      show the number on the screen)
+
+  Revision 1.7  2000/05/26 18:20:38  peter
     * fixed wrong var parameter with @
 
   Revision 1.6  2000/05/15 13:14:48  pierre

+ 50 - 36
compiler/verbose.pas

@@ -75,14 +75,15 @@ procedure SetErrorFlags(const s:string);
 procedure GenerateError;
 procedure Internalerror(i:longint);
 procedure Comment(l:longint;s:string);
-procedure Message(w:tmsgconst);
-procedure Message1(w:tmsgconst;const s1:string);
-procedure Message2(w:tmsgconst;const s1,s2:string);
-procedure Message3(w:tmsgconst;const s1,s2,s3:string);
-procedure MessagePos(const pos:tfileposinfo;w:tmsgconst);
-procedure MessagePos1(const pos:tfileposinfo;w:tmsgconst;const s1:string);
-procedure MessagePos2(const pos:tfileposinfo;w:tmsgconst;const s1,s2:string);
-procedure MessagePos3(const pos:tfileposinfo;w:tmsgconst;const s1,s2,s3:string);
+function  MessagePchar(w:longint):pchar;
+procedure Message(w:longint);
+procedure Message1(w:longint;const s1:string);
+procedure Message2(w:longint;const s1,s2:string);
+procedure Message3(w:longint;const s1,s2,s3:string);
+procedure MessagePos(const pos:tfileposinfo;w:longint);
+procedure MessagePos1(const pos:tfileposinfo;w:longint;const s1:string);
+procedure MessagePos2(const pos:tfileposinfo;w:longint;const s1,s2:string);
+procedure MessagePos3(const pos:tfileposinfo;w:longint;const s1,s2,s3:string);
 
 procedure InitVerbose;
 procedure DoneVerbose;
@@ -242,19 +243,15 @@ end;
 
 procedure LoadMsgFile(const fn:string);
 begin
-  if not(msg=nil) then
-   dispose(msg,Done);
-  msg:=new(pmessage,InitExtern(fn,ord(endmsgconst)));
+  if not msg^.LoadExtern(fn) then
+   begin
 {$IFDEF TP}
-  if msg=nil then
-    begin
-        writeln('Fatal: Cannot find error message file.');
-        halt(3);
-    end;
+     writeln('Fatal: Cannot find error message file.');
+     halt(3);
 {$ELSE}
-  if msg=nil then
-   msg:=new(pmessage,Init(@msgtxt,ord(endmsgconst)));
+     msg^.LoadIntern(@msgtxt,msgtxtsize);
 {$ENDIF TP}
+   end;
 end;
 
 
@@ -486,70 +483,76 @@ begin
 end;
 
 
-procedure Message(w:tmsgconst);
+function  MessagePchar(w:longint):pchar;
 begin
-  Msg2Comment(msg^.Get(ord(w)));
+  MessagePchar:=msg^.GetPchar(w)
 end;
 
 
-procedure Message1(w:tmsgconst;const s1:string);
+procedure Message(w:longint);
 begin
-  Msg2Comment(msg^.Get1(ord(w),s1));
+  Msg2Comment(msg^.Get(w));
 end;
 
 
-procedure Message2(w:tmsgconst;const s1,s2:string);
+procedure Message1(w:longint;const s1:string);
 begin
-  Msg2Comment(msg^.Get2(ord(w),s1,s2));
+  Msg2Comment(msg^.Get1(w,s1));
 end;
 
 
-procedure Message3(w:tmsgconst;const s1,s2,s3:string);
+procedure Message2(w:longint;const s1,s2:string);
 begin
-  Msg2Comment(msg^.Get3(ord(w),s1,s2,s3));
+  Msg2Comment(msg^.Get2(w,s1,s2));
 end;
 
 
-procedure MessagePos(const pos:tfileposinfo;w:tmsgconst);
+procedure Message3(w:longint;const s1,s2,s3:string);
+begin
+  Msg2Comment(msg^.Get3(w,s1,s2,s3));
+end;
+
+
+procedure MessagePos(const pos:tfileposinfo;w:longint);
 var
   oldpos : tfileposinfo;
 begin
   oldpos:=aktfilepos;
   aktfilepos:=pos;
-  Msg2Comment(msg^.Get(ord(w)));
+  Msg2Comment(msg^.Get(w));
   aktfilepos:=oldpos;
 end;
 
 
-procedure MessagePos1(const pos:tfileposinfo;w:tmsgconst;const s1:string);
+procedure MessagePos1(const pos:tfileposinfo;w:longint;const s1:string);
 var
   oldpos : tfileposinfo;
 begin
   oldpos:=aktfilepos;
   aktfilepos:=pos;
-  Msg2Comment(msg^.Get1(ord(w),s1));
+  Msg2Comment(msg^.Get1(w,s1));
   aktfilepos:=oldpos;
 end;
 
 
-procedure MessagePos2(const pos:tfileposinfo;w:tmsgconst;const s1,s2:string);
+procedure MessagePos2(const pos:tfileposinfo;w:longint;const s1,s2:string);
 var
   oldpos : tfileposinfo;
 begin
   oldpos:=aktfilepos;
   aktfilepos:=pos;
-  Msg2Comment(msg^.Get2(ord(w),s1,s2));
+  Msg2Comment(msg^.Get2(w,s1,s2));
   aktfilepos:=oldpos;
 end;
 
 
-procedure MessagePos3(const pos:tfileposinfo;w:tmsgconst;const s1,s2,s3:string);
+procedure MessagePos3(const pos:tfileposinfo;w:longint;const s1,s2,s3:string);
 var
   oldpos : tfileposinfo;
 begin
   oldpos:=aktfilepos;
   aktfilepos:=pos;
-  Msg2Comment(msg^.Get3(ord(w),s1,s2,s3));
+  Msg2Comment(msg^.Get3(w,s1,s2,s3));
   aktfilepos:=oldpos;
 end;
 
@@ -557,8 +560,14 @@ end;
 procedure InitVerbose;
 begin
 { Init }
+  msg:=new(pmessage,Init(20,msgidxmax));
+  if msg=nil then
+   begin
+     writeln('Fatal: MsgIdx Wrong');
+     halt(3);
+   end;
 {$ifndef EXTERN_MSG}
-  msg:=new(pmessage,Init(@msgtxt,ord(endmsgconst)));
+  msg^.LoadIntern(@msgtxt,msgtxtsize);
 {$else}
   LoadMsgFile(exepath+'errore.msg');
 {$endif}
@@ -567,6 +576,7 @@ begin
   Status.MaxErrorCount:=50;
 end;
 
+
 procedure DoneVerbose;
 begin
   if assigned(msg) then
@@ -580,7 +590,11 @@ end.
 
 {
   $Log$
-  Revision 1.54  2000-05-23 20:32:48  peter
+  Revision 1.55  2000-06-30 20:23:38  peter
+    * new message files layout with msg numbers (but still no code to
+      show the number on the screen)
+
+  Revision 1.54  2000/05/23 20:32:48  peter
     * removed dup msgcrcvalue
 
   Revision 1.53  2000/05/15 14:05:40  pierre

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott