Chromium Code Reviews| 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 systems to generate | 6 """This module provides shared functionality for systems to generate |
| 7 Dart APIs from the IDL database.""" | 7 Dart APIs from the IDL database.""" |
| 8 | 8 |
| 9 import re | 9 import re |
| 10 | 10 |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 227 return '*' + javascript_binding_name | 227 return '*' + javascript_binding_name |
| 228 | 228 |
| 229 | 229 |
| 230 def MatchSourceFilter(filter, thing): | 230 def MatchSourceFilter(filter, thing): |
| 231 if not filter: | 231 if not filter: |
| 232 return True | 232 return True |
| 233 else: | 233 else: |
| 234 return any(token in thing.annotations for token in filter) | 234 return any(token in thing.annotations for token in filter) |
| 235 | 235 |
| 236 def DartType(idl_type_name): | 236 def DartType(idl_type_name): |
| 237 match = re.match(r'sequence<(\w*)>$', idl_type_name) | |
| 238 if match: | |
| 239 return 'List<%s>' % GetIDLTypeInfo(match.group(1)).dart_type() | |
| 240 return GetIDLTypeInfo(idl_type_name).dart_type() | 237 return GetIDLTypeInfo(idl_type_name).dart_type() |
| 241 | 238 |
| 242 # Given a list of overloaded arguments, render a dart argument. | 239 # Given a list of overloaded arguments, render a dart argument. |
| 243 def _DartArg(args, interface): | 240 def _DartArg(args, interface): |
| 244 # Given a list of overloaded arguments, choose a suitable name. | 241 # Given a list of overloaded arguments, choose a suitable name. |
| 245 def OverloadedName(args): | 242 def OverloadedName(args): |
| 246 return '_OR_'.join(sorted(set(arg.id for arg in args))) | 243 return '_OR_'.join(sorted(set(arg.id for arg in args))) |
| 247 | 244 |
| 248 # Given a list of overloaded arguments, choose a suitable type. | 245 # Given a list of overloaded arguments, choose a suitable type. |
| 249 def OverloadedType(args): | 246 def OverloadedType(args): |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 480 self._conversion_template = conversion_template | 477 self._conversion_template = conversion_template |
| 481 self._custom_to_dart = custom_to_dart | 478 self._custom_to_dart = custom_to_dart |
| 482 self._conversion_includes = conversion_includes | 479 self._conversion_includes = conversion_includes |
| 483 | 480 |
| 484 def idl_type(self): | 481 def idl_type(self): |
| 485 return self._idl_type | 482 return self._idl_type |
| 486 | 483 |
| 487 def dart_type(self): | 484 def dart_type(self): |
| 488 if self._dart_type: | 485 if self._dart_type: |
| 489 return self._dart_type | 486 return self._dart_type |
| 487 | |
| 488 match = re.match(r'sequence<(\w*)>$', self._idl_type) | |
| 489 if match: | |
| 490 return 'List<%s>' % DartType(match.group(1)) | |
|
podivilov
2012/03/23 15:12:07
nit: should be GetIDLTypeInfo(match.group(1)).dart
Anton Muhin
2012/03/23 17:27:31
DartType is exactly this now, no?
| |
| 491 | |
| 490 return self._idl_type | 492 return self._idl_type |
| 491 | 493 |
| 492 def native_type(self): | 494 def native_type(self): |
| 493 if self._native_type: | 495 if self._native_type: |
| 494 return self._native_type | 496 return self._native_type |
| 495 return self._idl_type | 497 return self._idl_type |
| 496 | 498 |
| 497 def parameter_adapter_info(self): | 499 def parameter_adapter_info(self): |
| 498 native_type = self.native_type() | 500 native_type = self.native_type() |
| 499 if self._ref_counted: | 501 if self._ref_counted: |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 533 if self._idl_type.startswith('SVGPathSeg'): | 535 if self._idl_type.startswith('SVGPathSeg'): |
| 534 include = self._idl_type.replace('Abs', '').replace('Rel', '') | 536 include = self._idl_type.replace('Abs', '').replace('Rel', '') |
| 535 else: | 537 else: |
| 536 include = self._idl_type | 538 include = self._idl_type |
| 537 return ['"%s.h"' % include] + _svg_supplemental_includes | 539 return ['"%s.h"' % include] + _svg_supplemental_includes |
| 538 | 540 |
| 539 def receiver(self): | 541 def receiver(self): |
| 540 return 'receiver->' | 542 return 'receiver->' |
| 541 | 543 |
| 542 def conversion_includes(self): | 544 def conversion_includes(self): |
| 543 return ['"Dart%s.h"' % include for include in [self.dart_type()] + self._con version_includes] | 545 def NeededDartType(type_name): |
| 546 match = re.match(r'List<(\w*)>$', type_name) | |
| 547 if match: | |
| 548 return NeededDartType(match.group(1)) | |
| 549 return type_name | |
| 550 | |
| 551 return ['"Dart%s.h"' % include for include in [NeededDartType(self.dart_type ())] + self._conversion_includes] | |
|
podivilov
2012/03/23 15:12:07
Please parse the type in constructor, so you don't
Anton Muhin
2012/03/23 17:27:31
Should I do it right now? If we're looking for op
| |
| 544 | 552 |
| 545 def conversion_cast(self, expression): | 553 def conversion_cast(self, expression): |
| 546 if self._conversion_template: | 554 if self._conversion_template: |
| 547 return self._conversion_template % expression | 555 return self._conversion_template % expression |
| 548 return expression | 556 return expression |
| 549 | 557 |
| 550 def custom_to_dart(self): | 558 def custom_to_dart(self): |
| 551 return self._custom_to_dart | 559 return self._custom_to_dart |
| 552 | 560 |
| 553 class PrimitiveIDLTypeInfo(IDLTypeInfo): | 561 class PrimitiveIDLTypeInfo(IDLTypeInfo): |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 676 '"SVGAnimatedPropertyTearOff.h"', | 684 '"SVGAnimatedPropertyTearOff.h"', |
| 677 '"SVGAnimatedListPropertyTearOff.h"', | 685 '"SVGAnimatedListPropertyTearOff.h"', |
| 678 '"SVGStaticListPropertyTearOff.h"', | 686 '"SVGStaticListPropertyTearOff.h"', |
| 679 '"SVGAnimatedListPropertyTearOff.h"', | 687 '"SVGAnimatedListPropertyTearOff.h"', |
| 680 '"SVGTransformListPropertyTearOff.h"', | 688 '"SVGTransformListPropertyTearOff.h"', |
| 681 '"SVGPathSegListPropertyTearOff.h"', | 689 '"SVGPathSegListPropertyTearOff.h"', |
| 682 ] | 690 ] |
| 683 | 691 |
| 684 def GetIDLTypeInfo(idl_type_name): | 692 def GetIDLTypeInfo(idl_type_name): |
| 685 return _idl_type_registry.get(idl_type_name, IDLTypeInfo(idl_type_name)) | 693 return _idl_type_registry.get(idl_type_name, IDLTypeInfo(idl_type_name)) |
| OLD | NEW |