| 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 generates Dart APIs from the IDL database.""" | 6 """This module generates Dart APIs from the IDL database.""" |
| 7 | 7 |
| 8 import emitter | 8 import emitter |
| 9 import idlnode | 9 import idlnode |
| 10 import logging | 10 import logging |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 self._dart_templates_re = re.compile(r'[\w.:]+<([\w \.<>:]+)>') | 31 self._dart_templates_re = re.compile(r'[\w.:]+<([\w \.<>:]+)>') |
| 32 _logger.setLevel(logging_level) | 32 _logger.setLevel(logging_level) |
| 33 | 33 |
| 34 def _StripModules(self, type_name): | 34 def _StripModules(self, type_name): |
| 35 return type_name.split('::')[-1] | 35 return type_name.split('::')[-1] |
| 36 | 36 |
| 37 def _IsCompoundType(self, database, type_name): | 37 def _IsCompoundType(self, database, type_name): |
| 38 if IsRegisteredType(type_name): | 38 if IsRegisteredType(type_name): |
| 39 return True | 39 return True |
| 40 | 40 |
| 41 # References a typedef - normally a union type. |
| 42 if database.HasTypeDef(type_name): |
| 43 return True |
| 44 |
| 41 if type_name.endswith('?'): | 45 if type_name.endswith('?'): |
| 42 return self._IsCompoundType(database, type_name[:-len('?')]) | 46 return self._IsCompoundType(database, type_name[:-len('?')]) |
| 43 | 47 |
| 44 if type_name.endswith('[]'): | 48 if type_name.endswith('[]'): |
| 45 return self._IsCompoundType(database, type_name[:-len('[]')]) | 49 return self._IsCompoundType(database, type_name[:-len('[]')]) |
| 46 | 50 |
| 47 stripped_type_name = self._StripModules(type_name) | 51 stripped_type_name = self._StripModules(type_name) |
| 48 if (database.HasInterface(stripped_type_name) or | 52 if (database.HasInterface(stripped_type_name) or |
| 49 database.HasDictionary(stripped_type_name)): | 53 database.HasDictionary(stripped_type_name)): |
| 50 return True | 54 return True |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 call_with = operation.ext_attrs.get('CallWith', []) | 237 call_with = operation.ext_attrs.get('CallWith', []) |
| 234 if not(isinstance(call_with, list)): | 238 if not(isinstance(call_with, list)): |
| 235 call_with = [call_with] | 239 call_with = [call_with] |
| 236 constructor_with = operation.ext_attrs.get('ConstructorCallWith', []) | 240 constructor_with = operation.ext_attrs.get('ConstructorCallWith', []) |
| 237 if not(isinstance(constructor_with, list)): | 241 if not(isinstance(constructor_with, list)): |
| 238 constructor_with = [constructor_with] | 242 constructor_with = [constructor_with] |
| 239 call_with = call_with + constructor_with | 243 call_with = call_with + constructor_with |
| 240 | 244 |
| 241 if 'ScriptArguments' in call_with: | 245 if 'ScriptArguments' in call_with: |
| 242 operation.arguments.append(ARG) | 246 operation.arguments.append(ARG) |
| OLD | NEW |