- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Tue, 12 Jun 2012 19:59:09 +0100
- To: RDF-WG <public-rdf-wg@w3.org>
The grammar rule for DECIMAL is
[21] DECIMAL ::= (([+-])? ([0-9])+ '.' ([0-9])+) | ('.' ([0-9])+)
^ ^
which seems to have brackets in the wrong place.
It puts +/- only on the first form.
Rewritten with whitespace:
(([+-])? ([0-9])+ '.' ([0-9])+)
|
('.' ([0-9])+)
so .3 is legal but +.3 isn't.
Should that be:
([+-])?
( ( ([0-9])+ '.' ([0-9])+ )
|
('.' ([0-9])+)
)
ie.
([+-])? ( ( ([0-9])+ '.' ([0-9])+ ) | ('.' ([0-9])+) )
^1 ^1
^2 ^2
simpler is
([+-])? ( ([0-9])* '.' ([0-9])+ )
(this respects ISSUE-18).
- - - -
[22] DOUBLE ::= (([+-])? ([0-9])+ '.' ([0-9])+ EXPONENT) | ('.' ([0-9])+
EXPONENT) | (([0-9])+ EXPONENT)
(([+-])? ([0-9])+ '.' ([0-9])+ EXPONENT) | ....
^ ^
suffers a similar problem.
Should be:
([+-])? ( [0-9]+ '.' [0-9]* EXPONENT | '.' ([0-9])+ EXPONENT | ([0-9])+
EXPONENT )
Andy
PS
.3 is illegal in N3 as is +.3 and -.3
N3 requires a digit before the dot.
Except it does not require the dot in the EBNF:
N3 grammar:
[-+]?[0-9]+\\.[0-9]*
or EBNF:
decimal ::= [-+]?[0-9]+(\.[0-9]+)?
which are different and the latter reflects the old decimal/integer
issue in turtle and N3
Received on Tuesday, 12 June 2012 18:59:40 UTC