- From: <bugzilla@jessica.w3.org>
- Date: Thu, 07 Jun 2012 10:40:49 +0000
- To: public-webapps-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=17435
Summary: WebIDL: Bug in definition of whitespace terminal?
Product: WebAppsWG
Version: unspecified
Platform: PC
OS/Version: Windows NT
Status: NEW
Severity: normal
Priority: P2
Component: WebIDL
AssignedTo: cam@mcc.id.au
ReportedBy: wolfgangkeller@gmail.com
QAContact: public-webapps-bugzilla@w3.org
CC: mike@w3.org, public-script-coord@w3.org
In the definition of the terminals in section "A. IDL grammar" you'll find the
following definition of the whitespace terminal:
whitespace = [\t\n\r ]+|[\t\n\r ]*((//.*|/\*.*?\*/)[\t\n\r ]*)+
Let's look at its part specific to block comments ("/* ... */"):
/\*.*?\*/
What does this regular expression look for (see the referenced document
http://search.cpan.org/dist/perl/pod/perlre.pod for details):
a string '/*'
followed by 0 or more "any character (except newline)", not greedily (the
latter one follows by using '*?' instead of '*')
followed by the string '*/'.
What consequence does this have? The answer is that block comments can't
contain newline characters between the block comment delimiters - I don't
believe this is what you intend.
Thus I believe, the regular expression has to be fixed. I propose the following
fix, but better check it thrice for correctness:
We change the part
/\*.*?\*/
to
/\*[.\n]*?\*/
Thus the complete definition of the whitespace terminal changes to
whitespace = [\t\n\r ]+|[\t\n\r ]*((//.*|/\*[.\n]*?\*/)[\t\n\r ]*)+
--
Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Thursday, 7 June 2012 10:40:57 UTC