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

Side by Side Diff: tools/dom/scripts/systemhtml.py

Issue 12045076: Second half of HTML json docs. This reads the json file and inserts the docs. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes. Created 7 years, 10 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
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 import os 10 import os
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 implements.append(parent_type_info.interface_name()) 394 implements.append(parent_type_info.interface_name())
395 395
396 secure_base_name = self._backend.SecureBaseName(interface_name) 396 secure_base_name = self._backend.SecureBaseName(interface_name)
397 if secure_base_name: 397 if secure_base_name:
398 implements.append(secure_base_name) 398 implements.append(secure_base_name)
399 399
400 implements_str = '' 400 implements_str = ''
401 if implements: 401 if implements:
402 implements_str = ' implements ' + ', '.join(set(implements)) 402 implements_str = ' implements ' + ', '.join(set(implements))
403 403
404 annotations = FormatAnnotations( 404 annotations = FormatAnnotationsAndComments(
405 FindCommonAnnotations(self._interface.doc_js_name), '') 405 GetAnnotationsAndComments(self._interface.doc_js_name,
406 library_name=self._library_name), '')
406 407
407 self._implementation_members_emitter = implementation_emitter.Emit( 408 self._implementation_members_emitter = implementation_emitter.Emit(
408 self._backend.ImplementationTemplate(), 409 self._backend.ImplementationTemplate(),
409 LIBRARYNAME=self._library_name, 410 LIBRARYNAME=self._library_name,
410 ANNOTATIONS=annotations, 411 ANNOTATIONS=annotations,
411 CLASSNAME=self._interface_type_info.implementation_name(), 412 CLASSNAME=self._interface_type_info.implementation_name(),
412 EXTENDS=' extends %s' % base_class if base_class else '', 413 EXTENDS=' extends %s' % base_class if base_class else '',
413 IMPLEMENTS=implements_str, 414 IMPLEMENTS=implements_str,
414 DOMNAME=self._interface.doc_js_name, 415 DOMNAME=self._interface.doc_js_name,
415 NATIVESPEC=self._backend.NativeSpec()) 416 NATIVESPEC=self._backend.NativeSpec())
416 self._backend.StartInterface(self._implementation_members_emitter) 417 self._backend.StartInterface(self._implementation_members_emitter)
417 418
418 self._backend.EmitHelpers(base_class) 419 self._backend.EmitHelpers(base_class)
419 self._event_generator.EmitStreamProviders( 420 self._event_generator.EmitStreamProviders(
420 self._interface, 421 self._interface,
421 self._backend.CustomJSMembers(), 422 self._backend.CustomJSMembers(),
422 self._implementation_members_emitter) 423 self._implementation_members_emitter,
424 self._library_name)
423 self._backend.AddConstructors( 425 self._backend.AddConstructors(
424 constructors, factory_provider, factory_constructor_name) 426 constructors, factory_provider, factory_constructor_name)
425 427
426 self._backend.EmitSupportCheck() 428 self._backend.EmitSupportCheck()
427 429
428 events_class_name = self._event_generator.ProcessInterface( 430 events_class_name = self._event_generator.ProcessInterface(
429 self._interface, interface_name, 431 self._interface, interface_name,
430 self._backend.CustomJSMembers(), 432 self._backend.CustomJSMembers(),
431 implementation_emitter) 433 implementation_emitter)
432 if events_class_name: 434 if events_class_name:
433 self._backend.EmitEventGetter(events_class_name) 435 self._backend.EmitEventGetter(events_class_name)
434 436
435 merged_interface = self._interface_type_info.merged_interface() 437 merged_interface = self._interface_type_info.merged_interface()
436 if merged_interface: 438 if merged_interface:
437 self._backend.AddMembers(self._database.GetInterface(merged_interface), 439 self._backend.AddMembers(self._database.GetInterface(merged_interface),
438 not self._backend.ImplementsMergedMembers()) 440 not self._backend.ImplementsMergedMembers())
439 441
440 self._backend.AddMembers(self._interface) 442 self._backend.AddMembers(self._interface)
441 self._backend.AddSecondaryMembers(self._interface) 443 self._backend.AddSecondaryMembers(self._interface)
442 self._event_generator.EmitStreamGetters( 444 self._event_generator.EmitStreamGetters(
443 self._interface, 445 self._interface,
444 [], 446 [],
445 self._implementation_members_emitter) 447 self._implementation_members_emitter,
448 self._library_name)
446 self._backend.FinishInterface() 449 self._backend.FinishInterface()
447 450
448 def _ImplementationEmitter(self): 451 def _ImplementationEmitter(self):
449 basename = self._interface_type_info.implementation_name() 452 basename = self._interface_type_info.implementation_name()
450 if (self._interface_type_info.merged_into() and 453 if (self._interface_type_info.merged_into() and
451 self._backend.ImplementsMergedMembers()): 454 self._backend.ImplementsMergedMembers()):
452 # Merged members are implemented in target interface implementation. 455 # Merged members are implemented in target interface implementation.
453 return emitter.Emitter() 456 return emitter.Emitter()
454 return self._library_emitter.FileEmitter(basename, self._library_name) 457 return self._library_emitter.FileEmitter(basename, self._library_name)
455 458
(...skipping 10 matching lines...) Expand all
466 469
467 def __init__(self, interface, options): 470 def __init__(self, interface, options):
468 super(Dart2JSBackend, self).__init__(interface, options) 471 super(Dart2JSBackend, self).__init__(interface, options)
469 472
470 self._database = options.database 473 self._database = options.database
471 self._template_loader = options.templates 474 self._template_loader = options.templates
472 self._type_registry = options.type_registry 475 self._type_registry = options.type_registry
473 self._renamer = options.renamer 476 self._renamer = options.renamer
474 self._interface_type_info = self._type_registry.TypeInfo(self._interface.id) 477 self._interface_type_info = self._type_registry.TypeInfo(self._interface.id)
475 self._current_secondary_parent = None 478 self._current_secondary_parent = None
479 self._library_name = self._renamer.GetLibraryName(self._interface)
476 480
477 def ImplementsMergedMembers(self): 481 def ImplementsMergedMembers(self):
478 return True 482 return True
479 483
480 def GenerateCallback(self, info): 484 def GenerateCallback(self, info):
481 pass 485 pass
482 486
483 def RootClassName(self): 487 def RootClassName(self):
484 return None 488 return None
485 489
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 def _HasCustomImplementation(self, member_name): 909 def _HasCustomImplementation(self, member_name):
906 member_name = '%s.%s' % (self._interface.doc_js_name, member_name) 910 member_name = '%s.%s' % (self._interface.doc_js_name, member_name)
907 return member_name in _js_custom_members 911 return member_name in _js_custom_members
908 912
909 def _RenamingAnnotation(self, idl_name, member_name): 913 def _RenamingAnnotation(self, idl_name, member_name):
910 if member_name != idl_name: 914 if member_name != idl_name:
911 return "@JSName('%s')\n " % idl_name 915 return "@JSName('%s')\n " % idl_name
912 return '' 916 return ''
913 917
914 def _Annotations(self, idl_type, idl_member_name, indent=' '): 918 def _Annotations(self, idl_type, idl_member_name, indent=' '):
915 anns = FindDart2JSAnnotations(idl_type, self._interface.id, 919 anns = FindDart2JSAnnotationsAndComments(idl_type, self._interface.id,
916 idl_member_name) 920 idl_member_name, self._library_name)
917 921
918 if not AnyConversionAnnotations(idl_type, self._interface.id, 922 if not AnyConversionAnnotations(idl_type, self._interface.id,
919 idl_member_name): 923 idl_member_name):
920 return_type = self.SecureOutputType(idl_type) 924 return_type = self.SecureOutputType(idl_type)
921 native_type = self._NarrowToImplementationType(idl_type) 925 native_type = self._NarrowToImplementationType(idl_type)
922 if native_type != return_type: 926 if native_type != return_type:
923 anns = anns + [ 927 anns = anns + [
924 "@Returns('%s')" % native_type, 928 "@Returns('%s')" % native_type,
925 "@Creates('%s')" % native_type, 929 "@Creates('%s')" % native_type,
926 ] 930 ]
927 return FormatAnnotations(anns, indent); 931 return FormatAnnotationsAndComments(anns, indent);
928 932
929 def CustomJSMembers(self): 933 def CustomJSMembers(self):
930 return _js_custom_members 934 return _js_custom_members
931 935
932 def _NarrowToImplementationType(self, type_name): 936 def _NarrowToImplementationType(self, type_name):
933 return self._type_registry.TypeInfo(type_name).narrow_dart_type() 937 return self._type_registry.TypeInfo(type_name).narrow_dart_type()
934 938
935 def _NarrowInputType(self, type_name): 939 def _NarrowInputType(self, type_name):
936 return self._NarrowToImplementationType(type_name) 940 return self._NarrowToImplementationType(type_name)
937 941
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 for library_name in libraries: 1038 for library_name in libraries:
1035 self._libraries[library_name] = DartLibrary( 1039 self._libraries[library_name] = DartLibrary(
1036 library_name, template_loader, library_type, output_dir) 1040 library_name, template_loader, library_type, output_dir)
1037 1041
1038 def AddFile(self, basename, library_name, path): 1042 def AddFile(self, basename, library_name, path):
1039 self._libraries[library_name].AddFile(path) 1043 self._libraries[library_name].AddFile(path)
1040 1044
1041 def Emit(self, emitter, auxiliary_dir): 1045 def Emit(self, emitter, auxiliary_dir):
1042 for lib in self._libraries.values(): 1046 for lib in self._libraries.values():
1043 lib.Emit(emitter, auxiliary_dir) 1047 lib.Emit(emitter, auxiliary_dir)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698