Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(147)

Side by Side Diff: ppapi/generators/idl_c_proto.py

Issue 7751001: More multi-version support (part 2) (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ppapi/generators/idl_c_header.py ('k') | ppapi/generators/idl_namespace.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # 2 #
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """ Generator for C style prototypes and definitions """ 7 """ Generator for C style prototypes and definitions """
8 8
9 import glob 9 import glob
10 import os 10 import os
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 out = '%s\n%s\n} %s;\n' % (out, ',\n'.join(enumlist), name) 391 out = '%s\n%s\n} %s;\n' % (out, ',\n'.join(enumlist), name)
392 return out 392 return out
393 393
394 def DefineMember(self, node, releases, prefix='', comment=False): 394 def DefineMember(self, node, releases, prefix='', comment=False):
395 release = releases[0] 395 release = releases[0]
396 self.LogEnter('DefineMember %s' % node) 396 self.LogEnter('DefineMember %s' % node)
397 out = '%s;' % self.GetSignature(node, release, 'store', '', True) 397 out = '%s;' % self.GetSignature(node, release, 'store', '', True)
398 self.LogExit('Exit DefineMember') 398 self.LogExit('Exit DefineMember')
399 return out 399 return out
400 400
401 # Define a Struct. 401 def DefineStructInternals(self, node, release, suffix='', comment=True):
402 def DefineStruct(self, node, releases, prefix='', comment=False):
403 out = '' 402 out = ''
404
405 self.LogEnter('DefineStruct %s' % node)
406 if node.GetProperty('union'): 403 if node.GetProperty('union'):
407 out += 'union %s%s {\n' % (prefix, node.GetName()) 404 out += 'union %s%s {\n' % (node.GetName(), suffix)
408 else: 405 else:
409 out += 'struct %s%s {\n' % (prefix, node.GetName()) 406 out += 'struct %s%s {\n' % (node.GetName(), suffix)
410 407
411 # Generate Member Functions 408 # Generate Member Functions
412 members = [] 409 members = []
413 for child in node.GetListOf('Member'): 410 for child in node.GetListOf('Member'):
414 member = self.Define(child, releases, tabs=1, comment=comment) 411 member = self.Define(child, [release], tabs=1, comment=comment)
415 if not member: 412 if not member:
416 continue 413 continue
417 members.append(member) 414 members.append(member)
418 out += '%s\n};\n' % '\n'.join(members) 415 out += '%s\n};\n' % '\n'.join(members)
416 return out
417
418
419 def DefineStruct(self, node, releases, prefix='', comment=False):
420 self.LogEnter('DefineStruct %s' % node)
421 out = ''
422 build_list = node.GetUniqueReleases(releases)
423
424 # Build the most recent one with comments
425 out = self.DefineStructInternals(node, build_list[-1], comment=True)
426
427 # Build the rest without comments and with the version number appended
428 for rel in build_list[0:-1]:
429 ver_num = node.GetVersion(rel)
430 ver = ("_%s" % ver_num).replace('.', '_')
431 out += '\n' + self.DefineStructInternals(node, rel, suffix=ver,
432 comment=False)
433
419 self.LogExit('Exit DefineStruct') 434 self.LogExit('Exit DefineStruct')
420 return out 435 return out
421 436
437
422 # 438 #
423 # Copyright and Comment 439 # Copyright and Comment
424 # 440 #
425 # Generate a comment or copyright block 441 # Generate a comment or copyright block
426 # 442 #
427 def Copyright(self, node, tabs=0): 443 def Copyright(self, node, tabs=0):
428 lines = node.GetName().split('\n') 444 lines = node.GetName().split('\n')
429 return CommentLines(lines, tabs) 445 return CommentLines(lines, tabs)
430 446
431 447
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 print 'Skipping %s' % f.GetName() 561 print 'Skipping %s' % f.GetName()
546 continue 562 continue
547 print DefineDepends(node) 563 print DefineDepends(node)
548 for node in f.GetChildren()[2:]: 564 for node in f.GetChildren()[2:]:
549 print Define(node, comment=True, prefix='tst_') 565 print Define(node, comment=True, prefix='tst_')
550 566
551 567
552 if __name__ == '__main__': 568 if __name__ == '__main__':
553 sys.exit(Main(sys.argv[1:])) 569 sys.exit(Main(sys.argv[1:]))
554 570
OLDNEW
« no previous file with comments | « ppapi/generators/idl_c_header.py ('k') | ppapi/generators/idl_namespace.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698