On 13-07-05 7:40 AM, peter dalgaard wrote:
On Jul 5, 2013, at 13:29 , Duncan Murdoch wrote:
On 13-07-05 3:31 AM, Yihui Xie wrote:
Hi,
The text column for '->' becomes '<-' in the data frame returned by
getParseData():
getParseData(parse(text='1->x'))
line1 col1 line2 col2 id parent token terminal text
7 1 1 1 4 7 0 expr FALSE
1 1 1 1 1 1 2 NUM_CONST TRUE 1
2 1 1 1 1 2 7 expr FALSE
3 1 2 1 3 3 7 RIGHT_ASSIGN TRUE <-
4 1 4 1 4 4 6 SYMBOL TRUE x
6 1 4 1 4 6 7 expr FALSE
Is that expected?
It's by design, but I agree it's not ideal. The reason for it is that "1 -> x" is parsed
as `<-`(x, 1). I think the parser only does translations like this for -> and ->>.
Currently the parser shows the name of the binary operator as the text.
I'll look into adding special handling for translations like this. We will
still parse the assignment in the same way, but the getParseData text could be
the true text.
Just watch out for potential complications, e.g.
`->`(x,1)
Error: could not find function "->"
so one needs to be sure that nothing will assume that the text column is a
function name.
R itself doesn't make use of the text column, it's for display of code
by highlighters etc. So if anyone does assume text is a function name,
it's their bug, not ours. In fact, the bug is already there, because
there is actually one other example which was being parsed properly,
"**" is translated to "^". There's no `**` function, but 2**3 works.
Duncan Murdoch
Duncan
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel