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

Unified Diff: ppapi/generators/idl_generator.py

Issue 8538029: Cleanup IDL Generator (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/generators/idl_c_proto.py ('k') | ppapi/generators/idl_node.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/generators/idl_generator.py
===================================================================
--- ppapi/generators/idl_generator.py (revision 109691)
+++ ppapi/generators/idl_generator.py (working copy)
@@ -8,6 +8,7 @@
from idl_log import ErrOut, InfoOut, WarnOut
from idl_option import GetOption, Option, ParseOptions
+from idl_parser import ParseFiles
GeneratorList = []
@@ -39,6 +40,7 @@
default='')
GeneratorList.append(self)
self.errors = 0
+ self.skip_list = []
def Error(self, msg):
ErrOut.Log('Error %s : %s' % (self.name, msg))
@@ -68,6 +70,13 @@
print "Found releases: %s" % ast.releases
+ # Generate list of files to ignore due to errors
+ for filenode in ast.GetListOf('File'):
+ # If this file has errors, skip it
+ if filenode.GetProperty('ERRORS') > 0:
+ self.skip_list.append(filenode)
+ continue
+
# Check for a range option which over-rides a release option
if not releasestr and rangestr:
range_list = rangestr.split(',')
@@ -86,9 +95,9 @@
vmin = ast.releases.index(vmin)
vmax = ast.releases.index(vmax) + 1
- range = ast.releases[vmin:vmax]
+ releases = ast.releases[vmin:vmax]
InfoOut.Log('Generate range %s of %s.' % (range, self.name))
- ret = self.GenerateRange(ast, range, options)
+ ret = self.GenerateRange(ast, releases, options)
if ret < 0:
self.Error('Failed to generate range %s : %s.' %(vmin, vmax))
else:
@@ -112,8 +121,8 @@
self.Error("Undefined release generator.")
return 0
- def GenerateRange(self, ast, vmin, vmax, options):
- __pychecker__ = 'unusednames=ast,vmin,vmax,options'
+ def GenerateRange(self, ast, releases, options):
+ __pychecker__ = 'unusednames=ast,releases,options'
self.Error("Undefined range generator.")
return 0
@@ -143,6 +152,11 @@
# GenerateTail - Writes the end of the file (closing include guard, etc...)
#
class GeneratorByFile(Generator):
+ def GenerateFile(self, filenode, releases, options):
+ __pychecker__ = 'unusednames=filenode,releases,options'
+ self.Error("Undefined release generator.")
+ return 0
+
def GenerateRelease(self, ast, release, options):
return self.GenerateRange(ast, [release], options)
@@ -154,23 +168,18 @@
skipList = []
cnt = 0
for filenode in ast.GetListOf('File'):
+ # Ignore files with errors
+ if filenode in self.skip_list:
+ continue
+
# Skip this file if not required
if outlist and filenode.GetName() not in outlist:
continue
- # If this file has errors, skip it
- if filenode.GetProperty('ERRORS') > 0:
- skipList.append(filenode)
- continue
+ # Create the output file and increment out count if there was a delta
+ if self.GenerateFile(filenode, releases, options):
+ cnt = cnt + 1
- # Create output file
- out = self.GetOutFile(filenode, options)
- self.GenerateHead(out, filenode, releases, options)
- self.GenerateBody(out, filenode, releases, options)
- self.GenerateTail(out, filenode, releases, options)
-
- if out.Close(): cnt = cnt + 1
-
for filenode in skipList:
errcnt = filenode.GetProperty('ERRORS')
ErrOut.Log('%s : Skipped because of %d errors.' % (
@@ -208,8 +217,8 @@
check_release = 0
return check_release == 1
- def GenerateRange(self, ast, vmin, vmax, options = {}):
- __pychecker__ = 'unusednames=ast,vmin,vmax,options'
+ def GenerateRange(self, ast, releases, options):
+ __pychecker__ = 'unusednames=ast,releases,options'
global check_range
check_range = 1
return True
@@ -244,7 +253,6 @@
def Main(args):
if not args: return Test()
-
filenames = ParseOptions(args)
ast = ParseFiles(filenames)
« no previous file with comments | « ppapi/generators/idl_c_proto.py ('k') | ppapi/generators/idl_node.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698