Thread View: pl.comp.lang.pascal
7 messages
7 total messages
Started by webmajsterek@poc
Thu, 14 Oct 2010 12:02
Property -- podwujna sk�adnia
Author: webmajsterek@poc
Date: Thu, 14 Oct 2010 12:02
Date: Thu, 14 Oct 2010 12:02
35 lines
671 bytes
671 bytes
taki kodzik Type PCell=^TCell; TCell=Record x,y,value:Integer; end; Type TMyClass=class private fArea:Array of Array of PCell; public property Items[x,y:Iteger]:PCell Read Get;Default; end; var MyClass:TMyClass; teraz jak w kodzie odwolam MyClass[1,1].x; // poprawnie lub MyClass[1,1]^.x:; // tez kompilator akceptuje ; ale jak zrobie with MyClass[1,1]^ do begin // tylko taka forme akceptuje kompilator x:; end; kto� potrafi to wyt�umaczy� dlaczego tak si� dzieje ?? -- Wys�ano z serwisu OnetNiusy: http://niusy.onet.pl
Re: Property -- podwujna składnia
Author: Grzegorz Skoczyl
Date: Thu, 14 Oct 2010 12:52
Date: Thu, 14 Oct 2010 12:52
21 lines
594 bytes
594 bytes
W dniu 2010-10-14 12:02, webmajsterek@poczta.onet.pl pisze: > teraz jak w kodzie odwolam > MyClass[1,1].x; // poprawnie Zgodnie z definicją języka taki zapis (bez „^”) nie jest poprawny. Kompilator go akceptuje, ale tylko w niektórych kontekstach. Wydaje mi się, że jest to albo błąd w analizatorze składni (powodujący jednak poprawne kompilowanie kodu), albo próba „poprawienia” pomyłek programistów. Uważam, że nie należy tak kodować. -- Pozdrawiam, Grzegorz Skoczylas http://gskoczylas.rekord.pl ----------------------------------------------
Re: Property -- podwujna =?iso-8859-2?Q?sk³adnia?
Author: =?iso-8859-2?Q?
Date: Thu, 14 Oct 2010 14:30
Date: Thu, 14 Oct 2010 14:30
39 lines
1092 bytes
1092 bytes
On Thu, 14 Oct 2010 12:02:36 +0200, webmajsterek@poczta.onet.pl wrote: > Type PCell=^TCell; > TCell=Record > x,y,value:Integer; > end; > > <snip> > > var MyClass:TMyClass; > > MyClass[1,1].x; // poprawnie > MyClass[1,1]^.x:; // tez kompilator akceptuje ; > > ale jak zrobie > > with MyClass[1,1]^ do begin // tylko taka forme akceptuje kompilator > x:; > end; > > kto� potrafi to wyt�umaczy� dlaczego tak si� dzieje ?? Albo jaki� syntactic sugar w fpc, albo b��d w analizatorze kt�ry traktuje jakby ^TCell by� r�wnowa�ny class[w uproszczeniu ^object, wi�c w uproszczeniu jest ;-)] i poprawia . na dereference i member access operator z automatu w AST, bo takie ma "ukryte" znaczenie member access operator dla class. A przy with nie ma explicite member access operatora i pewnie dlatego si� kompilator gubi. To drugie to domys�, nie kojarz� �eby by� taki cukier sk�adniowy w fpc kiedykolwiek ;-), wi�c zak�adam �e to bug jaki�. -- Pozdrawiam, �ukasz 'Maly' Ostrowski. http://l3v.pl/
Re: Property -- podwujna =?ISO-8859-2?Q?sk³adnia?
Author: Grzegorz Skoczyl
Date: Thu, 14 Oct 2010 15:14
Date: Thu, 14 Oct 2010 15:14
48 lines
1395 bytes
1395 bytes
W dniu 2010-10-14 14:30, �ukasz 'Maly' Ostrowski pisze: > On Thu, 14 Oct 2010 12:02:36 +0200, webmajsterek@poczta.onet.pl wrote: >> Type PCell=^TCell; >> TCell=Record >> x,y,value:Integer; >> end; >> >> <snip> >> >> var MyClass:TMyClass; >> >> MyClass[1,1].x; // poprawnie >> MyClass[1,1]^.x:; // tez kompilator akceptuje ; >> >> ale jak zrobie >> >> with MyClass[1,1]^ do begin // tylko taka forme akceptuje kompilator >> x:; >> end; >> >> kto� potrafi to wyt�umaczy� dlaczego tak si� dzieje ?? > > Albo jaki� syntactic sugar w fpc, albo b��d w analizatorze > kt�ry traktuje jakby ^TCell by� r�wnowa�ny class[w > uproszczeniu ^object, wi�c w uproszczeniu jest ;-)] > i poprawia . na dereference i member access operator z > automatu w AST, bo takie ma "ukryte" znaczenie member > access operator dla class. > > A przy with nie ma explicite member access > operatora i pewnie dlatego si� kompilator gubi. Te� s�dz�, �e mniej wi�cej o to chodzi. > To drugie to domys�, nie kojarz� �eby by� taki cukier > sk�adniowy w fpc kiedykolwiek ;-), wi�c zak�adam > �e to bug jaki�. Podejrzewam, �e zosta�o to zaimplementowane dla zgodno�ci z Delphi, gdzie te� to dzia�a podobnie. -- Pozdrawiam, Grzegorz Skoczylas http://gskoczylas.rekord.pl ----------------------------------------------
Re: Property -- podwujna =?ISO-8859-2?Q?sk³adnia?
Author: =?iso-8859-2?Q?
Date: Thu, 14 Oct 2010 15:25
Date: Thu, 14 Oct 2010 15:25
13 lines
489 bytes
489 bytes
On Thu, 14 Oct 2010 15:14:12 +0200, Grzegorz Skoczylas wrote: > Podejrzewam, �e zosta�o to zaimplementowane dla zgodno�ci z Delphi, > gdzie te� to dzia�a podobnie. Je�eli w dialekcie Delphi Object Pascala tak si� to zachowuje, to mamy bezpo�redni pow�d dla kt�rego w FPC tak jest. Od pocz�tku twierdzili �e chc� trzyma� kompatybilno�� z Delphi i cross-kompilowalno�� �r�de� z D. -- Pozdrawiam, �ukasz 'Maly' Ostrowski. http://l3v.pl/
Re: Property -- podwujna składnia
Author: "Wiktor S."
Date: Thu, 14 Oct 2010 21:39
Date: Thu, 14 Oct 2010 21:39
17 lines
427 bytes
427 bytes
Grzegorz Skoczylas wrote: > W dniu 2010-10-14 12:02, webmajsterek@poczta.onet.pl pisze: > >> teraz jak w kodzie odwolam >> MyClass[1,1].x; // poprawnie > > Zgodnie z definicją języka taki zapis (bez „^”) nie jest poprawny. > Kompilator go akceptuje, ale tylko w niektórych kontekstach. Jest to zdecydowanie ficzer (udokumentowany) kompilatora. Słusznie czy niesłusznie, nie jest to bug. -- Azarien
=?iso-8859-2?Q?Re:_Property_--_podwujna_sk³adnia?
Author: "Wiktor S."
Date: Thu, 14 Oct 2010 21:41
Date: Thu, 14 Oct 2010 21:41
13 lines
303 bytes
303 bytes
> To drugie to domys�, nie kojarz� �eby by� taki cukier > sk�adniowy w fpc kiedykolwiek ;-), wi�c zak�adam > �e to bug jaki�. Jest taki w Delphi. Nie jest to bug. FPC pozwala na to w trybie delphi {$MODE DELPHI}. W trybie "w�asnym" {$MODE OBJFPC} to nie przejdzie. -- Azarien
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads