Additional syntax - B.1.2 String Literals
On 29/12/10 02:56, Gavin Barraclough wrote:
Hi,
In the definition of OctalEscapeSequence, and in the accompanying semantics, it is required at numerous points that the subsequent character is not a DecimalDigit:
OctalEscapeSequence :: OctalDigit [lookahead ∉ DecimalDigit] ZeroToThree OctalDigit [lookahead ∉ DecimalDigit] FourToSeven OctalDigit ZeroToThree OctalDigit OctalDigit
In these cases it would seem to make more sense to require that the subsequent character is not an OctalDigit. For example, implementations supporting this additional syntax the string literal "\019" is permitted (with '\01' matching the rule 'ZeroToThree OctalDigit').
As such, I think throughout B.1.2. it would make more sense to replace DecimalDigit with OctalDigit.
Additionally, I believe it would also be helpful to redefine the following rule (in section B.1.2):
EscapeCharacter :: SingleEscapeCharacter DecimalDigit x u
Again, replacing DecimalDigit with OctalDigit. This would add documentation reflecting the fact that in addition to permitting octal escapes implementations commonly permit '\8\ and '\9' to be handled as NonEscapeCharacter sequences in string literals.
This has been raised on the list before, most recently at mail.mozilla.org/pipermail/es5-discuss/2010-February/003490.html.
Also, with to that, see esdiscuss/2010-November/012168. (I'll follow up on that sometime soon!).
Apologies, I had missed your earlier mail to the list – please consider my last post a wholehearted agreement.
I hope we can get some traction on on this, for my part I'll try to continue to try to producing some of the additional language we may need in appendix B, in the hope this can help move things forwards.
In the definition of OctalEscapeSequence, and in the accompanying semantics, it is required at numerous points that the subsequent character is not a DecimalDigit:
In these cases it would seem to make more sense to require that the subsequent character is not an OctalDigit. For example, implementations supporting this additional syntax the string literal "\019" is permitted (with '\01' matching the rule 'ZeroToThree OctalDigit').
As such, I think throughout B.1.2. it would make more sense to replace DecimalDigit with OctalDigit.
Additionally, I believe it would also be helpful to redefine the following rule (in section B.1.2):
Again, replacing DecimalDigit with OctalDigit. This would add documentation reflecting the fact that in addition to permitting octal escapes implementations commonly permit '\8\ and '\9' to be handled as NonEscapeCharacter sequences in string literals.