From pd@|gd @end|ng |rom gm@||@com  Wed Nov 13 11:24:56 2019
From: pd@|gd @end|ng |rom gm@||@com (peter dalgaard)
Date: Wed, 13 Nov 2019 11:24:56 +0100
Subject: [Rd] calls with comment attribute
In-Reply-To: <CAF8bMcYg+BsPn8z_H-EqBHOAWV7vOjMf_VPPs1tG5W6ZqTsz_g@mail.gmail.com>
References: <CAF8bMcZcPwUZsoC_sg3SpUm2PeGentV0DcKQRdN8JtYb5K_Scw@mail.gmail.com>
 <5bd1a88a-646b-33b3-7107-ca8ee0b3ab90@gmail.com>
 <CAF8bMcYg+BsPn8z_H-EqBHOAWV7vOjMf_VPPs1tG5W6ZqTsz_g@mail.gmail.com>
Message-ID: <17D6C7B7-6CA8-4186-AC53-83DBEC7B50BA@gmail.com>

I think this is spot on. I remember all sorts of silliness when deparsing expressions while trying to retain comments - comments moving from beginning to end of loops or vice versa, that sort of thing. It was pretty much impossible to stick comments into the parse tree and have them come back out in a sensible position. After the keep.source changes, we didn't use comment() attributes anymore but print/deparse still acts on them. A peek at gram.y from an early R version should reveal the mechanism used then.

GB: presumably the comment character was considered part of the comment and stored with it, which is why it isn't added for printing.

-pd

> On 13 Nov 2019, at 04:15 , William Dunlap via R-devel <r-devel at r-project.org> wrote:
> 
> I suspect that the parser used it to store comments, including the initial
> "#", before R started using the srcref attribute.  (S also stored comments
> in the parse tree.)
> 
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
> 
> 
> On Tue, Nov 12, 2019 at 4:16 PM Duncan Murdoch <murdoch.duncan at gmail.com>
> wrote:
> 
>> On 12/11/2019 5:01 p.m., William Dunlap via R-devel wrote:
>>> In general R doesn't print the "comment" attribute of an object
>>>> structure(1:3, comment=c("a comment", "another comment"))
>>>    [1] 1 2 3
>>> but if the object is a call it prints it in an unusual format
>>>> structure(quote(func(arg)), comment=c("a comment", "another
>> comment"))
>>>    a comment
>>>    another comment
>>>    func(arg)
>>> 
>>> What is the rationale for the special treatment of calls?
>> 
>> It was there in revision 2 of src/main/deparse.c in 1997.  (For those
>> unfamiliar with R history:  the current revision of R is 77405.  That
>> particular file has been revised 248 times since rev 2.)
>> 
>> I suspect either nobody has noticed it before, or nobody had the nerve
>> to touch it.
>> 
>> Duncan Murdoch
>> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



[Rd] calls with comment attribute
peter dalgaard