PN_LOCAL_ESC

another rule presentation issue:

[166s] PN_LOCAL_ESC ::=  '\' '_' | '~' | '.' | '-' | '!' | '$' | '&' | 
"'" | '(' | ')' | '*' | '+' | ',' | ';' | '=' | '/' | '?' | '#' | '@' | '%'

in summary:

[166s] PN_LOCAL_ESC ::=  '\' '_' | '~' | .... | '@' | '%'

It would be clearer to add ( ) to show that '\' takes one of the char, 
not just the first '_'

Suggested change:

[166s] PN_LOCAL_ESC ::=  '\' ( '_' | '~' | .... | '@' | '%' )
                                     ^                              ^
 Andy

On 12/06/12 19:59, Andy Seaborne 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
>
> 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 15:22:49 UTC