summaryrefslogtreecommitdiffstats
path: root/ppapi/generators
diff options
context:
space:
mode:
authorjvoung@google.com <jvoung@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-18 22:53:04 +0000
committerjvoung@google.com <jvoung@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-18 22:53:04 +0000
commit03f41ec4b0affa9c949e5e7190fcce0159c0fef3 (patch)
tree0b03f78b3e8c4edd11cedd464683695c8d97beec /ppapi/generators
parentab88d15445a1bbf1e55bc34a559f8942cb175a7a (diff)
downloadchromium_src-03f41ec4b0affa9c949e5e7190fcce0159c0fef3.zip
chromium_src-03f41ec4b0affa9c949e5e7190fcce0159c0fef3.tar.gz
chromium_src-03f41ec4b0affa9c949e5e7190fcce0159c0fef3.tar.bz2
Convert a few ppapi dev interfaces to IDL. NaCl has tests for these
dev interfaces, and we want it to go through IDL so that the PNaCl shim will know about them. There are few others dev and private interfaces not yet converted to IDL, but this is a start. TEST= ./generator.py BUG= http://code.google.com/p/chromium/issues/detail?id=89968 Review URL: http://codereview.chromium.org/8586031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110777 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/generators')
-rw-r--r--ppapi/generators/idl_c_header.py6
-rw-r--r--ppapi/generators/idl_c_proto.py15
-rw-r--r--ppapi/generators/idl_lexer.py3
3 files changed, 17 insertions, 7 deletions
diff --git a/ppapi/generators/idl_c_header.py b/ppapi/generators/idl_c_header.py
index e08316c..7813b0b 100644
--- a/ppapi/generators/idl_c_header.py
+++ b/ppapi/generators/idl_c_header.py
@@ -90,6 +90,11 @@ def GenerateHeader(out, filenode, releases):
name = '%s%s' % (pref, node.GetName())
if node.IsA('Struct'):
form = 'PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(%s, %s);\n'
+ elif node.IsA('Enum'):
+ if node.GetProperty('notypedef'):
+ form = 'PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(%s, %s);\n'
+ else:
+ form = 'PP_COMPILE_ASSERT_SIZE_IN_BYTES(%s, %s);\n'
else:
form = 'PP_COMPILE_ASSERT_SIZE_IN_BYTES(%s, %s);\n'
item += form % (name, asize[0])
@@ -219,4 +224,3 @@ def Main(args):
if __name__ == '__main__':
retval = Main(sys.argv[1:])
sys.exit(retval)
-
diff --git a/ppapi/generators/idl_c_proto.py b/ppapi/generators/idl_c_proto.py
index f3eab9d..584cfaa 100644
--- a/ppapi/generators/idl_c_proto.py
+++ b/ppapi/generators/idl_c_proto.py
@@ -254,7 +254,11 @@ class CGen(object):
# If it's an enum, or typedef then return the Enum's name
elif typeref.IsA('Enum', 'Typedef'):
- name = '%s%s' % (prefix, typeref.GetName())
+ # The enum may have skipped having a typedef, we need prefix with 'enum'.
+ if typeref.GetProperty('notypedef'):
+ name = 'enum %s%s' % (prefix, typeref.GetName())
+ else:
+ name = '%s%s' % (prefix, typeref.GetName())
else:
raise RuntimeError('Getting name of non-type %s.' % node)
@@ -413,12 +417,15 @@ class CGen(object):
def DefineEnum(self, node, releases, prefix='', comment=False):
__pychecker__ = 'unusednames=comment,releases'
self.LogEnter('DefineEnum %s' % node)
- unnamed = node.GetProperty('unnamed')
+ name = '%s%s' % (prefix, node.GetName())
+ notypedef = node.GetProperty('notypedef')
+ unnamed = node.GetProperty('unnamed')
if unnamed:
out = 'enum {'
+ elif notypedef:
+ out = 'enum %s {' % name
else:
out = 'typedef enum {'
- name = '%s%s' % (prefix, node.GetName())
enumlist = []
for child in node.GetListOf('EnumItem'):
value = child.GetProperty('VALUE')
@@ -430,7 +437,7 @@ class CGen(object):
enumlist.append('%s %s' % (comment_txt, item_txt))
self.LogExit('Exit DefineEnum')
- if unnamed:
+ if unnamed or notypedef:
out = '%s\n%s\n};\n' % (out, ',\n'.join(enumlist))
else:
out = '%s\n%s\n} %s;\n' % (out, ',\n'.join(enumlist), name)
diff --git a/ppapi/generators/idl_lexer.py b/ppapi/generators/idl_lexer.py
index 940eea2..bf0b134 100644
--- a/ppapi/generators/idl_lexer.py
+++ b/ppapi/generators/idl_lexer.py
@@ -97,7 +97,7 @@ class IDLLexer(object):
# Constant values
t_FLOAT = r'-?(\d+\.\d*|\d*\.\d+)([Ee][+-]?\d+)?|-?\d+[Ee][+-]?\d+'
- t_INT = r'-?[0-9]+'
+ t_INT = r'-?[0-9]+[uU]?'
t_OCT = r'-?0[0-7]+'
t_HEX = r'-?0[Xx][0-9A-Fa-f]+'
t_LSHIFT = r'<<'
@@ -330,4 +330,3 @@ def Main(args):
if __name__ == '__main__':
sys.exit(Main(sys.argv[1:]))
-