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

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

Issue 10941047: Don't generate FooList if it behaves like List<Foo> exactly. (Closed) Base URL: http://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 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 _html_interface_renames = { 6 html_interface_renames = {
7 'DOMFormData': 'FormData', 7 'DOMFormData': 'FormData',
8 'DOMWindow': 'Window', 8 'DOMWindow': 'Window',
9 'WebKitAnimation': 'Animation', 9 'WebKitAnimation': 'Animation',
10 'WebKitAnimationEvent': 'AnimationEvent', 10 'WebKitAnimationEvent': 'AnimationEvent',
11 'WebKitAnimationList': 'AnimationList', 11 'WebKitAnimationList': 'AnimationList',
12 'WebKitBlobBuilder': 'BlobBuilder', 12 'WebKitBlobBuilder': 'BlobBuilder',
13 'WebKitCSSKeyframeRule': 'CSSKeyframeRule', 13 'WebKitCSSKeyframeRule': 'CSSKeyframeRule',
14 'WebKitCSSKeyframesRule': 'CSSKeyframesRule', 14 'WebKitCSSKeyframesRule': 'CSSKeyframesRule',
15 'WebKitCSSMatrix': 'CSSMatrix', 15 'WebKitCSSMatrix': 'CSSMatrix',
16 'WebKitCSSTransformValue': 'CSSTransformValue', 16 'WebKitCSSTransformValue': 'CSSTransformValue',
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 272
273 class HtmlRenamer(object): 273 class HtmlRenamer(object):
274 def __init__(self, database): 274 def __init__(self, database):
275 self._database = database 275 self._database = database
276 276
277 def RenameInterface(self, interface): 277 def RenameInterface(self, interface):
278 if interface.id.startswith('HTML'): 278 if interface.id.startswith('HTML'):
279 if any(interface.id in ['Element', 'Document'] 279 if any(interface.id in ['Element', 'Document']
280 for interface in self._database.Hierarchy(interface)): 280 for interface in self._database.Hierarchy(interface)):
281 return interface.id[len('HTML'):] 281 return interface.id[len('HTML'):]
282 elif interface.id in _html_interface_renames: 282 elif interface.id in html_interface_renames:
283 return _html_interface_renames[interface.id] 283 return html_interface_renames[interface.id]
284 return interface.id 284 return interface.id
285 285
286 def RenameMember(self, interface_name, member, member_prefix=''): 286 def RenameMember(self, interface_name, member, member_prefix=''):
287 """ 287 """
288 Returns the name of the member in the HTML library or None if the member is 288 Returns the name of the member in the HTML library or None if the member is
289 suppressed in the HTML library 289 suppressed in the HTML library
290 """ 290 """
291 interface = self._database.GetInterface(interface_name) 291 interface = self._database.GetInterface(interface_name)
292 292
293 if self._FindMatch(interface, member, member_prefix, _removed_html_members): 293 if self._FindMatch(interface, member, member_prefix, _removed_html_members):
294 return None 294 return None
295 295
296 name = self._FindMatch(interface, member, member_prefix, 296 name = self._FindMatch(interface, member, member_prefix,
297 _renamed_html_members) 297 _renamed_html_members)
298 target_name = _renamed_html_members[name] if name else member 298 target_name = _renamed_html_members[name] if name else member
299 if self._FindMatch(interface, member, member_prefix, _private_html_members): 299 if self._FindMatch(interface, member, member_prefix, _private_html_members):
300 if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName 300 if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName
301 target_name = '$dom_' + target_name 301 target_name = '$dom_' + target_name
302 return target_name 302 return target_name
303 303
304 def _FindMatch(self, interface, member, member_prefix, candidates): 304 def _FindMatch(self, interface, member, member_prefix, candidates):
305 for interface in self._database.Hierarchy(interface): 305 for interface in self._database.Hierarchy(interface):
306 html_interface_name = self.RenameInterface(interface) 306 html_interface_name = self.RenameInterface(interface)
307 member_name = html_interface_name + '.' + member 307 member_name = html_interface_name + '.' + member
308 if member_name in candidates: 308 if member_name in candidates:
309 return member_name 309 return member_name
310 member_name = html_interface_name + '.' + member_prefix + member 310 member_name = html_interface_name + '.' + member_prefix + member
311 if member_name in candidates: 311 if member_name in candidates:
312 return member_name 312 return member_name
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698