* updated messages file

This commit is contained in:
peter 1998-07-14 21:46:38 +00:00
parent 28f036c698
commit c9715847f6
12 changed files with 1084 additions and 1005 deletions

View File

@ -1280,7 +1280,7 @@ end;
end end
else else
begin begin
Comment(V_Error,'Unsupported symbol type for operand'); Message(assem_e_unsupported_symbol_type);
exit; exit;
end; end;
end; end;
@ -1324,7 +1324,7 @@ end;
end; end;
else else
begin begin
Comment(V_Error,'Unsupported symbol type for operand'); Message(assem_e_unsupported_symbol_type);
exit; exit;
end; end;
end; { case } end; { case }
@ -1393,7 +1393,7 @@ end;
end; end;
else else
begin begin
Comment(V_Error,'Unsupported symbol type for operand'); Message(assem_e_unsupported_symbol_type);
exit; exit;
end; end;
end; {case} end; {case}
@ -1628,7 +1628,10 @@ end;
end. end.
{ {
$Log$ $Log$
Revision 1.4 1998-06-04 23:51:31 peter Revision 1.5 1998-07-14 21:46:38 peter
* updated messages file
Revision 1.4 1998/06/04 23:51:31 peter
* m68k compiles * m68k compiles
+ .def file creation moved to gendef.pas so it could also be used + .def file creation moved to gendef.pas so it could also be used
for win32 for win32

View File

@ -222,7 +222,7 @@ procedure TAsmList.NextSmartName;
begin begin
inc(SmartLinkFilesCnt); inc(SmartLinkFilesCnt);
if SmartLinkFilesCnt>999999 then if SmartLinkFilesCnt>999999 then
Comment(V_Fatal,'Too many assembler files'); Message(assem_f_too_many_asm_files);
AsmFile:=Path+FixFileName('as'+tostr(SmartLinkFilesCnt)+target_info.asmext); AsmFile:=Path+FixFileName('as'+tostr(SmartLinkFilesCnt)+target_info.asmext);
ObjFile:=Path+FixFileName('as'+tostr(SmartLinkFilesCnt)+target_info.objext); ObjFile:=Path+FixFileName('as'+tostr(SmartLinkFilesCnt)+target_info.objext);
end; end;
@ -427,7 +427,7 @@ begin
{$endif NoAg86KMot} {$endif NoAg86KMot}
{$endif} {$endif}
else else
Comment(V_Fatal,'Selected assembler output not supported!'); Message(assem_f_assembler_output_not_supported);
end; end;
a^.AsmCreate; a^.AsmCreate;
a^.WriteAsmList; a^.WriteAsmList;
@ -450,7 +450,10 @@ end;
end. end.
{ {
$Log$ $Log$
Revision 1.12 1998-07-08 14:58:34 daniel Revision 1.13 1998-07-14 21:46:40 peter
* updated messages file
Revision 1.12 1998/07/08 14:58:34 daniel
* First check if call to assembler is succesfull, then check it's exit code. * First check if call to assembler is succesfull, then check it's exit code.
This is more logical than first checking the exit code. For some mysterious This is more logical than first checking the exit code. For some mysterious
reason this did not give problems on DOS & Linux. On OS/2 it did. reason this did not give problems on DOS & Linux. On OS/2 it did.

View File

@ -58,6 +58,7 @@ general_i_targetos,
general_u_exepath, general_u_exepath,
general_u_gcclibpath, general_u_gcclibpath,
general_i_abslines_compiled, general_i_abslines_compiled,
general_f_no_memory_left,
{ {
Scanner part Scanner part
} }
@ -102,6 +103,8 @@ scan_c_skipping_until,
scan_i_press_enter, scan_i_press_enter,
scan_w_unsupported_switch, scan_w_unsupported_switch,
scan_w_illegal_directive, scan_w_illegal_directive,
scan_d_back_in,
scan_w_unsupported_asmmode_specifier,
{ {
Parser Parser
} }
@ -204,6 +207,18 @@ parser_e_constructor_cannot_be_not_virtual,
parser_e_no_default_property_available, parser_e_no_default_property_available,
parser_e_cant_have_published, parser_e_cant_have_published,
parser_forward_declaration_must_be_resolved, parser_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,
{ {
Symbol table Symbol table
} }
@ -270,6 +285,9 @@ cg_f_internal_error_in_secondinline,
cg_d_register_weight, cg_d_register_weight,
cg_e_stacklimit_in_local_routine, cg_e_stacklimit_in_local_routine,
cg_d_stackframe_omited, cg_d_stackframe_omited,
cg_e_unable_inline_object_methods,
cg_e_unable_inline_procvar,
cg_e_no_code_for_inline_stored,
{ {
Assembler parsers Assembler parsers
} }
@ -409,6 +427,9 @@ assem_f_invalid_suffix_intel,
assem_e_extended_not_supported, assem_e_extended_not_supported,
assem_e_comp_not_supported, assem_e_comp_not_supported,
assem_w_mmxwarning_as_281, assem_w_mmxwarning_as_281,
assem_f_too_many_asm_files,
assem_f_assembler_output_not_supported,
assem_e_unsupported_symbol_type,
{ {
Exec, assembler, linker, binder calls Exec, assembler, linker, binder calls
} }

File diff suppressed because it is too large Load Diff

View File

@ -299,7 +299,11 @@ done:
{$endif Splitheap} {$endif Splitheap}
{ restore old state, close trees } { restore old state, close trees }
{$ifndef go32v2}
{$ifndef linux}
if dispose_asm_lists then if dispose_asm_lists then
{$endif}
{$endif}
codegen_donemodule; codegen_donemodule;
{$ifdef GDB} {$ifdef GDB}
@ -372,7 +376,7 @@ done:
{ Write Browser } { Write Browser }
if cs_browser in initswitches then if cs_browser in initswitches then
begin begin
Comment(V_Info,'Writing Browser '+Browse.Fname); Message1(parser_i_writing_browser_log,Browse.Fname);
Browse.CreateLog; Browse.CreateLog;
write_browser_log; write_browser_log;
Browse.CloseLog; Browse.CloseLog;
@ -386,7 +390,10 @@ done:
end. end.
{ {
$Log$ $Log$
Revision 1.30 1998-07-14 14:46:49 peter Revision 1.31 1998-07-14 21:46:46 peter
* updated messages file
Revision 1.30 1998/07/14 14:46:49 peter
* released NEWINPUT * released NEWINPUT
Revision 1.29 1998/07/07 11:19:59 peter Revision 1.29 1998/07/07 11:19:59 peter

View File

@ -3303,16 +3303,16 @@ unit pass_1;
if (p^.procdefinition^.options and poinline)<>0 then if (p^.procdefinition^.options and poinline)<>0 then
begin begin
if assigned(p^.methodpointer) then if assigned(p^.methodpointer) then
comment(v_fatal,'Unable to inline object methods'); Message(cg_e_unable_inline_object_methods);
if assigned(p^.right) and (p^.right^.treetype<>procinlinen) then if assigned(p^.right) and (p^.right^.treetype<>procinlinen) then
comment(v_fatal,'Unable to inline procvar calls'); Message(cg_e_unable_inline_procvar);
{ p^.treetype:=procinlinen; } { p^.treetype:=procinlinen; }
if not assigned(p^.right) then if not assigned(p^.right) then
begin begin
if assigned(p^.procdefinition^.code) then if assigned(p^.procdefinition^.code) then
inlinecode:=genprocinlinenode(p,ptree(p^.procdefinition^.code)) inlinecode:=genprocinlinenode(p,ptree(p^.procdefinition^.code))
else else
comment(v_fatal,'no code for inline procedure stored'); Message(cg_e_no_code_for_inline_stored);
if assigned(inlinecode) then if assigned(inlinecode) then
begin begin
{ consider it has not inlined if called { consider it has not inlined if called
@ -3321,7 +3321,6 @@ unit pass_1;
firstpass(inlinecode); firstpass(inlinecode);
inlined:=true; inlined:=true;
end; end;
end; end;
end end
else else
@ -5041,7 +5040,10 @@ unit pass_1;
end. end.
{ {
$Log$ $Log$
Revision 1.38 1998-07-14 14:46:50 peter Revision 1.39 1998-07-14 21:46:47 peter
* updated messages file
Revision 1.38 1998/07/14 14:46:50 peter
* released NEWINPUT * released NEWINPUT
Revision 1.37 1998/07/07 12:31:44 peter Revision 1.37 1998/07/07 12:31:44 peter

View File

@ -35,6 +35,7 @@ unit pbase;
{ true, if we are after an assignement } { true, if we are after an assignement }
afterassignment : boolean = false; afterassignment : boolean = false;
{ sspecial for handling procedure vars } { sspecial for handling procedure vars }
getprocvar : boolean = false; getprocvar : boolean = false;
getprocvardef : pprocvardef = nil; getprocvardef : pprocvardef = nil;
@ -54,8 +55,7 @@ unit pbase;
{ symtable were unit references are stored } { symtable were unit references are stored }
refsymtable : psymtable; refsymtable : psymtable;
{ true, if only routine headers should be } { true, if only routine headers should be parsed }
{ parsed }
parse_only : boolean; parse_only : boolean;
{ true, if we are in a except block } { true, if we are in a except block }
@ -64,6 +64,7 @@ unit pbase;
{ true, if we should ignore an equal in const x : 1..2=2 } { true, if we should ignore an equal in const x : 1..2=2 }
ignore_equal : boolean; ignore_equal : boolean;
{ consumes token i, if the current token is unequal i } { consumes token i, if the current token is unequal i }
{ a syntax error is written } { a syntax error is written }
procedure consume(i : ttoken); procedure consume(i : ttoken);
@ -87,29 +88,18 @@ unit pbase;
var var
last_endtoken_filepos: tfileposinfo; last_endtoken_filepos: tfileposinfo;
implementation implementation
uses uses
files,scanner,systems,verbose; files,scanner,systems,verbose;
{ generates a syntax error message }
procedure syntaxerror(s : string);
begin
Message2(scan_f_syn_expected,tostr(aktfilepos.column),s);
end;
{ This is changed since I changed the order of token
in cobjects.pas for operator overloading !!!! }
{ ttoken = (PLUS,MINUS,STAR,SLASH,EQUAL,GT, { ttoken = (PLUS,MINUS,STAR,SLASH,EQUAL,GT,
LT,LTE,GTE,SYMDIF,STARSTAR,ASSIGNMENT,CARET, LT,LTE,GTE,SYMDIF,STARSTAR,ASSIGNMENT,CARET,
LECKKLAMMER,RECKKLAMMER, LECKKLAMMER,RECKKLAMMER,
POINT,COMMA,LKLAMMER,RKLAMMER,COLON,SEMICOLON, POINT,COMMA,LKLAMMER,RKLAMMER,COLON,SEMICOLON,
KLAMMERAFFE,UNEQUAL,POINTPOINT, KLAMMERAFFE,UNEQUAL,POINTPOINT,
ID,REALNUMBER,_EOF,INTCONST,CSTRING,CCHAR,DOUBLEADDR,} ID,REALNUMBER,_EOF,INTCONST,CSTRING,CCHAR,DOUBLEADDR,}
const tokens : array[PLUS..DOUBLEADDR] of string[12] = ( const tokens : array[PLUS..DOUBLEADDR] of string[12] = (
'+','-','*','/','=','>','<','>=','<=','is','as','in', '+','-','*','/','=','>','<','>=','<=','is','as','in',
'><','**',':=','^','<>','[',']','.',',','(',')',':',';', '><','**',':=','^','<>','[',']','.',',','(',')',':',';',
@ -118,45 +108,35 @@ unit pbase;
'ord const','const string','const char','@@'); 'ord const','const string','const char','@@');
function tokenstring(i : ttoken) : string; function tokenstring(i : ttoken) : string;
var var
j : integer; j : longint;
begin begin
if i<_AND then if i<_AND then
tokenstring:=tokens[i] tokenstring:=tokens[i]
else else
begin begin
{ um die ProgrammgrӇe klein zu halten, } for j:=1 to anz_keywords do
{ wird f<>r ein Schl<68>sselwort-Token der } if keyword_token[j]=i then
{ "Text" in der Schl<68>sselworttabelle } tokenstring:=keyword[j];
{ des Scanners nachgeschaut }
for j:=1 to anz_keywords do
if keyword_token[j]=i then
tokenstring:=keyword[j];
end; end;
end; end;
{ consumes token i, if the current token is unequal i }
{ a syntax error is written } { consumes token i, write error if token is different }
procedure consume(i : ttoken); procedure consume(i : ttoken);
begin begin
if token<>i then if token<>i then
begin Message1(scan_f_syn_expected,tokenstring(i))
syntaxerror(tokenstring(i)); else
end begin
else if token=_END then
begin last_endtoken_filepos:=tokenpos;
if token=_END then token:=current_scanner^.yylex;
last_endtoken_filepos:=tokenpos; end;
token:=current_scanner^.yylex;
end;
end; end;
procedure consume_all_until(atoken : ttoken); procedure consume_all_until(atoken : ttoken);
begin begin
while (token<>atoken) and (token<>_EOF) do while (token<>atoken) and (token<>_EOF) do
consume(token); consume(token);
@ -167,19 +147,18 @@ unit pbase;
Message(scan_f_end_of_file); Message(scan_f_end_of_file);
end; end;
procedure emptystats;
procedure emptystats;
begin begin
while token=SEMICOLON do while token=SEMICOLON do
consume(SEMICOLON); consume(SEMICOLON);
end; end;
{ reads a list of identifiers into a string container } { reads a list of identifiers into a string container }
function idlist : pstringcontainer; function idlist : pstringcontainer;
var var
sc : pstringcontainer; sc : pstringcontainer;
begin begin
sc:=new(pstringcontainer,init); sc:=new(pstringcontainer,init);
repeat repeat
@ -192,16 +171,14 @@ unit pbase;
idlist:=sc; idlist:=sc;
end; end;
{ inserts the symbols of sc in st with def as definition } { inserts the symbols of sc in st with def as definition }
{ sc is disposed } { sc is disposed }
procedure insert_syms(st : psymtable;sc : pstringcontainer;def : pdef); procedure insert_syms(st : psymtable;sc : pstringcontainer;def : pdef);
var var
s : string; s : string;
filepos : tfileposinfo; filepos : tfileposinfo;
ss : pvarsym; ss : pvarsym;
begin begin
while not sc^.empty do while not sc^.empty do
begin begin
@ -224,7 +201,10 @@ end.
{ {
$Log$ $Log$
Revision 1.13 1998-07-14 14:46:52 peter Revision 1.14 1998-07-14 21:46:49 peter
* updated messages file
Revision 1.13 1998/07/14 14:46:52 peter
* released NEWINPUT * released NEWINPUT
Revision 1.12 1998/07/09 23:59:59 peter Revision 1.12 1998/07/09 23:59:59 peter

View File

@ -330,7 +330,7 @@ unit pdecl;
begin begin
consume(ID); consume(ID);
if extern_csym then if extern_csym then
Comment(V_Error,'can''t use both EXPORT and EXTERNAL') Message(parser_e_not_external_and_export)
else else
export_Csym:=true; export_Csym:=true;
end; end;
@ -340,7 +340,7 @@ unit pdecl;
if (token=ID) and (pattern='NAME') then if (token=ID) and (pattern='NAME') then
consume(ID) consume(ID)
else else
Comment(V_Error,'NAME keyword expected'); Message(parser_e_name_keyword_expected);
C_name:=pattern; C_name:=pattern;
{ allow also char } { allow also char }
if token=CCHAR then if token=CCHAR then
@ -1791,8 +1791,8 @@ unit pdecl;
if assigned(aktprocsym) and if assigned(aktprocsym) and
((aktprocsym^.definition^.options and poinline)<>0) then ((aktprocsym^.definition^.options and poinline)<>0) then
Begin Begin
Comment(V_Warning,tokenstring(t)+' not yet supported inside inline procedure/function '); Message1(parser_w_not_supported_for_inline,tokenstring(t));
Comment(V_Warning,'inlining disabled'); Message(parser_w_inlining_disabled);
aktprocsym^.definition^.options:= aktprocsym^.definition^.options and not poinline; aktprocsym^.definition^.options:= aktprocsym^.definition^.options and not poinline;
End; End;
end; end;
@ -1864,7 +1864,10 @@ unit pdecl;
end. end.
{ {
$Log$ $Log$
Revision 1.31 1998-07-14 14:46:53 peter Revision 1.32 1998-07-14 21:46:50 peter
* updated messages file
Revision 1.31 1998/07/14 14:46:53 peter
* released NEWINPUT * released NEWINPUT
Revision 1.30 1998/07/10 00:00:00 peter Revision 1.30 1998/07/10 00:00:00 peter

View File

@ -845,9 +845,7 @@ unit pexpr;
in [recorddef,objectdef,classrefdef] then in [recorddef,objectdef,classrefdef] then
begin begin
Message(cg_e_invalid_qualifier); Message(cg_e_invalid_qualifier);
{ exterror:=strpnew(' may be pointer deref ^ is missing'); Message(parser_h_maybe_deref_caret_missing);
error(invalid_qualifizier); }
Comment(V_hint,' may be pointer deref ^ is missing');
end end
else else
Message(cg_e_invalid_qualifier); Message(cg_e_invalid_qualifier);
@ -1787,7 +1785,10 @@ unit pexpr;
end. end.
{ {
$Log$ $Log$
Revision 1.27 1998-06-25 14:04:23 peter Revision 1.28 1998-07-14 21:46:51 peter
* updated messages file
Revision 1.27 1998/06/25 14:04:23 peter
+ internal inc/dec + internal inc/dec
Revision 1.26 1998/06/09 16:01:46 pierre Revision 1.26 1998/06/09 16:01:46 pierre

View File

@ -595,8 +595,8 @@ unit pstatmnt;
begin begin
if (aktprocsym^.definition^.options and poinline)<>0 then if (aktprocsym^.definition^.options and poinline)<>0 then
Begin Begin
Comment(V_Warning,'asm statement inside inline procedure/function not yet supported'); Message1(parser_w_not_supported_for_inline,'asm statement');
Comment(V_Warning,'inlining disabled'); Message(parser_w_inlining_disabled);
aktprocsym^.definition^.options:= aktprocsym^.definition^.options and not poinline; aktprocsym^.definition^.options:= aktprocsym^.definition^.options and not poinline;
End; End;
case aktasmmode of case aktasmmode of
@ -617,7 +617,7 @@ unit pstatmnt;
{$endif NoRA68kMot} {$endif NoRA68kMot}
{$endif} {$endif}
else else
Comment(V_Fatal,'Selected assembler reader not supported'); Message(parser_f_assembler_reader_not_supported);
end; end;
{ Read first the _ASM statement } { Read first the _ASM statement }
@ -1168,7 +1168,10 @@ unit pstatmnt;
end. end.
{ {
$Log$ $Log$
Revision 1.24 1998-07-10 10:48:42 peter Revision 1.25 1998-07-14 21:46:53 peter
* updated messages file
Revision 1.24 1998/07/10 10:48:42 peter
* fixed realnumber scanning * fixed realnumber scanning
* [] after asmblock was not uppercased anymore * [] after asmblock was not uppercased anymore

View File

@ -549,7 +549,7 @@ const
if upcase(c)='N' then if upcase(c)='N' then
begin begin
hs:=current_scanner^.readid; hs:=current_scanner^.readid;
if hs='NORMAL' then if (hs='NORMAL') or (hs='DEFAULT') then
aktpackrecords:=2 aktpackrecords:=2
else else
Message(scan_w_only_pack_records); Message(scan_w_only_pack_records);
@ -560,6 +560,7 @@ const
1 : aktpackrecords:=1; 1 : aktpackrecords:=1;
2 : aktpackrecords:=2; 2 : aktpackrecords:=2;
4 : aktpackrecords:=4; 4 : aktpackrecords:=4;
16 : aktpackrecords:=16;
else else
Message(scan_w_only_pack_records); Message(scan_w_only_pack_records);
end; end;
@ -582,7 +583,7 @@ const
aktasmmode:=initasmmode aktasmmode:=initasmmode
else else
if not set_string_asmmode(s,aktasmmode) then if not set_string_asmmode(s,aktasmmode) then
Comment(V_Warning,'Unsupported asm mode specified '+s); Message1(scan_w_unsupported_asmmode_specifier,s);
end; end;
procedure dir_oldasmmode(t:tdirectivetoken); procedure dir_oldasmmode(t:tdirectivetoken);
@ -705,7 +706,10 @@ const
{ {
$Log$ $Log$
Revision 1.14 1998-07-14 14:47:03 peter Revision 1.15 1998-07-14 21:46:55 peter
* updated messages file
Revision 1.14 1998/07/14 14:47:03 peter
* released NEWINPUT * released NEWINPUT
Revision 1.13 1998/07/07 12:32:54 peter Revision 1.13 1998/07/07 12:32:54 peter

View File

@ -837,7 +837,7 @@ unit tree;
getmem(pc,p^.length+1); getmem(pc,p^.length+1);
{ Peter can you change that ? } { Peter can you change that ? }
if pc=nil then if pc=nil then
comment(V_fatal,'No memory left'); Message(general_f_no_memory_left);
move(p^.values^,pc^,p^.length+1); move(p^.values^,pc^,p^.length+1);
getpcharcopy:=pc; getpcharcopy:=pc;
end; end;
@ -1595,7 +1595,10 @@ unit tree;
end. end.
{ {
$Log$ $Log$
Revision 1.20 1998-07-14 14:47:11 peter Revision 1.21 1998-07-14 21:46:56 peter
* updated messages file
Revision 1.20 1998/07/14 14:47:11 peter
* released NEWINPUT * released NEWINPUT
Revision 1.19 1998/07/08 14:56:53 daniel Revision 1.19 1998/07/08 14:56:53 daniel