🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #93132

Re: Property -- podwujna składnia

#93132
From: Grzegorz Skoczylas
Date: Thu, 14 Oct 2010 13:14
47 lines
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-mail
References: <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