Better parsing of comments in generate-message*.py
authorkrollin@apple.com <krollin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Nov 2018 22:12:53 +0000 (22:12 +0000)
committerkrollin@apple.com <krollin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Nov 2018 22:12:53 +0000 (22:12 +0000)
https://bugs.webkit.org/show_bug.cgi?id=191866
<rdar://problem/46189563>

Reviewed by Chris Dumez.

The script parsing the *.messages.in files would treat a line starting
with '#' as a comment, but not a line starting with '<whitespace>#'.
This means that jamming a '#' right in front of the first character of
a message definition (as opposed to the beginning of a line) will have
no effect and the line will get treated just the same as a
non-commented line. Fix this by trimming all white space from the
beginning and ending of the line before processing it.

* Scripts/webkit/parser.py:
(parse):
* Scripts/webkit/test-messages.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238577 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/Scripts/webkit/parser.py
Source/WebKit/Scripts/webkit/test-messages.in

index b997547..700baae 100644 (file)
@@ -1,3 +1,23 @@
+2018-11-27  Keith Rollin  <krollin@apple.com>
+
+        Better parsing of comments in generate-message*.py
+        https://bugs.webkit.org/show_bug.cgi?id=191866
+        <rdar://problem/46189563>
+
+        Reviewed by Chris Dumez.
+
+        The script parsing the *.messages.in files would treat a line starting
+        with '#' as a comment, but not a line starting with '<whitespace>#'.
+        This means that jamming a '#' right in front of the first character of
+        a message definition (as opposed to the beginning of a line) will have
+        no effect and the line will get treated just the same as a
+        non-commented line. Fix this by trimming all white space from the
+        beginning and ending of the line before processing it.
+
+        * Scripts/webkit/parser.py:
+        (parse):
+        * Scripts/webkit/test-messages.in:
+
 2018-11-27  Thibault Saunier  <tsaunier@igalia.com>
 
         [GTK|WPE] Allow disabling WebRTC unified plan SDP through an env var
index 9f3deea..14f3137 100644 (file)
@@ -50,6 +50,7 @@ def parse(file):
     master_condition = None
     superclass = []
     for line in file:
+        line = line.strip()
         match = re.search(r'messages -> (?P<destination>[A-Za-z_0-9]+) \s*(?::\s*(?P<superclass>.*?) \s*)?(?:(?P<attributes>.*?)\s+)?{', line)
         if match:
             receiver_attributes = parse_attributes_string(match.group('attributes'))
@@ -61,13 +62,12 @@ def parse(file):
             destination = match.group('destination')
             continue
         if line.startswith('#'):
-            trimmed = line.rstrip()
             if line.startswith('#if '):
-                conditions.append(trimmed[4:])
+                conditions.append(line[4:])
             elif line.startswith('#endif') and conditions:
                 conditions.pop()
             elif line.startswith('#else') or line.startswith('#elif'):
-                raise Exception("ERROR: '%s' is not supported in the *.in files" % trimmed)
+                raise Exception("ERROR: '%s' is not supported in the *.in files" % line)
             continue
         match = re.search(r'([A-Za-z_0-9]+)\((.*?)\)(?:(?:\s+->\s+)\((.*?)\))?(?:\s+(.*))?', line)
         if match:
index 7215b76..f691980 100644 (file)
 #if ENABLE(WEBKIT2)
 #if NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND
 
+
+# The parser should treat all of these as comments
+#FakeLoadURLA(String url)
+# FakeLoadURLB(String url)
+    #FakeLoadURLC(String url)
+    # FakeLoadURLD(String url)
+
 messages -> WebPage {
     LoadURL(String url)
 #if ENABLE(TOUCH_EVENTS)