Possible Bug in SPARQL 1.1 Grammar

Hi Andy,

I was working on a SPARQL 1.1 parser and noticed that this filter did not parse:

FILTER(3+3+4*5*2*3=126)

I believe there is a problem with the AdditiveExpression production:

AdditiveExpression      ::=      MultiplicativeExpression ( '+' MultiplicativeExpression | '-' MultiplicativeExpression | ( NumericLiteralPositive | NumericLiteralNegative ) ( ( '*' UnaryExpression ) | ( '/' UnaryExpression ) )? )*

I think
( ( '*' UnaryExpression ) | ( '/' UnaryExpression ) )*?*
should be
( ( '*' UnaryExpression ) | ( '/' UnaryExpression ) )***

Of course, I could have made a mistake somewhere else to cause the problem too.

Thanks,
Matt

Received on Wednesday, 28 September 2011 13:14:34 UTC