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

Unified Diff: tools/dom/scripts/databasebuilder.py

Issue 609403004: Removed old IDL parser and peg parser code. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: More code cleanup Created 6 years, 3 months 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 | « tools/dom/scripts/database.py ('k') | tools/dom/scripts/fremontcutbuilder.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/dom/scripts/databasebuilder.py
diff --git a/tools/dom/scripts/databasebuilder.py b/tools/dom/scripts/databasebuilder.py
index d0fe7b66d1e3e3b698b3c5f0ad790adb8dfc6914..ad126224b1d8cd86108342f470fe21d947507fa0 100755
--- a/tools/dom/scripts/databasebuilder.py
+++ b/tools/dom/scripts/databasebuilder.py
@@ -5,7 +5,6 @@
import copy
import database
-import idlparser
import logging
import monitored
import multiprocessing
@@ -40,7 +39,6 @@ class DatabaseBuilderOptions(object):
"""Used in specifying options when importing new interfaces"""
def __init__(self,
- idl_syntax=idlparser.WEBIDL_SYNTAX,
idl_defines=[],
source=None, source_attributes={},
rename_operation_arguments_on_merge=False,
@@ -49,7 +47,6 @@ class DatabaseBuilderOptions(object):
logging_level=logging.WARNING):
"""Constructor.
Args:
- idl_syntax -- the syntax of the IDL file that is imported.
idl_defines -- list of definitions for the idl gcc pre-processor
source -- the origin of the IDL file, used for annotating the
database.
@@ -65,7 +62,6 @@ class DatabaseBuilderOptions(object):
"""
self.source = source
self.source_attributes = source_attributes
- self.idl_syntax = idl_syntax
self.idl_defines = idl_defines
self.rename_operation_arguments_on_merge = \
rename_operation_arguments_on_merge
@@ -74,23 +70,6 @@ class DatabaseBuilderOptions(object):
_logger.setLevel(logging_level)
-def _load_idl_file(build, file_name, import_options):
- """Loads an IDL file into memory"""
- idl_parser = idlparser.IDLParser(import_options.idl_syntax)
-
- try:
- f = open(file_name, 'r')
- content = f.read()
- f.close()
-
- idl_ast = idl_parser.parse(content)
-
- return IDLFile(idl_ast, file_name)
- except SyntaxError, e:
- raise RuntimeError('Failed to load file %s: %s: Content: %s[end]'
- % (file_name, e, content))
-
-
def format_exception(e):
exception_list = traceback.format_stack()
exception_list = exception_list[:-2]
@@ -106,7 +85,7 @@ def format_exception(e):
# Compile IDL using Blink's IDL compiler.
-def _new_compile_idl_file(build, file_name, import_options):
+def _compile_idl_file(build, file_name, import_options):
try:
idl_file_fullpath = os.path.realpath(file_name)
idl_definition = build.idl_compiler.compile_file(idl_file_fullpath)
@@ -122,7 +101,7 @@ def _new_compile_idl_file(build, file_name, import_options):
# Create the Model (IDLFile) from the new AST of the compiled IDL file.
-def _new_load_idl_file(build, file_name, import_options):
+def _load_idl_file(build, file_name, import_options):
try:
# Compute interface name from IDL filename (it's one for one in WebKit).
name = os.path.splitext(os.path.basename(file_name))[0]
@@ -523,7 +502,7 @@ class DatabaseBuilder(object):
import_options.source_attributes)
interface.parents.append(parent)
- def merge_imported_interfaces(self, blink_parser):
+ def merge_imported_interfaces(self):
"""Merges all imported interfaces and loads them into the DB."""
imported_interfaces = self._imported_interfaces
@@ -576,7 +555,7 @@ class DatabaseBuilder(object):
# Compile the IDL file with the Blink compiler and remember each AST for the
# IDL.
- def _blink_compile_idl_files(self, file_paths, import_options, parallel, is_dart_idl):
+ def _blink_compile_idl_files(self, file_paths, import_options, is_dart_idl):
if not(is_dart_idl):
start_time = time.time()
@@ -597,81 +576,37 @@ class DatabaseBuilder(object):
'implement_pairs': implement_pairs,
}
- # use --parallel for async on a pool. Look at doing it like Blink
- blink_compiler = _new_compile_idl_file
- process_ast = self._process_ast
-
- if parallel:
- # Parse the IDL files in parallel.
- pool = multiprocessing.Pool()
- try:
- for file_path in file_paths:
- pool.apply_async(blink_compiler,
- [ self.build, file_path, import_options],
- callback = lambda new_ast: process_ast(new_ast, True))
- pool.close()
- pool.join()
- except:
- pool.terminate()
- raise
- else:
- # Parse the IDL files serially.
- start_time = time.time()
+ # Parse the IDL files serially.
+ start_time = time.time()
- for file_path in file_paths:
- file_path = os.path.normpath(file_path)
- ast = blink_compiler(self.build, file_path, import_options)
- process_ast(os.path.splitext(os.path.basename(file_path))[0], ast, True)
+ for file_path in file_paths:
+ file_path = os.path.normpath(file_path)
+ ast = _compile_idl_file(self.build, file_path, import_options)
+ self._process_ast(os.path.splitext(os.path.basename(file_path))[0], ast)
- end_time = time.time()
- print 'Compiled %s IDL files in %s seconds' % (len(file_paths),
- round((end_time - start_time), 2))
+ end_time = time.time()
+ print 'Compiled %s IDL files in %s seconds' % (len(file_paths),
+ round((end_time - start_time), 2))
- def _process_ast(self, filename, ast, blink_parser = False):
- if blink_parser:
- new_asts[filename] = ast
- else:
- for name in ast.interfaces:
- # Index by filename some files are partial on another interface (e.g.,
- # DocumentFontFaceSet.idl).
- new_asts[filename] = ast.interfaces
-
- def import_idl_files(self, file_paths, import_options, parallel, blink_parser, is_dart_idl):
- if blink_parser:
- self._blink_compile_idl_files(file_paths, import_options, parallel, is_dart_idl)
-
- # use --parallel for async on a pool. Look at doing it like Blink
- idl_loader = _new_load_idl_file if blink_parser else _load_idl_file
-
- if parallel:
- # Parse the IDL files in parallel.
- pool = multiprocessing.Pool()
- try:
- for file_path in file_paths:
- pool.apply_async(idl_loader,
- [ self.build, file_path, import_options],
- callback = lambda idl_file:
- self._process_idl_file(idl_file, import_options))
- pool.close()
- pool.join()
- except:
- pool.terminate()
- raise
- else:
- start_time = time.time()
+ def _process_ast(self, filename, ast):
+ new_asts[filename] = ast
- # Parse the IDL files in serial.
- for file_path in file_paths:
- file_path = os.path.normpath(file_path)
- idl_file = idl_loader(self.build, file_path, import_options)
- _logger.info('Processing %s' % os.path.splitext(os.path.basename(file_path))[0])
- self._process_idl_file(idl_file, import_options, is_dart_idl)
+ def import_idl_files(self, file_paths, import_options, is_dart_idl):
+ self._blink_compile_idl_files(file_paths, import_options, is_dart_idl)
- end_time = time.time()
+ start_time = time.time()
+
+ # Parse the IDL files in serial.
+ for file_path in file_paths:
+ file_path = os.path.normpath(file_path)
+ idl_file = _load_idl_file(self.build, file_path, import_options)
+ _logger.info('Processing %s' % os.path.splitext(os.path.basename(file_path))[0])
+ self._process_idl_file(idl_file, import_options, is_dart_idl)
+
+ end_time = time.time()
- print 'Total %s files %sprocessed in databasebuilder in %s seconds' % \
- (len(file_paths), '' if blink_parser else 'compiled/', \
- round((end_time - start_time), 2))
+ print 'Total %s files %sprocessed in databasebuilder in %s seconds' % \
+ (len(file_paths), '', round((end_time - start_time), 2))
def _process_idl_file(self, idl_file, import_options, dart_idl = False):
# TODO(terry): strip_ext_attributes on an idl_file does nothing.
« no previous file with comments | « tools/dom/scripts/database.py ('k') | tools/dom/scripts/fremontcutbuilder.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698