Re: [Rd] Problem with ?Syntax

2010-02-21 Thread Duncan Murdoch

Gabor Grothendieck wrote:

I wasn't claiming there was an ambiguity but it does not perform
according to the operator precedence documented in ?Syntax .  If it
performed as documented it would give an error.
  


There are a few other errors in that page, e.g. saying that [ has 
greater priority than ::, but


version - 1:10
base::version[1]

shows :: has higher priority.   I'll take a look.

Duncan Murdoch

On Sat, Feb 20, 2010 at 6:57 AM, Barry Rowlingson
b.rowling...@lancaster.ac.uk wrote:
  

On Sat, Feb 20, 2010 at 9:52 AM, Gabor Grothendieck
ggrothendi...@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




__
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


Re: [Rd] Problem with ?Syntax

2010-02-21 Thread Duncan Murdoch

On 21/02/2010 12:44 PM, Duncan Murdoch wrote:

Gabor Grothendieck wrote:

I wasn't claiming there was an ambiguity but it does not perform
according to the operator precedence documented in ?Syntax .  If it
performed as documented it would give an error.
  


There are a few other errors in that page, e.g. saying that [ has 
greater priority than ::, but


version - 1:10
base::version[1]

shows :: has higher priority.   I'll take a look.


Actually, just one error.  The indexing operators were shown with higher 
priority than they should have.  Because ::, :::, $ and @ can only take 
a name or a string constant on the right, they effectively have higher 
priority than [ or [[.  I've clarified the man page.


Duncan Murdoch



Duncan Murdoch

On Sat, Feb 20, 2010 at 6:57 AM, Barry Rowlingson
b.rowling...@lancaster.ac.uk wrote:
  

On Sat, Feb 20, 2010 at 9:52 AM, Gabor Grothendieck
ggrothendi...@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



__
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


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


[Rd] Problem with ?Syntax

2010-02-20 Thread Gabor Grothendieck
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?

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


Re: [Rd] Problem with ?Syntax

2010-02-20 Thread Barry Rowlingson
On Sat, Feb 20, 2010 at 9:52 AM, Gabor Grothendieck
ggrothendi...@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

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


Re: [Rd] Problem with ?Syntax

2010-02-20 Thread Gabor Grothendieck
I wasn't claiming there was an ambiguity but it does not perform
according to the operator precedence documented in ?Syntax .  If it
performed as documented it would give an error.

On Sat, Feb 20, 2010 at 6:57 AM, Barry Rowlingson
b.rowling...@lancaster.ac.uk wrote:
 On Sat, Feb 20, 2010 at 9:52 AM, Gabor Grothendieck
 ggrothendi...@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


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