From 1008d7faa024f41b8c098428febcd11f844bcb1d Mon Sep 17 00:00:00 2001 From: florian Date: Thu, 22 Mar 2001 22:35:42 +0000 Subject: [PATCH] + support for type a = (a=1); in Delphi mode added + procedure p(); in Delphi mode supported + on isn't keyword anymore, it can be used as id etc. now --- compiler/pdecsub.pas | 16 +++++++++++++++- compiler/pstatmnt.pas | 12 +++++++++--- compiler/ptype.pas | 23 ++++++++++++++++++++--- compiler/tokens.pas | 12 +++++++++--- 4 files changed, 53 insertions(+), 10 deletions(-) diff --git a/compiler/pdecsub.pas b/compiler/pdecsub.pas index e918e1afa0..9e98c4fe94 100644 --- a/compiler/pdecsub.pas +++ b/compiler/pdecsub.pas @@ -111,6 +111,14 @@ implementation { parsing a proc or procvar ? } is_procvar:=(aktprocdef^.deftype=procvardef); consume(_LKLAMMER); + { Delphi/Kylix supports nonsense like } + { procedure p(); } + if (token=_RKLAMMER) and + (m_delphi in aktmodeswitches) then + begin + consume(_RKLAMMER); + exit; + end; inc(testcurobject); repeat if try_to_consume(_VAR) then @@ -1887,7 +1895,13 @@ end; end. { $Log$ - Revision 1.13 2001-03-11 22:58:50 peter + Revision 1.14 2001-03-22 22:35:42 florian + + support for type a = (a=1); in Delphi mode added + + procedure p(); in Delphi mode supported + + on isn't keyword anymore, it can be used as + id etc. now + + Revision 1.13 2001/03/11 22:58:50 peter * getsym redesign, removed the globals srsym,srsymtable Revision 1.12 2001/03/06 18:28:02 peter diff --git a/compiler/pstatmnt.pas b/compiler/pstatmnt.pas index f3cc24fc62..c4047e1baf 100644 --- a/compiler/pstatmnt.pas +++ b/compiler/pstatmnt.pas @@ -570,11 +570,11 @@ implementation block_type:=bt_except; ot:=pobjectdef(generrordef); p_specific:=nil; - if token=_ON then + if (token=_ID) and (idtoken=_ON) then { catch specific exceptions } begin repeat - consume(_ON); + consume(_ID); if token=_ID then begin objname:=pattern; @@ -1240,7 +1240,13 @@ implementation end. { $Log$ - Revision 1.20 2001-03-11 22:58:50 peter + Revision 1.21 2001-03-22 22:35:42 florian + + support for type a = (a=1); in Delphi mode added + + procedure p(); in Delphi mode supported + + on isn't keyword anymore, it can be used as + id etc. now + + Revision 1.20 2001/03/11 22:58:50 peter * getsym redesign, removed the globals srsym,srsymtable Revision 1.19 2000/12/25 00:07:27 peter diff --git a/compiler/ptype.pas b/compiler/ptype.pas index 8c2b987d5d..3e1207b54f 100644 --- a/compiler/ptype.pas +++ b/compiler/ptype.pas @@ -109,9 +109,9 @@ implementation srsym:=searchsymonlyin(punitsym(srsym)^.unitsymtable,pattern); pos:=akttokenpos; s:=pattern; - end + end else - srsym:=nil; + srsym:=nil; consume(_ID); end; { are we parsing a possible forward def ? } @@ -461,6 +461,17 @@ implementation Message(parser_n_duplicate_enum); l:=v; end + else if (m_delphi in aktmodeswitches) and + (token=_EQUAL) then + begin + consume(_EQUAL); + v:=get_intconst; + { please leave that a note, allows type save } + { declarations in the win32 units ! } + if v<=l then + Message(parser_n_duplicate_enum); + l:=v; + end else inc(l); storepos:=akttokenpos; @@ -584,7 +595,13 @@ implementation end. { $Log$ - Revision 1.19 2001-03-12 12:49:01 michael + Revision 1.20 2001-03-22 22:35:42 florian + + support for type a = (a=1); in Delphi mode added + + procedure p(); in Delphi mode supported + + on isn't keyword anymore, it can be used as + id etc. now + + Revision 1.19 2001/03/12 12:49:01 michael + Patches from peter Revision 1.18 2001/03/11 22:58:50 peter diff --git a/compiler/tokens.pas b/compiler/tokens.pas index 6fcebce595..0cd9832ecd 100644 --- a/compiler/tokens.pas +++ b/compiler/tokens.pas @@ -309,7 +309,7 @@ const (str:'IN' ;special:false;keyword:m_all;op:_OP_IN), (str:'IS' ;special:false;keyword:m_class;op:_OP_IS), (str:'OF' ;special:false;keyword:m_all;op:NOTOKEN), - (str:'ON' ;special:false;keyword:m_class;op:NOTOKEN), + (str:'ON' ;special:false;keyword:m_none;op:NOTOKEN), (str:'OR' ;special:false;keyword:m_all;op:_OP_OR), (str:'TO' ;special:false;keyword:m_all;op:NOTOKEN), (str:'AND' ;special:false;keyword:m_all;op:_OP_AND), @@ -478,7 +478,13 @@ end; end. { $Log$ - Revision 1.7 2000-11-29 00:30:42 florian + Revision 1.8 2001-03-22 22:35:43 florian + + support for type a = (a=1); in Delphi mode added + + procedure p(); in Delphi mode supported + + on isn't keyword anymore, it can be used as + id etc. now + + Revision 1.7 2000/11/29 00:30:42 florian * unused units removed from uses clause * some changes for widestrings @@ -499,4 +505,4 @@ end. Revision 1.2 2000/07/13 11:32:52 michael + removed logs -} \ No newline at end of file +}