OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
3 # for details. All rights reserved. Use of this source code is governed by a | 3 # for details. All rights reserved. Use of this source code is governed by a |
4 # BSD-style license that can be found in the LICENSE file. | 4 # BSD-style license that can be found in the LICENSE file. |
5 | 5 |
6 """This module provides shared functionality for the system to generate | 6 """This module provides shared functionality for the system to generate |
7 Dart:html APIs from the IDL database.""" | 7 Dart:html APIs from the IDL database.""" |
8 | 8 |
9 import emitter | 9 import emitter |
10 import os | 10 import os |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 self._implementation_members_emitter = implementation_emitter.Emit( | 402 self._implementation_members_emitter = implementation_emitter.Emit( |
403 self._backend.ImplementationTemplate(), | 403 self._backend.ImplementationTemplate(), |
404 LIBRARYNAME=self._library_name, | 404 LIBRARYNAME=self._library_name, |
405 ANNOTATIONS=annotations_str, | 405 ANNOTATIONS=annotations_str, |
406 CLASSNAME=self._interface_type_info.implementation_name(), | 406 CLASSNAME=self._interface_type_info.implementation_name(), |
407 EXTENDS=' extends %s' % base_class if base_class else '', | 407 EXTENDS=' extends %s' % base_class if base_class else '', |
408 IMPLEMENTS=implements_str, | 408 IMPLEMENTS=implements_str, |
409 DOMNAME=self._interface.doc_js_name, | 409 DOMNAME=self._interface.doc_js_name, |
410 NATIVESPEC=self._backend.NativeSpec()) | 410 NATIVESPEC=self._backend.NativeSpec()) |
411 self._backend.StartInterface(self._implementation_members_emitter) | 411 self._backend.StartInterface(self._implementation_members_emitter) |
| 412 |
412 self._backend.EmitHelpers(base_class) | 413 self._backend.EmitHelpers(base_class) |
| 414 self._event_generator.EmitStreamProviders( |
| 415 self._interface, |
| 416 self._interface.doc_js_name, |
| 417 self._backend.CustomJSMembers(), |
| 418 self._implementation_members_emitter) |
413 self._backend.AddConstructors( | 419 self._backend.AddConstructors( |
414 constructors, factory_provider, factory_constructor_name) | 420 constructors, factory_provider, factory_constructor_name) |
415 | 421 |
416 self._backend.EmitSupportCheck() | 422 self._backend.EmitSupportCheck() |
417 | 423 |
418 events_class_name = self._event_generator.ProcessInterface( | 424 events_class_name = self._event_generator.ProcessInterface( |
419 self._interface, interface_name, | 425 self._interface, interface_name, |
420 self._backend.CustomJSMembers(), | 426 self._backend.CustomJSMembers(), |
421 implementation_emitter) | 427 implementation_emitter) |
422 if events_class_name: | 428 if events_class_name: |
423 self._backend.EmitEventGetter(events_class_name) | 429 self._backend.EmitEventGetter(events_class_name) |
424 | 430 |
425 merged_interface = self._interface_type_info.merged_interface() | 431 merged_interface = self._interface_type_info.merged_interface() |
426 if merged_interface: | 432 if merged_interface: |
427 self._backend.AddMembers(self._database.GetInterface(merged_interface), | 433 self._backend.AddMembers(self._database.GetInterface(merged_interface), |
428 not self._backend.ImplementsMergedMembers()) | 434 not self._backend.ImplementsMergedMembers()) |
429 | 435 |
430 self._backend.AddMembers(self._interface) | 436 self._backend.AddMembers(self._interface) |
431 self._backend.AddSecondaryMembers(self._interface) | 437 self._backend.AddSecondaryMembers(self._interface) |
| 438 self._event_generator.EmitStreamGetters( |
| 439 self._interface, |
| 440 self._interface.doc_js_name, |
| 441 self._backend.CustomJSMembers(), |
| 442 self._implementation_members_emitter) |
432 self._backend.FinishInterface() | 443 self._backend.FinishInterface() |
433 | 444 |
434 def _ImplementationEmitter(self): | 445 def _ImplementationEmitter(self): |
435 basename = self._interface_type_info.implementation_name() | 446 basename = self._interface_type_info.implementation_name() |
436 if (self._interface_type_info.merged_into() and | 447 if (self._interface_type_info.merged_into() and |
437 self._backend.ImplementsMergedMembers()): | 448 self._backend.ImplementsMergedMembers()): |
438 # Merged members are implemented in target interface implementation. | 449 # Merged members are implemented in target interface implementation. |
439 return emitter.Emitter() | 450 return emitter.Emitter() |
440 return self._library_emitter.FileEmitter(basename, self._library_name) | 451 return self._library_emitter.FileEmitter(basename, self._library_name) |
441 | 452 |
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1039 for library_name in libraries: | 1050 for library_name in libraries: |
1040 self._libraries[library_name] = DartLibrary( | 1051 self._libraries[library_name] = DartLibrary( |
1041 library_name, template_loader, library_type, output_dir) | 1052 library_name, template_loader, library_type, output_dir) |
1042 | 1053 |
1043 def AddFile(self, basename, library_name, path): | 1054 def AddFile(self, basename, library_name, path): |
1044 self._libraries[library_name].AddFile(path) | 1055 self._libraries[library_name].AddFile(path) |
1045 | 1056 |
1046 def Emit(self, emitter, auxiliary_dir): | 1057 def Emit(self, emitter, auxiliary_dir): |
1047 for lib in self._libraries.values(): | 1058 for lib in self._libraries.values(): |
1048 lib.Emit(emitter, auxiliary_dir) | 1059 lib.Emit(emitter, auxiliary_dir) |
OLD | NEW |