X-Git-Url: https://git.cworth.org/git?p=apitrace-tests;a=blobdiff_plain;f=tracematch.py;h=ec0509e5285e0983a3203dd989129aef08b13afb;hp=41320c17f27112fa7c6f9d6e091a4c08720cf328;hb=ae97a601d23b8bbbe8b10020e6e10c51ddf00e21;hpb=91c6216aa7b98e35f5f30c703630e68a69b5251e diff --git a/tracematch.py b/tracematch.py index 41320c1..ec0509e 100755 --- a/tracematch.py +++ b/tracematch.py @@ -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')