wholeSrcref attribute is documented in ?parse to be the source reference corresponding to the already parsed text. The implementation in the parser matches the documentation - the code stops at the last byte/character of the expression, that is, on the closing brace - which is the "already parsed text". I think this works as documented (also source() uses the current implementation of wholeSrcref).

Best
Tomas

On 06/18/2018 04:20 PM, Georgi Boshnakov wrote:
Hi,

The result of  as,character() on  'srcref' objects doesn't have the closing ')' 
in some cases involving 'quote':

e4 <- quote({2+2})
class(attr(e4, "wholeSrcref"))
[1] "srcref"
as.character(attr(e4, "wholeSrcref"))
[1] "e4 <- quote({2+2}"

As a result printing the object also lacks it and gives an incomplete 
expression:

attr(e4, "wholeSrcref")
e4 <- quote({2+2}

It seems that it is the top level quote that suffers from this. Here the inner 
'quote' has the matching ')' but the outer one doesn't:

e5 <- quote({quote({2+2})})
class(attr(e5, "wholeSrcref"))
[1] "srcref"
attr(e5, "wholeSrcref")
e5 <- quote({quote({2+2})}
as.character(attr(e5, "wholeSrcref"))
[1] "e5 <- quote({quote({2+2})}"
attributes(e5)
...

$wholeSrcref
e5 <- quote({quote({2+2})}


Attribute 'wholeSrcref' seems undocumented but it is of class 'srcref' which is 
documented (eg ?srcref) and has supporting methods.


Georgi Boshnakov



        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to