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

Unified Diff: lib/html/scripts/dartdomgenerator.py

Issue 10986048: Get rid of System classes for backend generators. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 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 | « no previous file | lib/html/scripts/dartgenerator.py » ('j') | lib/html/scripts/systembase.py » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/html/scripts/dartdomgenerator.py
diff --git a/lib/html/scripts/dartdomgenerator.py b/lib/html/scripts/dartdomgenerator.py
index b2f462ccca2b38c3040d1e5fd01a1883618759fb..d217cc3293b6baa8e7f965581804283ab3c0a6eb 100755
--- a/lib/html/scripts/dartdomgenerator.py
+++ b/lib/html/scripts/dartdomgenerator.py
@@ -19,9 +19,9 @@ from htmlrenamer import HtmlRenamer
from systembase import GeneratorOptions
from systemdart2js import Dart2JSSystem
from systemhtml import DartLibraryEmitter, HtmlInterfacesSystem,\
- HtmlDart2JSSystem
+ Dart2JSGeneratorBackend
from systeminterface import InterfacesSystem
-from systemnative import CPPLibraryEmitter, NativeImplementationSystem
+from systemnative import CPPLibraryEmitter, DartiumGeneratorBackend
from templateloader import TemplateLoader
_logger = logging.getLogger('dartdomgenerator')
@@ -70,14 +70,15 @@ def Generate(database_dir, use_database_cache, dart2js_output_dir=None,
type_registry = TypeRegistry(webkit_database, renamer)
def RunGenerator(dart_library_template, dart_output_dir, dart_library_path,
Anton Muhin 2012/09/26 14:20:36 overall logic becomes rather complicated, so, sorr
- backend):
+ create_generator_backend):
Anton Muhin 2012/09/26 14:20:36 I'd rather name it generator_backend_factory.
Anton Muhin 2012/09/26 14:20:36 generator backend sounds somewhat too much, can it
podivilov 2012/09/26 15:02:04 Done.
podivilov 2012/09/26 15:02:04 Renamed to FooBackend. Backends should not extend
template_loader = TemplateLoader(
Anton Muhin 2012/09/26 14:20:36 cannot we lift template_loader creation out of thi
podivilov 2012/09/26 15:02:04 Done.
template_dir, ['html/interface', 'html/impl', 'html', ''], {})
options = GeneratorOptions(
Anton Muhin 2012/09/26 14:20:36 cannot we lift options creation out of this functi
template_loader, webkit_database, type_registry, renamer)
dart_library_emitter = DartLibraryEmitter(
emitters, dart_library_template, dart_output_dir)
- html_system = HtmlInterfacesSystem(options, dart_library_emitter, backend)
+ html_system = HtmlInterfacesSystem(
+ options, dart_library_emitter, create_generator_backend)
generator.Generate(
webkit_database, html_system, common_database, _webkit_renames)
dart_library_emitter.EmitLibrary(dart_library_path, auxiliary_dir)
@@ -88,14 +89,15 @@ def Generate(database_dir, use_database_cache, dart2js_output_dir=None,
{'DARTIUM': False, 'DART2JS': True})
backend_options = GeneratorOptions(
template_loader, webkit_database, type_registry, renamer)
- backend = HtmlDart2JSSystem(backend_options)
+ def create_generator_backend(interface):
Anton Muhin 2012/09/26 14:20:36 that might be a perfect case for lambda, esp. if y
podivilov 2012/09/26 15:02:04 Done.
+ return Dart2JSGeneratorBackend(interface, backend_options)
dart_library_template = template_loader.Load('html_dart2js.darttemplate')
dart_output_dir = os.path.join(dart2js_output_dir, 'dart')
dart_library_path = os.path.join(dart2js_output_dir, 'html_dart2js.dart')
- RunGenerator(
- dart_library_template, dart_output_dir, dart_library_path, backend)
+ RunGenerator(dart_library_template, dart_output_dir, dart_library_path,
+ create_generator_backend)
if dartium_output_dir:
template_loader = TemplateLoader(template_dir,
@@ -105,14 +107,16 @@ def Generate(database_dir, use_database_cache, dart2js_output_dir=None,
template_loader, webkit_database, type_registry, renamer)
cpp_output_dir = os.path.join(dartium_output_dir, 'cpp')
cpp_library_emitter = CPPLibraryEmitter(emitters, cpp_output_dir)
- backend = NativeImplementationSystem(backend_options, cpp_library_emitter)
+ def create_generator_backend(interface):
+ return DartiumGeneratorBackend(
+ interface, cpp_library_emitter, backend_options)
dart_library_template = template_loader.Load('html_dartium.darttemplate')
dart_output_dir = os.path.join(dartium_output_dir, 'dart')
dart_library_path = os.path.join(dartium_output_dir, 'html_dartium.dart')
- RunGenerator(
- dart_library_template, dart_output_dir, dart_library_path, backend)
+ RunGenerator(dart_library_template, dart_output_dir, dart_library_path,
+ create_generator_backend)
cpp_library_emitter.EmitDerivedSources(
template_loader.Load('cpp_derived_sources.template'),
dartium_output_dir)
« no previous file with comments | « no previous file | lib/html/scripts/dartgenerator.py » ('j') | lib/html/scripts/systembase.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698