]> git.cworth.org Git - apitrace-tests/blobdiff - tracematch.py
tracematch: Fix array parsing.
[apitrace-tests] / tracematch.py
index 41320c17f27112fa7c6f9d6e091a4c08720cf328..ec0509e5285e0983a3203dd989129aef08b13afb 100755 (executable)
@@ -440,6 +440,9 @@ class CallScanner(Scanner):
         # whitespace
         (SKIP, r'[ \t\f\r\n\v]+', False),
 
+        # comments
+        (SKIP, r'//[^\r\n]*', False),
+
         # Alphanumeric IDs
         (ID, r'[a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z_][a-zA-Z0-9_]*)?', True),
 
@@ -542,13 +545,14 @@ class TraceParser(Parser):
     def parse_opt_pair(self):
         '''Parse an optional `name = value` pair.'''
         if self.match(ID):
-            name = self.consume(ID).text
+            token = self.consume(ID)
             if self.match(EQUAL):
                 self.consume(EQUAL)
+                name = token.text
                 value = self.parse_value()
             else:
-                value = name
                 name = None
+                value = self.handleID(token.text)
         else:
             name = None
             value = self.parse_value()
@@ -595,11 +599,12 @@ class TraceParser(Parser):
             return self.handleString(value)
         elif self.match(NUMBER):
             token = self.consume()
-            if '.' in token.text:
+            try:
+                value = int(token.text)
+            except ValueError:
                 value = float(token.text)
                 return self.handleFloat(value)
             else:
-                value = int(token.text)
                 return self.handleInt(value)
         elif self.match(HEXNUM):
             token = self.consume()
@@ -784,8 +789,8 @@ def main():
         sys.stdout.write('\n')
 
     if srcFileName.endswith('.trace'):
-        cmd = [options.apitrace, 'dump', '--color=never', srcFileName]
-        p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
+        cmd = [options.apitrace, 'dump', '--verbose', '--color=never', srcFileName]
+        p = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True)
         srcStream = p.stdout
     else:
         srcStream = open(srcFileName, 'rt')