aux/trace: skip multi-line comments in enums2names
authorJulia Tatz <tatz.j@northeastern.edu>
Sat, 8 Jul 2023 19:59:52 +0000 (15:59 -0400)
committerMarge Bot <emma+marge@anholt.net>
Wed, 16 Aug 2023 00:11:29 +0000 (00:11 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24482>

src/gallium/auxiliary/driver_trace/enums2names.py

index 8aa1ba0..3d547e0 100755 (executable)
@@ -127,11 +127,26 @@ class PKKHeaderParser:
         self.mdata = []
         self.start = 0
         self.name = None
+        self.in_multiline_comment = False
 
     def error(self, msg):
         pkk_fatal(f"{self.filename}:{self.nline} : {msg}")
 
-    def parse_line(self, sline):
+    def parse_line(self, sline: str):
+        start = sline.find('/*')
+        end = sline.find('*/')
+        if not self.in_multiline_comment and start >= 0:
+            if end >= 0:
+                assert end > start
+                sline = sline[:start] + sline[end + 2:]
+            else:
+                sline = sline[:start]
+                self.in_multiline_comment = True
+        elif self.in_multiline_comment and end >= 0:
+            self.in_multiline_comment = False
+            sline = sline[end + 2:]
+        elif self.in_multiline_comment:
+            return
         # A kingdom for Py3.8 := operator ...
         smatch = re.match(r'^enum\s+([A-Za-z0-9_]+)\s+.*;', sline)
         if smatch: