args.append(arg)
elif self.token.name_or_data == 'ret':
ret = self.parse_ret()
+ elif self.token.name_or_data == 'call':
+ self.parse_call()
else:
raise TokenMismatch("<arg ...> or <ret ...>", self.token)
self.element_end('call')
args = sys.argv[1:]
if args:
for arg in args:
- parser = TraceParser(open(arg, 'rt'), formatter)
+ if arg.endswith('.gz'):
+ from gzip import GzipFile
+ stream = GzipFile(arg, 'rt')
+ elif arg.endswith('.bz2'):
+ from bz2 import BZ2File
+ stream = BZ2File(arg, 'rt')
+ else:
+ stream = open(arg, 'rt')
+ parser = TraceParser(stream, formatter)
parser.parse()
else:
parser = TraceParser(sys.stdin, formatter)