diff options
author | jvoung@google.com <jvoung@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-18 22:53:04 +0000 |
---|---|---|
committer | jvoung@google.com <jvoung@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-18 22:53:04 +0000 |
commit | 03f41ec4b0affa9c949e5e7190fcce0159c0fef3 (patch) | |
tree | 0b03f78b3e8c4edd11cedd464683695c8d97beec /ppapi/generators | |
parent | ab88d15445a1bbf1e55bc34a559f8942cb175a7a (diff) | |
download | chromium_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.py | 6 | ||||
-rw-r--r-- | ppapi/generators/idl_c_proto.py | 15 | ||||
-rw-r--r-- | ppapi/generators/idl_lexer.py | 3 |
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:])) - |