Index: ppapi/generators/idl_c_proto.py |
=================================================================== |
--- ppapi/generators/idl_c_proto.py (revision 109691) |
+++ ppapi/generators/idl_c_proto.py (working copy) |
@@ -58,7 +58,7 @@ |
lines = prefix_lines + lines; |
return CommentLines(lines, tabs) |
-def GetNodeComments(node, prefix=None, tabs=0): |
+def GetNodeComments(node, tabs=0): |
# Generate a comment block joining all comment nodes which are children of |
# the provided node. |
comment_txt = '' |
@@ -158,8 +158,7 @@ |
# |
def Log(self, txt): |
if not GetOption('cgen_debug'): return |
- tabs = '' |
- for tab in range(self.dbg_depth): tabs += ' ' |
+ tabs = ' ' * self.dbg_depth |
print '%s%s' % (tabs, txt) |
def LogEnter(self, txt): |
@@ -170,12 +169,48 @@ |
self.dbg_depth -= 1 |
if txt: self.Log(txt) |
+ |
+ def GetDefine(self, name, value): |
+ out = '#define %s %s' % (name, value) |
+ if len(out) > 80: |
+ out = '#define %s \\\n %s' % (name, value) |
+ return '%s\n' % out |
+ |
# |
+ # Interface strings |
+ # |
+ def GetMacroHelper(self, node): |
+ macro = node.GetProperty('macro') |
+ if macro: return macro |
+ name = node.GetName() |
+ name = name.upper() |
+ return "%s_INTERFACE" % name |
+ |
+ def GetInterfaceMacro(self, node, version = None): |
+ name = self.GetMacroHelper(node) |
+ if version is None: |
+ return name |
+ return '%s_%s' % (name, str(version).replace('.', '_')) |
+ |
+ def GetInterfaceString(self, node, version = None): |
+ # If an interface name is specified, use that |
+ name = node.GetProperty('iname') |
+ if not name: |
+ # Otherwise, the interface name is the object's name |
+ # With '_Dev' replaced by '(Dev)' if it's a Dev interface. |
+ name = node.GetName() |
+ if name.endswith('_Dev'): |
+ name = '%s(Dev)' % name[:-4] |
+ if version is None: |
+ return name |
+ return "%s;%s" % (name, version) |
+ |
+ |
+ # |
# Return the array specification of the object. |
# |
def GetArraySpec(self, node): |
assert(node.cls == 'Array') |
- out = '' |
fixed = node.GetProperty('FIXED') |
if fixed: |
return '[%s]' % fixed |
@@ -367,6 +402,7 @@ |
# Define a Typedef. |
def DefineTypedef(self, node, releases, prefix='', comment=False): |
+ __pychecker__ = 'unusednames=comment' |
release = releases[0] |
out = 'typedef %s;\n' % self.GetSignature(node, release, 'return', |
prefix, True) |
@@ -375,6 +411,7 @@ |
# Define an Enum. |
def DefineEnum(self, node, releases, prefix='', comment=False): |
+ __pychecker__ = 'unusednames=comment,releases' |
self.LogEnter('DefineEnum %s' % node) |
unnamed = node.GetProperty('unnamed') |
if unnamed: |
@@ -400,6 +437,7 @@ |
return out |
def DefineMember(self, node, releases, prefix='', comment=False): |
+ __pychecker__ = 'unusednames=prefix,comment' |
release = releases[0] |
self.LogEnter('DefineMember %s' % node) |
out = '%s;' % self.GetSignature(node, release, 'store', '', True) |
@@ -425,6 +463,7 @@ |
def DefineStruct(self, node, releases, prefix='', comment=False): |
+ __pychecker__ = 'unusednames=comment,prefix' |
self.LogEnter('DefineStruct %s' % node) |
out = '' |
build_list = node.GetUniqueReleases(releases) |
@@ -459,17 +498,17 @@ |
return '' |
self.LogEnter('Define %s tab=%d prefix="%s"' % (node,tabs,prefix)) |
- declmap = { |
- 'Enum' : CGen.DefineEnum, |
- 'Function' : CGen.DefineMember, |
- 'Interface' : CGen.DefineStruct, |
- 'Member' : CGen.DefineMember, |
- 'Struct' : CGen.DefineStruct, |
- 'Typedef' : CGen.DefineTypedef, |
- } |
+ declmap = dict({ |
+ 'Enum': CGen.DefineEnum, |
+ 'Function': CGen.DefineMember, |
+ 'Interface': CGen.DefineStruct, |
+ 'Member': CGen.DefineMember, |
+ 'Struct': CGen.DefineStruct, |
+ 'Typedef': CGen.DefineTypedef |
+ }) |
out = '' |
- func = declmap.get(node.cls) |
+ func = declmap.get(node.cls, None) |
if not func: |
ErrOut.Log('Failed to define %s named %s' % (node.cls, node.GetName())) |
define_txt = func(self, node, releases, prefix=prefix, comment=comment) |