Additional syntax - B.1.2 String Literals

Geoffrey Sneddon gsneddon at
Tue Dec 28 23:53:15 PST 2010

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 
Also, with regards to that, see 
(I'll follow up on that sometime soon!).

Geoffrey Sneddon — Opera Software

More information about the es-discuss mailing list