William D Clinger wrote: > The formal syntax says #\XFF is *not* a valid character, > [...] > The only reason I can see to regard #\XFF as a valid > character is the following sentence in R6RS 4.2.6: > > Case is significant in #\<character>, and in > #\<character name>, but not in #\x<hex scalar value>. > > I believe that sentence was intended to say that case > is not significant in the <hex scalar value> part of > #\x<hex scalar value>, but the sentence was worded > incorrectly.
The formal syntax also does not indicate that +I, -I, +NAN.0, +NaN.0, +INF.0, +Inf.0, etc., are valid numbers, but the second sentence of 4.2.8 make its clear that they are. I believe that the lexical grammar is defined by the formal grammar in 4.2.1 modified by the rest of 4.2. I do not see that we have freedom to ignore parts of 4.2.6. Therefore, I maintain that \XFF is a valid character. > Regardless of the editors' intent, I believe the best > way to resolve the inconsistency is to interpret that > sentence as Aziz and I have. With three exceptions, the lexical syntax of the R6RS is sensitive to case in strings and things which might be interpreted as names (identifiers and character names) and insensitive everywhere else. The exceptions are \x in hex escapes (which is sensitive to case) and nan and inf (which are insensitive to case). In particular, with the exception of \x in hex escapes, all of the \? notations are insensitive to the case of ?. It might therefore be slightly more consistent to allow both \x and \X in hex characters and hex escapes. I would still welcome a clarification and possible modification to the syntax in a future revision of the R6RS. In the meantime, portable code will not want to live dangerously. Regards, Alan _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
