[Rd] Problem with ?Syntax

Barry Rowlingson b.rowlingson at lancaster.ac.uk
Sat Feb 20 12:57:42 CET 2010


On Sat, Feb 20, 2010 at 9:52 AM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:
> In ?Syntax [ is given as higher priority than $ but BOD$demand[3]
> seems to be the same as (BOD$demand)[3] contrary to [ being higher
> priority.
>
>> BOD$demand[3]
> [1] 19
>> (BOD$demand)[3]
> [1] 19
>
> What is the rule being used here?

 I think its the parser rule that defines the syntax of $ on a list. Does:

 BOD$(demand[3]) even work?

> BOD$(demand[3])
Error: unexpected '(' in "BOD$("

 - no. The parser sees a $ and then gets the next token (gram.y shows
this to be a symbol or a string constant) as the thing to deal with.
Symbols  I can't think of an example where $ and [ could have
ambiguous precedence that is syntactically correct, so maybe the order
is irrelevant...

 Just for fun:

> x=list(a=1,b=2)
> x$"a[1]"=2
> x$"a[1]"
[1] 2
> x$a[1]
[1] 1


Barry



More information about the R-devel mailing list