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

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

Issue 8586031: Convert a few ppapi dev interfaces to IDL. NaCl has tests for these (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: clean up a bit more Created 9 years, 1 month 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_lexer.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 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 247
248 # For structures, preceed with 'struct' or 'union' as appropriate 248 # For structures, preceed with 'struct' or 'union' as appropriate
249 elif typeref.IsA('Interface', 'Struct'): 249 elif typeref.IsA('Interface', 'Struct'):
250 if typeref.GetProperty('union'): 250 if typeref.GetProperty('union'):
251 name = 'union %s%s' % (prefix, typeref.GetName()) 251 name = 'union %s%s' % (prefix, typeref.GetName())
252 else: 252 else:
253 name = 'struct %s%s' % (prefix, typeref.GetName()) 253 name = 'struct %s%s' % (prefix, typeref.GetName())
254 254
255 # If it's an enum, or typedef then return the Enum's name 255 # If it's an enum, or typedef then return the Enum's name
256 elif typeref.IsA('Enum', 'Typedef'): 256 elif typeref.IsA('Enum', 'Typedef'):
257 name = '%s%s' % (prefix, typeref.GetName()) 257 # The enum may have skipped having a typedef, we need prefix with 'enum'.
258 if typeref.GetProperty('notypedef'):
259 name = 'enum %s%s' % (prefix, typeref.GetName())
260 else:
261 name = '%s%s' % (prefix, typeref.GetName())
258 262
259 else: 263 else:
260 raise RuntimeError('Getting name of non-type %s.' % node) 264 raise RuntimeError('Getting name of non-type %s.' % node)
261 self.LogExit('GetTypeName %s is %s' % (node, name)) 265 self.LogExit('GetTypeName %s is %s' % (node, name))
262 return name 266 return name
263 267
264 268
265 # 269 #
266 # GetRootType 270 # GetRootType
267 # 271 #
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 release = releases[0] 410 release = releases[0]
407 out = 'typedef %s;\n' % self.GetSignature(node, release, 'return', 411 out = 'typedef %s;\n' % self.GetSignature(node, release, 'return',
408 prefix, True) 412 prefix, True)
409 self.Log('DefineTypedef: %s' % out) 413 self.Log('DefineTypedef: %s' % out)
410 return out 414 return out
411 415
412 # Define an Enum. 416 # Define an Enum.
413 def DefineEnum(self, node, releases, prefix='', comment=False): 417 def DefineEnum(self, node, releases, prefix='', comment=False):
414 __pychecker__ = 'unusednames=comment,releases' 418 __pychecker__ = 'unusednames=comment,releases'
415 self.LogEnter('DefineEnum %s' % node) 419 self.LogEnter('DefineEnum %s' % node)
416 unnamed = node.GetProperty('unnamed') 420 name = '%s%s' % (prefix, node.GetName())
421 notypedef = node.GetProperty('notypedef')
422 unnamed = node.GetProperty('unnamed')
417 if unnamed: 423 if unnamed:
418 out = 'enum {' 424 out = 'enum {'
425 elif notypedef:
426 out = 'enum %s {' % name
419 else: 427 else:
420 out = 'typedef enum {' 428 out = 'typedef enum {'
421 name = '%s%s' % (prefix, node.GetName())
422 enumlist = [] 429 enumlist = []
423 for child in node.GetListOf('EnumItem'): 430 for child in node.GetListOf('EnumItem'):
424 value = child.GetProperty('VALUE') 431 value = child.GetProperty('VALUE')
425 comment_txt = GetNodeComments(child, tabs=1) 432 comment_txt = GetNodeComments(child, tabs=1)
426 if value: 433 if value:
427 item_txt = '%s%s = %s' % (prefix, child.GetName(), value) 434 item_txt = '%s%s = %s' % (prefix, child.GetName(), value)
428 else: 435 else:
429 item_txt = '%s%s' % (prefix, child.GetName()) 436 item_txt = '%s%s' % (prefix, child.GetName())
430 enumlist.append('%s %s' % (comment_txt, item_txt)) 437 enumlist.append('%s %s' % (comment_txt, item_txt))
431 self.LogExit('Exit DefineEnum') 438 self.LogExit('Exit DefineEnum')
432 439
433 if unnamed: 440 if unnamed or notypedef:
434 out = '%s\n%s\n};\n' % (out, ',\n'.join(enumlist)) 441 out = '%s\n%s\n};\n' % (out, ',\n'.join(enumlist))
435 else: 442 else:
436 out = '%s\n%s\n} %s;\n' % (out, ',\n'.join(enumlist), name) 443 out = '%s\n%s\n} %s;\n' % (out, ',\n'.join(enumlist), name)
437 return out 444 return out
438 445
439 def DefineMember(self, node, releases, prefix='', comment=False): 446 def DefineMember(self, node, releases, prefix='', comment=False):
440 __pychecker__ = 'unusednames=prefix,comment' 447 __pychecker__ = 'unusednames=prefix,comment'
441 release = releases[0] 448 release = releases[0]
442 self.LogEnter('DefineMember %s' % node) 449 self.LogEnter('DefineMember %s' % node)
443 out = '%s;' % self.GetSignature(node, release, 'store', '', True) 450 out = '%s;' % self.GetSignature(node, release, 'store', '', True)
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 if f.GetProperty('ERRORS') > 0: 614 if f.GetProperty('ERRORS') > 0:
608 print 'Skipping %s' % f.GetName() 615 print 'Skipping %s' % f.GetName()
609 continue 616 continue
610 print DefineDepends(node) 617 print DefineDepends(node)
611 for node in f.GetChildren()[2:]: 618 for node in f.GetChildren()[2:]:
612 print Define(node, comment=True, prefix='tst_') 619 print Define(node, comment=True, prefix='tst_')
613 620
614 621
615 if __name__ == '__main__': 622 if __name__ == '__main__':
616 sys.exit(Main(sys.argv[1:])) 623 sys.exit(Main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « ppapi/generators/idl_c_header.py ('k') | ppapi/generators/idl_lexer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698