Re: Turtle and decimals

On Tue, Jun 12, 2012 at 11:59 AM, Andy Seaborne
<andy.seaborne@epimorphics.com> wrote:
>
> 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

Thanks for catching both of these. Both are fixed in the current editors draft.

Cheers,
Gavin

>
> 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 Wednesday, 13 June 2012 21:20:13 UTC