comparison libpurple/dbus-analyze-functions.py @ 23143:2012a85f8507

Update the dbus-analyze script to deal with multiline function definitions of the following form: type * function(parameterlist);
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Tue, 13 May 2008 00:27:36 +0000
parents 7ec5b5724a05
children 7493462e6959
comparison
equal deleted inserted replaced
23141:d0ee799828d1 23143:2012a85f8507
481 481
482 def __init__(self, inputfile, fprefix): 482 def __init__(self, inputfile, fprefix):
483 self.inputiter = iter(inputfile) 483 self.inputiter = iter(inputfile)
484 self.functionregexp = \ 484 self.functionregexp = \
485 re.compile("^%s(\w[^()]*)\(([^()]*)\)\s*;\s*$" % fprefix) 485 re.compile("^%s(\w[^()]*)\(([^()]*)\)\s*;\s*$" % fprefix)
486 self.typeregexp = re.compile("^\w+\s*\*?\s*$")
486 487
487 488
488 489
489 def process(self): 490 def process(self):
490 print "/* Generated by %s. Do not edit! */" % sys.argv[0] 491 print "/* Generated by %s. Do not edit! */" % sys.argv[0]
499 continue 500 continue
500 501
501 # accumulate lines until the parentheses are balance or an 502 # accumulate lines until the parentheses are balance or an
502 # empty line has been encountered 503 # empty line has been encountered
503 myline = line.strip() 504 myline = line.strip()
504 while myline.count("(") > myline.count(")"): 505 while (myline.count("(") > myline.count(")")) or self.typeregexp.match(myline):
505 newline = self.inputiter.next().strip() 506 newline = self.inputiter.next().strip()
506 if len(newline) == 0: 507 if len(newline) == 0:
507 break 508 break
508 myline += " " + newline 509 myline += " " + newline
509 510