Article View: pl.comp.lang.pascal
Article #93132Re: Property -- podwujna składnia
From: Grzegorz Skoczylas
Date: Thu, 14 Oct 2010 13:14
Date: Thu, 14 Oct 2010 13:14
47 lines
2492 bytes
2492 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=10; // poprawnie >> MyClass[1,1]^.x:=10; // tez kompilator akceptuje ; >> >> ale jak zrobie >> >> with MyClass[1,1]^ do begin // tylko taka forme akceptuje kompilator >> x:=10; >> 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 ----------------------------------------------
Technical Details
Message-ID:
<i96vn7$8qo$1@news.dialog.net.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mailReferences:
<6a48.0000010e.4cb6d53c@newsgate.onet.pl> <56w8uz6hdv9w$.11cnobf7mz1nq.dlg@40tude.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail From: Grzegorz Skoczylas <gskoczylas@kasuj-to.rekord.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: Property -- podwujna składnia Date: Thu, 14 Oct 2010 15:14:12 +0200 Organization: Dialog Net Lines: 47 Message-ID: <i96vn7$8qo$1@news.dialog.net.pl> References: <6a48.0000010e.4cb6d53c@newsgate.onet.pl> <56w8uz6hdv9w$.11cnobf7mz1nq.dlg@40tude.net> NNTP-Posting-Host: dynamic-78-9-2-185.ssp.dialog.net.pl Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1287062056 9048 78.9.2.185 (14 Oct 2010 13:14:16 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Thu, 14 Oct 2010 13:14:16 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.6.666 In-Reply-To: <56w8uz6hdv9w$.11cnobf7mz1nq.dlg@40tude.net> X-Antivirus: avast! (VPS 101013-1, 2010-10-13), Outbound message X-Antivirus-Status: Clean Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit