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

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

Issue 9432024: Do not rename idl types to dart types at top level - this info is needed for native bindings genera… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Update html frog system. Created 8 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
« no previous file with comments | « client/dom/scripts/dartdomgenerator.py ('k') | client/dom/scripts/dartgenerator_test.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
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 _logger.warn('removing %s in %s which has unidentified type %s' % 135 _logger.warn('removing %s in %s which has unidentified type %s' %
136 (node_name, interface.id, type_name)) 136 (node_name, interface.id, type_name))
137 return False 137 return False
138 return True 138 return True
139 139
140 interface.constants = filter(IsIdentified, interface.constants) 140 interface.constants = filter(IsIdentified, interface.constants)
141 interface.attributes = filter(IsIdentified, interface.attributes) 141 interface.attributes = filter(IsIdentified, interface.attributes)
142 interface.operations = filter(IsIdentified, interface.operations) 142 interface.operations = filter(IsIdentified, interface.operations)
143 interface.parents = filter(IsIdentified, interface.parents) 143 interface.parents = filter(IsIdentified, interface.parents)
144 144
145 def ConvertToDartTypes(self, database):
146 """Converts all IDL types to Dart primitives or qualified types"""
147
148 def ConvertType(interface, type_name):
149 """Helper method for converting a type name to the proper
150 Dart name"""
151 if IsPrimitiveType(type_name):
152 return ConvertPrimitiveType(type_name)
153
154 if self._IsDartType(type_name):
155 # This is for when dart qualified names are explicitly
156 # defined in the IDLs. Just let them be.
157 return type_name
158
159 dart_template_match = self._dart_templates_re.match(type_name)
160 if dart_template_match:
161 # Dart templates
162 parent_type_name = type_name[0 : dart_template_match.start(1) - 1]
163 sub_type_name = dart_template_match.group(1)
164 return '%s<%s>' % (ConvertType(interface, parent_type_name),
165 ConvertType(interface, sub_type_name))
166
167 return self._StripModules(type_name)
168
169 for interface in database.GetInterfaces():
170 for idl_type in interface.all(idlnode.IDLType):
171 original_type_name = idl_type.id
172 idl_type.id = ConvertType(interface, idl_type.id)
173 # FIXME: remember original idl types that are needed by native
174 # generator. We should migrate other generators to idl registry and
175 # remove this hack.
176 if original_type_name != idl_type.id:
177 original_idl_types[idl_type] = original_type_name
178
179 def FilterInterfaces(self, database, 145 def FilterInterfaces(self, database,
180 and_annotations=[], 146 and_annotations=[],
181 or_annotations=[], 147 or_annotations=[],
182 exclude_displaced=[], 148 exclude_displaced=[],
183 exclude_suppressed=[]): 149 exclude_suppressed=[]):
184 """Filters a database to remove interfaces and members that are missing 150 """Filters a database to remove interfaces and members that are missing
185 annotations. 151 annotations.
186 152
187 The FremontCut IDLs use annotations to specify implementation 153 The FremontCut IDLs use annotations to specify implementation
188 status in various platforms. For example, if a member is annotated 154 status in various platforms. For example, if a member is annotated
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 pass 665 pass
700 666
701 def AddTypedArrayConstructors(self, element_type): 667 def AddTypedArrayConstructors(self, element_type):
702 pass 668 pass
703 669
704 def AddOperation(self, info): 670 def AddOperation(self, info):
705 pass 671 pass
706 672
707 def AddEventAttributes(self, event_attrs): 673 def AddEventAttributes(self, event_attrs):
708 pass 674 pass
OLDNEW
« no previous file with comments | « client/dom/scripts/dartdomgenerator.py ('k') | client/dom/scripts/dartgenerator_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698