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

Side by Side Diff: lib/html/scripts/systemhtml.py

Issue 10957066: Reapply 12799. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « lib/html/scripts/systemdart2js.py ('k') | lib/html/scripts/systemnative.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 10
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 'webkitSpeechChange': 'speechChange', 211 'webkitSpeechChange': 'speechChange',
212 'webkitsourceclose': 'sourceClose', 212 'webkitsourceclose': 'sourceClose',
213 'webkitsourceended': 'sourceEnded', 213 'webkitsourceended': 'sourceEnded',
214 'webkitsourceopen': 'sourceOpen', 214 'webkitsourceopen': 'sourceOpen',
215 'webkitTransitionEnd': 'transitionEnd', 215 'webkitTransitionEnd': 'transitionEnd',
216 'write': 'write', 216 'write': 'write',
217 'writeend': 'writeEnd', 217 'writeend': 'writeEnd',
218 'writestart': 'writeStart' 218 'writestart': 'writeStart'
219 } 219 }
220 220
221
222
223 # Information for generating element constructors. 221 # Information for generating element constructors.
224 # 222 #
225 # TODO(sra): maybe remove all the argument complexity and use cascades. 223 # TODO(sra): maybe remove all the argument complexity and use cascades.
226 # 224 #
227 # var c = new CanvasElement(width: 100, height: 70); 225 # var c = new CanvasElement(width: 100, height: 70);
228 # var c = new CanvasElement()..width = 100..height = 70; 226 # var c = new CanvasElement()..width = 100..height = 70;
229 # 227 #
230 class ElementConstructorInfo(object): 228 class ElementConstructorInfo(object):
231 def __init__(self, name=None, tag=None, 229 def __init__(self, name=None, tag=None,
232 params=[], opt_params=[], 230 params=[], opt_params=[],
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 470
473 def __init__(self, system, interface): 471 def __init__(self, system, interface):
474 super(HtmlDartInterfaceGenerator, self).__init__( 472 super(HtmlDartInterfaceGenerator, self).__init__(
475 system._database, interface) 473 system._database, interface)
476 self._system = system 474 self._system = system
477 self._shared = system._shared 475 self._shared = system._shared
478 self._html_interface_name = system._renamer.RenameInterface(self._interface) 476 self._html_interface_name = system._renamer.RenameInterface(self._interface)
479 self._backend = system._backend.ImplementationGenerator(self._interface) 477 self._backend = system._backend.ImplementationGenerator(self._interface)
480 478
481 def StartInterface(self): 479 def StartInterface(self):
482 if not self._interface.id in _merged_html_interfaces: 480 if (not self._interface.id in _merged_html_interfaces and
481 # Don't re-generate types that have been converted to native dart types.
482 self._html_interface_name not in nativified_classes):
483 path = '%s.dart' % self._html_interface_name 483 path = '%s.dart' % self._html_interface_name
484 self._interface_emitter = self._system._CreateEmitter(path) 484 self._interface_emitter = self._system._CreateEmitter(path)
485 else: 485 else:
486 self._interface_emitter = emitter.Emitter() 486 self._interface_emitter = emitter.Emitter()
487 487
488 template_file = 'interface_%s.darttemplate' % self._html_interface_name 488 template_file = 'interface_%s.darttemplate' % self._html_interface_name
489 interface_template = (self._system._templates.TryLoad(template_file) or 489 interface_template = (self._system._templates.TryLoad(template_file) or
490 self._system._templates.Load('interface.darttemplate') ) 490 self._system._templates.Load('interface.darttemplate') )
491 491
492 typename = self._html_interface_name 492 typename = self._html_interface_name
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 self._top_level_emitter) = self._interface_emitter.Emit( 556 self._top_level_emitter) = self._interface_emitter.Emit(
557 interface_template + '$!TOP_LEVEL', 557 interface_template + '$!TOP_LEVEL',
558 ID=typename, 558 ID=typename,
559 EXTENDS=implements_str) 559 EXTENDS=implements_str)
560 560
561 self._type_comment_emitter.Emit("/// @domName $DOMNAME", 561 self._type_comment_emitter.Emit("/// @domName $DOMNAME",
562 DOMNAME=self._interface.doc_js_name) 562 DOMNAME=self._interface.doc_js_name)
563 563
564 if self._backend.HasImplementation(): 564 if self._backend.HasImplementation():
565 if not self._interface.id in _merged_html_interfaces: 565 if not self._interface.id in _merged_html_interfaces:
566 filename = '%sImpl.dart' % self._html_interface_name 566 name = self._html_interface_name
567 if self._html_interface_name in nativified_classes:
568 name = nativified_classes[self._html_interface_name]
569 filename = '%sImpl.dart' % name
567 else: 570 else:
568 filename = '%sImpl_Merged.dart' % self._html_interface_name 571 filename = '%sImpl_Merged.dart' % self._html_interface_name
569 self._implementation_emitter = self._system._CreateEmitter(filename) 572 self._implementation_emitter = self._system._CreateEmitter(filename)
570 else: 573 else:
571 self._implementation_emitter = emitter.Emitter() 574 self._implementation_emitter = emitter.Emitter()
572 self._backend.SetImplementationEmitter(self._implementation_emitter) 575 self._backend.SetImplementationEmitter(self._implementation_emitter)
573 self._implementation_members_emitter = self._backend.StartInterface() 576 self._implementation_members_emitter = self._backend.StartInterface()
574 577
575 for constructor_info in constructors: 578 for constructor_info in constructors:
576 constructor_info.GenerateFactoryInvocation( 579 constructor_info.GenerateFactoryInvocation(
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 def ImplementationClassName(self): 779 def ImplementationClassName(self):
777 return self._ImplClassName(self._html_interface_name) 780 return self._ImplClassName(self._html_interface_name)
778 781
779 def SetImplementationEmitter(self, implementation_emitter): 782 def SetImplementationEmitter(self, implementation_emitter):
780 self._dart_code = implementation_emitter 783 self._dart_code = implementation_emitter
781 784
782 def ImplementsMergedMembers(self): 785 def ImplementsMergedMembers(self):
783 return True 786 return True
784 787
785 def _ImplClassName(self, type_name): 788 def _ImplClassName(self, type_name):
786 return '_%sImpl' % type_name 789 name = type_name
790 if type_name in nativified_classes:
791 name = nativified_classes[type_name]
792 return '_%sImpl' % name
787 793
788 def StartInterface(self): 794 def StartInterface(self):
789 interface = self._interface 795 interface = self._interface
790 interface_name = interface.id 796 interface_name = interface.id
791 797
792 self._class_name = self._ImplClassName(self._html_interface_name) 798 self._class_name = self._ImplClassName(self._html_interface_name)
793 799
794 base = None 800 base = None
795 if interface.parents: 801 if interface.parents:
796 supertype = interface.parents[0].type.id 802 supertype = interface.parents[0].type.id
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
1230 def GenerateLibraries(self, dart_files): 1236 def GenerateLibraries(self, dart_files):
1231 auxiliary_dir = os.path.relpath(self._auxiliary_dir, self._output_dir) 1237 auxiliary_dir = os.path.relpath(self._auxiliary_dir, self._output_dir)
1232 self._GenerateLibFile( 1238 self._GenerateLibFile(
1233 'html_dart2js.darttemplate', 1239 'html_dart2js.darttemplate',
1234 os.path.join(self._output_dir, 'html_dart2js.dart'), 1240 os.path.join(self._output_dir, 'html_dart2js.dart'),
1235 dart_files, 1241 dart_files,
1236 AUXILIARY_DIR=systembase.MassagePath(auxiliary_dir)) 1242 AUXILIARY_DIR=systembase.MassagePath(auxiliary_dir))
1237 1243
1238 def Finish(self): 1244 def Finish(self):
1239 pass 1245 pass
OLDNEW
« no previous file with comments | « lib/html/scripts/systemdart2js.py ('k') | lib/html/scripts/systemnative.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698