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

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

Issue 444743002: Use Blink IDL parser for dart libraries. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Merged Created 6 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
« no previous file with comments | « tools/dom/scripts/dartdomgenerator.py ('k') | tools/dom/scripts/dartmetadata.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 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
11 import os 11 import os
12 import re 12 import re
13 import shutil 13 import shutil
14 from generator import * 14 from generator import *
15 15
16 _logger = logging.getLogger('dartgenerator') 16 _logger = logging.getLogger('dartgenerator')
17 17
18 def MergeNodes(node, other): 18 def MergeNodes(node, other):
19 node.operations.extend(other.operations) 19 node.operations.extend(other.operations)
20 for attribute in other.attributes: 20 for attribute in other.attributes:
21 if not node.has_attribute(attribute): 21 if not node.has_attribute(attribute):
22 node.attributes.append(attribute) 22 node.attributes.append(attribute)
23 23
24 node.constants.extend(other.constants) 24 node.constants.extend(other.constants)
25 25
26 class DartGenerator(object): 26 class DartGenerator(object):
27 """Utilities to generate Dart APIs and corresponding JavaScript.""" 27 """Utilities to generate Dart APIs and corresponding JavaScript."""
28 28
29 def __init__(self): 29 def __init__(self, logging_level=logging.WARNING):
30 self._auxiliary_files = {} 30 self._auxiliary_files = {}
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 33
33 def _StripModules(self, type_name): 34 def _StripModules(self, type_name):
34 return type_name.split('::')[-1] 35 return type_name.split('::')[-1]
35 36
36 def _IsCompoundType(self, database, type_name): 37 def _IsCompoundType(self, database, type_name):
37 if IsRegisteredType(type_name): 38 if IsRegisteredType(type_name):
38 return True 39 return True
39 40
40 if type_name.endswith('?'): 41 if type_name.endswith('?'):
41 return self._IsCompoundType(database, type_name[:-len('?')]) 42 return self._IsCompoundType(database, type_name[:-len('?')])
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 def AddMissingArguments(self, database): 228 def AddMissingArguments(self, database):
228 ARG = idlnode.IDLArgument([('Type', ('ScopedName', 'object')), ('Id', 'arg') ]) 229 ARG = idlnode.IDLArgument([('Type', ('ScopedName', 'object')), ('Id', 'arg') ])
229 for interface in database.GetInterfaces(): 230 for interface in database.GetInterfaces():
230 for operation in interface.operations: 231 for operation in interface.operations:
231 call_with = (operation.ext_attrs.get('CallWith', '').split('|') + 232 call_with = (operation.ext_attrs.get('CallWith', '').split('|') +
232 operation.ext_attrs.get('ConstructorCallWith', '').split('| ') + 233 operation.ext_attrs.get('ConstructorCallWith', '').split('| ') +
233 operation.ext_attrs.get('CallWith', '').split('&') + 234 operation.ext_attrs.get('CallWith', '').split('&') +
234 operation.ext_attrs.get('ConstructorCallWith', '').split('& ')) 235 operation.ext_attrs.get('ConstructorCallWith', '').split('& '))
235 if 'ScriptArguments' in call_with: 236 if 'ScriptArguments' in call_with:
236 operation.arguments.append(ARG) 237 operation.arguments.append(ARG)
OLDNEW
« no previous file with comments | « tools/dom/scripts/dartdomgenerator.py ('k') | tools/dom/scripts/dartmetadata.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698